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的时候又出现了新的问题
- node和nodejs不是可执行的命令
是没有安装node.js包造成的,根据提示去相应的网站下载包并安装即可
- yarn不是可执行的命令
是没有安装yarn包造成的,根据提示去相应网站下载包并安装(可能会出现问题)
不要用gem install yarn
安装!!!
- 找不到可以执行的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