2019年于 Mac 上安装 ruby 环境的记忆已经不大清晰了,只记得很痛苦,坑很多,Windows 上自然也当仁不让,以后用 Windows 的机会会很多,所以这一次趁着刚弄完赶紧记个笔记,防止忘了。
去年下半年我就已经折腾了一次,将 jekyll 博客在 Windows 的开发环境配置好,然后用 Git 方便两端同步,最终当然是失败收场,具体哪一步卡住我忘了,原因是因为我的系统用户名是中文,中文用户名导致的 bug 已经发生好几起了,但因为软件太多游戏也太多,一直懒得轻启重装系统的重任,正逢前两天为了体验 win11,给系统升级了,后不满意又换回 win10,于是重装了一下。
对了,游戏可以将安装文件和存档文件保留,重装系统和 steam 后设置一下还能用,美滋滋!
安装Ruby
第一步便是安装 jekyll 依赖的 ruby 开发环境,去『RubyInstaller for Windows』下载,要带 Devkit
的版本,我下载的是 rubyinstaller-devkit-2.7.5-1-x64.exe
,默认安装位置会在系统盘根目录,不要修改,安装过程中记得勾选那个大小800多M的 MSYS
,安装完成时不要急着按 Finish 按钮,按完 Finish 它会开始自动安装 MSYS,但因为墙的原因,可能会很慢甚至失败,需要手动改一下源,方法如下:
将 ruby 安装目录 “C:\Ruby27-x64\msys64\etc\pacman.d\
” 中的 mirrorlist.mingw32
,mirrorlist.mingw64
,mirrorlist.msys
文件内容改成下面的样子即可。
mirrorlist.msys
## MSYS2 repository mirrorlist
##
## Primary
## msys2.org
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch/
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/
Server = http://mirror.bit.edu.cn/msys2/msys/$arch/
Server = http://mirror.bit.edu.cn/msys2/msys/$arch/
Server = http://repo.msys2.org/msys/$arch/
Server = https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/$arch/
Server = https://www2.futureware.at/~nickoe/msys2-mirror/msys/$arch/
Server = https://mirror.yandex.ru/mirrors/msys2/msys/$arch/
mirrorlist.mingw64
##
## 32-bit Mingw-w64 repository mirrorlist
##
## Primary
## msys2.org
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686/
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
Server = http://mirror.bit.edu.cn/msys2/mingw/i686/
Server = http://repo.msys2.org/mingw/i686/
Server = https://sourceforge.net/projects/msys2/files/REPOS/MINGW/i686/
Server = https://www2.futureware.at/~nickoe/msys2-mirror/mingw/i686/
Server = https://mirror.yandex.ru/mirrors/msys2/mingw/i686/
mirrorlist.mingw32
##
## 64-bit Mingw-w64 repository mirrorlist
##
## Primary
## msys2.org
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
Server = http://mirror.bit.edu.cn/msys2/mingw/x86_64/
Server = http://repo.msys2.org/mingw/x86_64/
Server = https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/
Server = https://www2.futureware.at/~nickoe/msys2-mirror/mingw/x86_64/
Server = https://mirror.yandex.ru/mirrors/msys2/mingw/x86_64/
修改源后,再按 Finish 按钮,自动执行安装程序,选“3”回车,如果安装界面已经关掉,应该也是可以自行打开命令终端执行ridk install
来安装的,但我没试过。
其实不改源应该也没事,去年折腾的时候就没改,也成功了,这次改了但我也没觉得速度有多快啊,哎无所谓啦。
安装bundler
按照网上的流程,继续安装 jekyll
,网友推荐用 3.8.5
gem install jekyll -v 3.8.5
然后进入我博客目录,运行 jekyll serve
,不出意料地报错了……
一般第二步是用 gem
安装 jekyll,但是我的博客下面有 Gemfile
和 Gemfile.lock
两个文件,里面是博客的依赖程序,按照网上的一般教程会出很多问题,于是我另辟蹊径专门为我的博客寻找了适用于我的博客的方法,未必适合别的情况,我联想了一下Mac端环境就用到了 bundler
,依赖文件里内容也暗示我少了它不行,于是安装 bundler,
gem install bundler
现在可以像用 npm
一样去安装依赖,但我一看那俩依赖文件觉得不妙,版本号对不上,肯定还要出问题,于是要修改依赖文件,但这样势必要影响到 Mac 端,为了让俩平台互不干扰,还是决定各用各的,于是决定把俩依赖文件从 Git 系统中删除,不要同步这俩。
首先,去 Mac 端将 Gemfile 和 Gemfile.lock 移到别处,然后将修改提交 push 到远程,接着在 .gitignore
文件中加入 Gemfile 和 Gemfile.lock 这俩文件,接着将移走那俩移回原处,Git 不会再管他俩了,待 Windows 端将刚刚修改的部分 pull 下来后,继续我们在 Windows 端的环境配置。
首先卸载先前装的 jekyll-3.8.5,其实这里不用我自己装 jekyll,依赖文件里有,接着查看我们刚刚装的 bundler 版本是多少:
gem uninstall jekyll -v 3.8.5
bundler -v
查看 ruby,gem,bundler,jekyll 版本号都可以用加 -v 的方式,查看后将 Gemfile 和 Gemfile.lock 依赖文件里 bundler 的版本号改为我们安装的,接着
bundle install
像 npm 一样安装所有依赖,包括 jekyll,待其完成后,输入 bundle exec jekyll serve
,网上一般教程的 jekyll serve
我在这里会报错的,必须加前缀。
bundle exec jekyll serve
bundler 在命令里执行安装指令时用的是 bundle,少了个 r
测试域名
http://127.0.0.1:4000
和http://localhost:4000
是一样的
后续
后续大概会把两个平台的版本统一一下,Mac端环境不动,Windows上安装时只要注意下bundler的版本就好,并且还把那俩依赖文件重新纳入Git仓库,毕竟这俩是堪比package.json的存在,不能不保存到远程。
又又又又有更新,原来bundler也不用自己装,gem里就自带了 bundler v2.1.4,Gemfile.lock 同 package-lock.json 一样也不是依赖文件,删了都可以。Gemfile 是两个平台都适用的,不用考虑版本的问题了!
上面就是今天下午折腾jekyll Windows 开发环境的全过程,但是有点乱,不方便以后使用参考,下面简单梳理一下:
Step1: 安装 “Ruby Installer for Windows with Devkit”,勾选MSYS,安装完成后在自动打开的命令行选“3”回车。
Step2: 安装bundler, use ‘gem install bundler -v 1.17.2
’. 应该是可以指定版本的,这里我填的是和Mac端一样的原版本号,但我现在Win10使用的是下午安装的最新版本2.3.13。Step
32: 安装依赖, use ‘bundle install
’, then ‘bundle exec jekyll serve
’.