Window 7 安装 Jekyll 的正确姿势

2016/09/10
摘要:这是一篇介绍如何零基础安装Jekyll的教程,从下载安装Ruby开始,到Jekyll在本地部署并测试成功,包括其中遭遇的困难和解决方案。本文仅提供Jekyll安装教程,未涉及博客注册、编辑和发布。

前言

作为一个没有Ruby基础的技术小白,按照网上的教程,跌跌撞撞总算是啃下了这块硬骨头。回头再看这些教程,多数是几年前的,有些环节现在已不再适用;有些细节没有描述清楚,总要四处寻找答案。所以,我的博客搭建完成后,我要将我的经验、遇到和解决的问题记录下来,仅供参考。其中有的环节我依然未能彻底掌握,以后还要慢慢学习。感谢各位博客作者,你们的教程给我提供了巨大帮助。

1.安装准备

使用Jekyll需要下载安装Ruby和DevKit。Ruby的安装方法多种多样,Window用户只需下载RubyInstallers.exe安装即可。DevKit是Ruby的工具,与RubyInstallers的下载地址相同。因国内网络问题,该站间歇性抽风,必要时请翻墙。 下载Ruby 下载DevKit 注意:两者均有32位和64位版本,下载时请选择相同的版本。

2.安装Ruby

难点在 2.2更改sources源,睡觉的同学们醒一醒,注意听讲。

2.1开始安装

运行RubyInstallers.exe,开始安装Ruby。建议安装路径不要包含中文、不要包含空格及任何奇怪的符号,这可能会导致Ruby不能运行。 安装时选择同意添加Path环境变量。如果忘选了,可以手动添加。计算机-属性-高级系统设置-环境变量-系统变量-Path-编辑:在变量值最前面添加“安装路径\bin;”注意:不要加双引号,只加双引号里的内容(含分号)。

安装完成后,打开命令行,验证安装是否成功,命令为:

ruby -v

执行结果:

rbby 2.3.1p112(2016-04-26 revision 54768) [x64-mingw32]

能显示版本信息,证明安装成功。

失败怎么办?我一次就成功了,还真不知道失败了怎么办。

2.2更改sources源

由于国内网络原因,导致 rubygems.org 存放在 Amazon S3 上面的资源文件间歇性连接失败,需要把源重定向到国内稳定的镜像上去。按照网上教程切换到淘宝 ,屡次尝试结果均为认证错误,后来才知道淘宝的已经不维护了,Ruby China提供了新的解决方案。打开https://gems.ruby-china.org/ ,按照网页上的说明,先清空sources。由于之前试验了淘宝的镜像,因此这里一并清空,查看sources列表确认已全部清空,然后添加Ruby China的镜像。

gem sources -remove https://rubygems.org/
gem sources -remove https://ruby.taobao.org/
gem sources -l
gem sources --add https://gems.ruby-china.org/

执行结果: 证书错误 什么,又是证书!这不是和淘宝一样需要证书?考虑再三,我决定不用https协议,改用http,这回不用出示证件了吧!

gem sources --add http://gems.ruby-china.org/

果然成功了。这时我想到,淘宝改用http协议能成功吗?没敢去验证,好不容易成功了,赶紧往下执行吧,天都黑了。 如果失败怎么办?翻墙吧!但翻墙只是不得已而为之,因为以后的项目里会经常安装一些包,这墙翻过来翻过去也挺麻烦的吧。

2.3 更新gem

别说费话,直接输入命令:

gem update --system

因为 sources 已经更改到可以访问的地址,这一步只需要耐心等待几分钟即可。

2.4 可选操作

如果使用 Gemfile 和 Bundle (例如 Rails 项目),可以在gem更新完成后应用 Bundler 的 Gem 源代码镜像命令,这样就不用再改 Gemfile 的 source。

bundle config mirror.https://rubygems.org https://gems.ruby-china.org

3.安装DevKit

难点在 3.3配置DevKit。

3.1准备安装

解压DevKit到你指定的路径,这个路径将成为DevKit的安装路径。建议安装路径不要包含中文、不要包含空格及任何奇怪的符号,这可能会导致Ruby不能运行。

3.2初始化

打开命令行,进入DevKit目录,输入命令:

ruby dk.rb init

3.3配置DevKit

到DevKit目录,用文本编辑器打开config.yml文件,在文件尾添加2次Ruby的安装路径:

- C:\Ruby23-x64
- C:\Ruby23-x64

注意前有减号和空格。 注意替换为你的Ruby安装路径,不要照搬我的。 注意是两行。不要问我同样的内容为什么写2次,反正写1次有时候就出错,我也纳闷呢。 完成后,从命令行进入DevKit目录下,查看配置是否成功:

ruby dk.rb review

3.4安装DevKit

在DevKit目录下输入命令:

ruby dk.rb install

4安装测试Jekyll

这一环节最难熬,不要被接踵而来的报错吓倒,仔细分析错误原因,都能解决的。

4.1安装Jekyll

终于见到正主了!其实安装Jekyll非常简单,难的地方是之前的步骤。在命令行输入命令:

gem install jekyll

需要等待较长时间,gem将下载一大堆文件。

4.2可选操作

现在可以安装一些常用的插件,如cucumber,非常流行的语法高亮插件rouge等。安装方法与Jekyll,在命令行输入命令即可,如:

gem install cucumber

4.3Jekyll环境测试

至此,Jekyll已经安装完毕。我已经迫不及待去建立我的blog项目了。不过别急,这里还有些问题没有解决。

4.3.1新建博客

打开资源管理器,新建一个目录。不不不,我们可以显得更专业些。在命令行执行以下命令,将在当前目录自动创建一个名为blog的文件夹:

jekyll new blog

4.3.2启动服务

在启动服务之前,需要将工作空间改到子目录中,即执行 cd blog 进入到子目录中,输入下面命令开启服务:

Jekyll serve

4.3.3安装插件

启动服务后执行结果为: 找不到文件 运行出错,原因是找不到bundler这个文件。在命令行安装bundeler:

gem install bundler

下载很快,但是使用bundle需要进行配置。

bundle init
bundle install

这一步的安装时间较长。

安装完成,再次执行jekyll server,出现新的错误,找不到minima。安装:

gem install minima

就这样,又安装了几个包,直到产生新的错误,请看下了节。

4.3.4抢占端口

该安装的包都安装好了,再次启动服务,执行结果: 端口被占用 Permission denied,端口被占用。来看看是谁占用了我的端口。输入命令:

netstat -ano

查看活动连接 Jekyll默认使用4000端口,可以看到被PID为1800的进程占用了。看看这个进程是什么鬼:

tasklist /svc /FI "PID eq 1800"

查看进程名 可以看到是Foxit(福昕pdf阅读器)在监听4000端口,并不是系统进程,打开任务管理器结束该进程即可。为避免每次都手动关闭进程,可以禁止其开机自动启动,或者把blog改用其他端口,如5001。方法是打开blog/_config.yml文件,在其中加入一句

port: 5001

更改端口 注意有空格,否则出错。

4.5.4测试成功

启动服务,命令行未报错,显示了服务信息。 测试成功 打开浏览器,输入地址localhost:4000

或修改端口后的地址:localhost:5001

测试页 看到这个页面,证明Jekyll配置成功。回到命令行,按住 Ctrl + C 结束服务,退出命令行,测试结束。

主要参考文献

关于如何在Github上创建博客,参考使用Github Pages建独立博客

Post Directory