安装之前,可以先翻阅官方网站上的安装方法
根据官方文档的说明,前期准备需要:
Ruby (including development headers)
RubyGems
Linux, Unix, or Mac OS X
NodeJS, or another JavaScript runtime (for CoffeeScript support).
下面将记录整个安装过程:
安装ruby
第一套安装方案
$ apt-get install ruby1.9.3
安装成功后可用以下命令查看ruby 和 gem 的版本号
$ ruby -v
$ gem -v
如果安装后发现版本不对,比如github-pages 要求ruby版本要大于2.0等,可以采用:
$ apt-get remove ruby
来进行卸载,但可能提示你说卸载不干净,要手动卸载一堆乱七八糟的已经不再会被使用到的东西。这个时候你可以运行
$ apt-get autoremove
来删除所有的多余软件包,正常卸载后应该不再有gem和ruby的命令了。
第二套安装方案
如果怎么样也找不到ruby 大于等于2.0的版本,可采用RVM的方式来安装ruby。
rvm是一个命令行工具,可以提供一个便捷的多版本ruby环境的管理和切换。
安装rvm
$ curl -L get.rvm.io | bash -s stable
如果安装失败,请注意提示。如果失败原因是不信任软件包,则用它提示的gpg命令来获取该软件包的密钥,之后再尝试curl命令来安装rvm软件包
列出可安装的ruby版本
$ rvm list known
根据需要,我将安装并使用2.2.1版本(建议不要使用ruby-head,那下载和安装速度会让你后悔当初为什么脑子进水的)
$ rvm install 2.2.1 #安装2.2.1版本的ruby
$ rvm use 2.2.1 --default #将它设置为默认版本
恭喜,ruby安装成功。
下面给出rvm一些可能用得上的命令
$ rvm list #列出已安装的ruby版本
$ rvm remove ruby-head #指定并卸载已安装的ruby版本
$ rvm implode #自爆
指定gem的软件源
根据网络上的推荐,我使用了 taobao的源,但在使用gem安装jekyll的过程中会一直刷404等错误。
经过多番磨难我才发现,网络上教程中的”https://rubygems.org/” 源其实没被墙,所以我又把源改成了官网的源。
下面附上更改源的方法:
(假设源已经改成了http://ruby.taobao.org/ ,想改回https://rubygems.org/)
$ gem sources --remove https://ruby.taobao.org/ #移除源
$ gem sources -a https://rubygems.org/ #添加源
$ gem sources -l #查看已经添加的源
请注意,安装ruby后,gem默认的源就是官方的源
安装node.js
假设越过此步骤直接安装jekyll并在本地网页目录下直接运行jekyll server,会报一个错误,大体如下:
Could not find a JavaScript runtime.
这个问题可以通过安装node.js 来解决
依旧可以先参阅一些安装文档再来回味其中的坑。
选择并下载最新版本node.js源码(源码都在http://nodejs.org/dist/,请自选)
wget http://nodejs.org/dist/node-latest.tar.gz
解压并检查环境
$ tar -zxvf node-latest.tar.gz #解压
$ cd node-v0.12.2/
$ ./configure #检查环境
如果通过检查,则可进行安装
$ make && make install
$ node -v #检查是否安装成功
如果要卸载,请在node-v0.12.2目录下执行:
$ make uninstall
安装jekyll
不得不说,这是一个比较蛋疼的工作,好在github-pages考虑到了这点,对需要的软件打了个包。
安装jekyll
$ gem install github-pages #目前要求ruby版本要>=2.0
github pages的文档中使用到了bundle,其实不用bundle也是可以的,看个人选择。我选择使用bundle,但不知道为什么我为什么这么命苦,连bundle也报错:
-bash: /usr/bin/bundle: /usr/bin/ruby1.9.1: bad interpreter: No such file or directory
懒得去慢慢给它设置环境变量,直接重新安装新的:
$ gem install bundler #安装bundler
要是连这都失败了,那么恭喜,使用rvm的“自爆”,重新换个版本的ruby吧。
Q:bundle是什么?
A:Bundle用来管理项目中所有gem依赖
在本地网站的根目录里头添加Gemfile文件,内容为:
source ‘https://rubygems.org’
gem ‘github-pages’
以后在此目录下执行
(默认参数就是gemfile里的内容,这就是建立gemfile文件并写入两行字的原因)
$ bundle install #安装
$ bundle update #更新
在安装的过程中,我出现了这个错误:
Bundler::GemspecError: Could not read gem at /usr/local/rvm/gems/ruby-head/cache/html-pipeline-1.9.0.gem. It may be corrupted.
解决办法就是执行:
$rm -f /usr/local/rvm/gems/ruby-head/cache/html-pipeline-1.9.0.gem
如果到了这里都没问题的话,恭喜你,jekyll安装好了!
运行jekyll
$ bundle exec jekyll serve #运行jekyll服务器
当有提示你可以从http://0.0.0.0:4000打开网页的时候,就已经大功告成了!
对于如何创建网站,请参见jekyll中文文档,另外,网上有大量主题,大家可以用上。