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