win10安装Ruby和Ruby on Rails

win10安装Ruby和Ruby on Rails

写于2020-9-11,因为自己安装的过程非常艰辛,所以希望记录一下一些要点,希望能避免其他人踩同样坑。

安装Ruby

1. 下载RubyInstaller(Devkit版)

从官网https://rubyinstaller.org/downloads/下载所需版本的Ruby+Devkit

我这里下载的是2.7.1的版本,大小为130MB

(一定要下Devkit版本,我开始下的没有Devkit的版本一直不行)

2. 安装Ruby

选择 I accept the License

按照默认的路经安装(我查到有帖子说改变路经可能导致不明bug,建议按默认)

下面的三个选项全部选上

选择安装相应的development toolchain

开始安装

3. 检测是否成功

输入ruby -v 检查Ruby是否安装成功

(我这里显示的是2.7.1)


安装Rails

1. 安装MSYS2 and MINGW development toolchain(gem)

在正确安装完Ruby之后会弹出一个选项,询问是否继续安装,选择继续就会弹出这样一个界面

如果没有选择继续安装也没有关系,在cmd命令行输入ridk install也可以打开这个界面

在这里输入3进行安装

(出现问题怎么办会在后面写)

2. 检查gem是否安装成功

输入gem -v 检测gem是否安装成功,应该会显示gem的版本号

(我这里显示的是3.1.2)

3.安装Rails并检查

输入gem install rails安装

装好后输入rails -v检查是否安装成功

(我这里显示的是6.0.3.3)


奇妙的bug

1. 找不到exe

在安装过程中提示C:\Users\Jason\AppData\Local\Temp下找不到msys2-x86_64-20190524,并且写出了下载的网址是http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20190524.exe

直接打开这个网页下载很慢/下载不了,把链接放到迅雷很快就能下好

之后把这个文件放到他要求的这个路径位置即可

2. gem安装失败

在安装过程中提示请求时间过长,安装失败,用gem -v检查时不能得到正确的结果或者不能安装rails。可能是因为默认的网站是国外的源导致的

首先要给MSYS2换源,我这里选择了换成中科大的:

msys64\etc\pacman.d 目录下有三个文件:
mirrorlist.msys
mirrorlist.mingw64
mirrorlist.mingw32

把每个文件中的相关信息都修改

首先是 mirrorlist.msys:

##
## MSYS2 repository mirrorlist
##

## Primary
## msys2.org
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/
Server = http://repo.msys2.org/msys/$arch
Server = http://downloads.sourceforge.net/project/msys2/REPOS/MSYS2/$arch
Server = http://www2.futureware.at/~nickoe/msys2-mirror/msys/$arch/

mirrorlist.mingw64:

##
## 64-bit Mingw-w64 repository mirrorlist
##

## Primary
## msys2.org
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
Server = http://repo.msys2.org/mingw/x86_64
Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/x86_64
Server = http://www2.futureware.at/~nickoe/msys2-mirror/x86_64/
Server = http://mirror.bit.edu.cn/msys2/REPOS/

mirrorlist.mingw32:

##
## 32-bit Mingw-w64 repository mirrorlist
##

## Primary
## msys2.org
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
Server = http://repo.msys2.org/mingw/i686
Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/i686
Server = http://www2.futureware.at/~nickoe/msys2-mirror/i686/

3. 无法锁定数据库

如果即使更换了源之后出现了提示无法初始化事务处理(无法锁定数据库)

删除msys64/var/lib/pacman/db.lck重新安装rails即可

最后终于大功告成了!感激涕零


一些碎碎念

从中午开始安装,耗费了一个下午加一个晚上才勉强装好,内心极其崩溃。开始听说win10不好装,但是Linux和macOS又不熟悉,所以想偷懒。结果win10装了半天总是有问题,想起来老师说Linux装起来最容易,又去找win10的Linux子系统怎么开。

Linux子系统好不容易搞明白了,突然发现这个功能不全,好像不能运行RubyMine。又掉过头想在macOS上装。

在等待macOS下载相应版本的文件的时候,又觉得win10花了那么多心思没装好很亏,还想再努力一把,突然就装好了。

我觉得最离奇的事莫过于,我为了写这篇博客,按照完全相同的操作在我的Mac Pro上win10系统重新安装一遍Ruby和Rails的时候,弹出的内容和之前完全不同。没有遇到任何障碍5min就装完了。而之前在Mac Air上用同样的软件包安装,安装出来一堆的问题。结果也不知道到底是什么导致这样的结果。

希望看这篇博客的你能5min搞定!别走我那奇奇怪怪的弯路


参考资料

安装过程中借鉴了不少教程,对前人的贡献表示感谢!

https://jingyan.baidu.com/article/5bbb5a1bd3c7ba13eba17988.html

https://www.cnblogs.com/yank/archive/2009/02/07/1379398.html

https://www.cnblogs.com/findumars/p/6546088.html

https://www.cnblogs.com/innershare/p/12364113.html

新的bug

之前只检查了rails的版本,还没有检测rails的正常功能。在我通过rails new a(项目名)创建新的application的时候又出现了新的问题

  1. node和nodejs不是可执行的命令

是没有安装node.js包造成的,根据提示去相应的网站下载包并安装即可

  1. yarn不是可执行的命令

是没有安装yarn包造成的,根据提示去相应网站下载包并安装(可能会出现问题)

不要用gem install yarn安装!!!

  1. 找不到可以执行的yarn / yarn不是最新的版本

报错信息之一:

Traceback (most recent call last):
        2: from C:/Ruby27-x64/bin/yarn:23:in `<main>'
        1: from C:/Ruby27-x64/lib/ruby/2.7.0/bundler/rubygems_integration.rb:402:in `block in replace_bin_path'
C:/Ruby27-x64/lib/ruby/2.7.0/bundler/rubygems_integration.rb:374:in `block in replace_bin_path': can't find executable yarn for gem yarn. yarn is not currently included in the bundle, perhaps you meant to add it to your Gemfile? (Gem::Exception)


========================================
  Your Yarn packages are out of date!
  Please run `yarn install --check-files` to update.
========================================


To disable this check, please change `check_yarn_integrity`
to `false` in your webpacker config file (config/webpacker.yml).

gem自动安装的yarn不知道为什么是0.01版本的,不是可以使用的版本。需要单独下载之后使用yarn add gem方式添加到gem包中,然后再运行rails new a


新的参考资料

https://yarn.bootcss.com/docs/cli/add/

https://ruby-china.org/topics/26314

https://github.com/rails/webpacker/issues/818


rails验证方法

参考https://ruby-china.github.io/rails-guides/getting_started.html

posted @ 2020-09-11 23:12  bl水滴  阅读(2434)  评论(0编辑  收藏  举报