G2EX

Linux上搭建Jekyll环境

利用Github Pages搭建了个人博客,文章可能不止一次地修改,就会造成多次commit,想着本地搭建环境,待文章彻底改好本地测试满意之后,再提交。搭建Github Pages的Jeykll环境总会遇到大大小小的错误,最常见的有Error: Failed to build gem native extension。今天总结一下Linux下本地Jekyll搭建的步骤和错误的解决办法,以备后需。

Github Pages基于Jekyll,Jekyll基于Ruby gem,Jekyll的正常工作需要系统中正确安装了Ruby、Rubygems。因为GFW的原因,导致 rubygems.org 存放在 Amazon S3 上面的资源文件间歇性连接失败,大陆用户建议使用淘宝Ruby更新源替换默认的更新源。如果你有翻墙之术,则可以跳过下面的第3步。

导致错误Error: Failed to build gem native extension的原因是已安装Ruby的版本太低,需要使用高版本的Ruby才能解决此问题。[了解更多]为了安装高版本的Ruby,我们先安装RVM,使用RVM来安装Ruby。

另外,如果你的网络供应商是“长城宽带”或者“宽带通”,那么你可能还会碰到Hash Sum mismatch问题或者运行rvm requiresments时发生下图类似的错误,这是因为这些网络提供商设置了透明缓存,即便更换系统更新源也无济于事,你有必要使用代理来解决这个问题。[了解更多]

运行`rvm requiresments`时发生的错误


下面开始在Ubuntu / Linux Mint / Elementary OS上建本地Jekyll环境,这里以Elementary OS为例。

一、安装RVM

安装RVM的时候需要用到curl,所以先安装curl

1
$ sudo apt-get install curl

安装完成后,使用curl下载RVM

1
$ curl -L get.rvm.io | bash -s stable --auto

重新加载.bash_profile配置文件:

1
$ . ~/.bash_profile

安装RVM所依赖的包:

1
$ rvm requirements

二、安装Ruby

目前ruby的最新版本是ruby 2.0.0,版本可以从Ruby官网查找。

安装Ruby 2.0.0:

1
$ rvm install 2.0.0

安装完成开始使用2.0.0

1
$ rvm use 2.0.0

查看一下Ruby的具体版本:

1
$ ruby -v

根据终端显示,说明目前安装的是ruby 2.0.0-p353

1
ruby 2.0.0p353 (2013-11-22 revision 43784) [i686-linux]

下面设置系统默认使用的Ruby版本,注意最后要加上-p353

1
$ rvm --default use 2.0.0-p353

三、更新Ruby源

首先使用以下命令检查本地gem源:

1
$ gem sources

终端会显示(有时候显示的可能是http://rubygems.org/):

1
2
3
*** CURRENT SOURCES ***

https://rubygems.org/

使用以下命令把Ruby源更改为淘宝的Ruby源:

1
2
$ gem sources --remove https://rubygems.org/
$ gem sources -a http://ruby.taobao.org/

再使用gem sources命令检查一下,看源是否已经换成了淘宝的。

四、安装Jekyll

至此,Ruby环境已经搭建完成,可以安装Jekyll了:

1
$ gem install jekyll -V

安装需要一段时间,上条命令中-V参数可以查看详细下载和安装情况,也可以不带-V参数。

安装完成Jekyll后,进入博客目录,使用jekyll serve命令启动Jekyll服务,如果没有错误,就可以使用浏览器访问本地博客了。

五、另外

你可能需要RDiscount?

如果你的博客中使用了RDiscount作为Markdown的解释器,那么还需要安装RDiscount

1
$ gem install rdiscount

RDiscount是使用C写的模版解释器,效率要比Maruku高很多。详情点我了解更多

六、参考内容

  1. http://jekyllrb.com/
  2. https://www.ruby-lang.org/
  3. http://rubygems.org/
  4. http://ruby.taobao.org/
  5. http://rubygems.org/gems/rdiscount
  6. http://ryanbigg.com/2010/12/ubuntu-ruby-rvm-rails-and-you/
  7. http://stackoverflow.com/questions/15796274/rdiscount-error-failed-to-build-gem-native-extension
  8. http://stackoverflow.com/questions/373002/better-ruby-markdown-interpreter