最近需要在WSL本地运行和调试Github Pages的网页,虽然之前在Linux系统也弄过,但一些细节已经忘了差不多,写这篇文章备忘一下。
前提环境
- Linux系统或Windows 10的WSL;
Ruby的安装
更新系统资源包
在终端中输入命令 sudo apt-get update
安装Ruby基本构建工具
在终端中输入命令 sudo apt-get install build-essential
安装ruby-install
-
输入命令
wget -O ruby-install-0.6.1.tar.gz https://github.com/postmodern/ruby-install/archive/v0.6.1.tar.gz
,下载压缩包。 -
输入命令
tar -xzvf ruby-install-0.6.1.tar.gz
,解压该压缩包。 -
输入命令
cd ruby-install-0.6.1
,进入压缩后的目录。 -
输入命令
sudo make install
,安装ruby-install。 -
输入命令
ruby-install -V
,观察ruby-install是否安装成功,如果显示”ruby-install: 0.6.1”的字样,则说明安装成功。
安装ruby
- 输入命令
ruby-install ruby 2.4.1
,开始安装ruby。
更新于2020-06-03: 最近发现这个命令在不开代理的情况下无法正常工作,因为github部分页面在国内无法访问了; 如果是Linux系统,请需要配置好相应的代理; 如果是WSL,且Windows上已经配置了代理,可以参考这篇文章。
安装chruby插件
-
为了能够使用ruby须安装chruby插件,相应步骤和ruby-install大致相同:
wget -O chruby-0.3.9.tar.gz https://github.com/postmodern/chruby/archive/v0.3.9.tar.gz
tar -xzvf chruby-0.3.9.tar.gz
cd chruby-0.3.9/
sudo make install
-
为了能够在shell中能运行chruby,需要在相应的配置文件写入一些信息,可以使用以下命令一步完成:
cat >> ~/.$(basename $SHELL)rc <<EOF
source /usr/local/share/chruby/chruby.sh
source /usr/local/share/chruby/auto.sh
EOF
-
为了使其立即生效,重新加载shell:
exec $SHELL
-
此时在终端输入
chruby
,观察是否安装成功。如果出现”ruby-2.4.1”或类似的字样,则说明安装成功。
将该Ruby作为系统的默认Ruby
-
输入命令
vim ~/.ruby-version
,在vim程序中输入以下内容:ruby-2.4.1
这个文件告诉chruby我们默认使用哪个Ruby。要改变我们使用的ruby版本,运行chruby ruby-2.4.1。
-
输入命令
ruby -v
,检测ruby的版本是否正确。
安装Bundler和Jekyll
输入命令gem install jekyll bundler
,安装即可。
运行你的Github Pages
-
使用git克隆你的Github Pages项目,这里不再赘述。
-
进入仓库目录,输入
bundle install
,进行依赖库的下载工作。注:如果输入后没有反应,可能是访问国外的镜像源比较慢,此时使用
Ctrl+C
退出后在输入bundle config mirror.https://rubygems.org https://gems.ruby-china.com
更改镜像源。 -
输入
bundle exec jekyll serve
,此时你的Github Pages已经运行在本地的4000端口,在浏览器上输入http://127.0.0.1:4000即可访问。 -
编辑网页的内容并保存后,程序会自动重新加载网页,不用自己手动操作,可以很方便地调试。
更新:另一种方法
这几天重新安装了Elementary OS,发现也有一个可行的途径。全程使用apt安装,无需自己编译。
-
输入
sudo apt install ruby ruby-dev
,安装最新版的ruby和开发包。 -
使用git同步博客到本地。需要保证仓库下已经有Gemfile文件。
-
打开终端,进入博客对应的目录,输入
gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)"
安装对应的Bundler版本。如果权限不够则在前面加上sudo
。 -
进入仓库目录,输入
bundle install
,进行依赖库的下载工作。注:如果输入后没有反应,可能是访问国外的镜像源比较慢,此时使用
Ctrl+C
退出后在输入bundle config mirror.https://rubygems.org https://gems.ruby-china.com
更改镜像源。 -
输入
bundle exec jekyll serve
运行即可。
2022.08.02 更新:运行过程中bundle
报错“jekyll was resolved to 4.2.0, which depends on …”问题的处理
只要删除Gemfile.lock
文件,再运行bundle update
更新即可。
2022.08.22 更新:运行过程中bundle
报错“cannot load such file – webrick (LoadError)”问题的处理
只要运行bundle add webrick
命令即可。