Transform your plain text into static websites and blogs.
Jekyll 是一个简单的免费的 Blog 生成工具,类似 WordPress。但是和 WordPress 又有很大的不同,原因是 Jekyll 只是一个生成静态网页的工具,不需要数据库支持。Jekyll 可以免费部署在 Github 上,而且可以绑定自己的域名。
JekyllJekyll 可以使用 .html
、.md
、.sass
文件进行维护,和其他类似的应用一样,它也需要运行在一个环境下,其访问地址如:http://127.0.0.1:4000。
官方文档提供了安装教程,简单的不能再简单,每一行都会有几个坑,笔者最近配置的时候遇到了这些问题,所以撰写本文做个记录。
先看官方的安装教程:
- Install a full Ruby development environment
- Install Jekyll and bundler gems
gem install jekyll bundler
- Create a new Jekyll site at
./myblog
jekyll new myblog
- Change into your new directory
cd myblog
- Build the site and make it available on a local server
bundle exec jekyll serve
- Now browse to http://localhost:4000
教程说的清楚,安装 Jekyll 需要 Ruby 环境支持,Mac 系统是自带了 Ruby 环境的。目前的 Jekyll 需要 Ruby 2.2.5+,终端中使用 ruby -v
可以查看当前 Ruby 版本。
除了 Ruby,还需要 RubyGems,RubyGems(简称 gems)是一个用于对 Ruby 组件进行打包的 Ruby 打包模块。 它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具。如果已安装该模块,终端中输入 gem -v
可以查看其版本。
另外,还需要 GCC 和 Make 支持,这一般是系统自带的,可通过 gcc -v
、g++ -v
和 make -v
查看其版本。
最后,还需要安装 command-line tools(命令行工具)才能编译扩展(native extensions),执行 xcode-select --install
可开始安装(还需要安装 XCode 哦~),这里的 command-line tools 单个大概有 700Mb+。
确认上述的环境都配置正确后,就可以开始使用 gem 安装 Jekyll 了,终端中执行 gem install jekyll bundler
开始安装。安装完成后可输入 bundler -v
和 jekyll -v
查看其版本。
但需要注意,bundler 可能比较顺利就安装完成了,Jekyll 则可能出现无法安装的问题,这其中有分为大致两种情况:
一是提示 /usr/bin
无权限,或者 /Library/Ruby/Gems/2.3.0/
无权限,这个需要用到 rootless
机制(默认开启)去解锁,单纯使用 sudo
是无法解决问题的。
Rootless 关闭与开启
同时按住
Command + R
重启电脑,直到看到进度条松开键盘,即可进入恢复分区(类似安装界面)。然后在 【实用工具】找到 【终端】启动运行,可输入csrutil status
查看其状态,输入csrutil disable; reboot
可禁用 Rootless 并重启电脑,输入csrutil enable; reboot
启用 Rootless 并重启电脑。苹果从 OS X El Capitan 10.11 系统开始使用了 Rootless 机制,可以将该机制理解为一个更高等级的系统的内核保护措施,系统默认将会锁定
/system
、/sbin
、/usr
这三个目录,通常建议启用 Rootless。
操作的时候要小心,禁用 Rootless 后,登录的用户就拥有了比较高级的操作权限,在操作终端时可能会出现错误,例如,打开终端显示【进程已完成】,终端无法操作(修正 Shell 打开方式、检测磁盘权限、重启电脑等均无效,"知乎"上提到的更新系统不必尝试的),笔者的操作系统是 macOS High Sierra 10.13.6,出现上述问题后,经网友提示和仔细排查,发现在 /usr/bin
下面多了一个 login 脚本(网上说有个 login 的目录,亦或是网友打错了,命令 = 目录 = ml),重命名或删除之,重新开启终端问题解决。
另一个问题是,可能会提示 Failed to build gem native extension.
,这个可通过安装上面提到的 command-line tools 解决。
安装完成后,可参考官方教材 和 Jetyll 命令,创建项目。
# 创建项目,请这样创建,否则会缺少很多问题,如 Gemfile
$ jekyll new myblog
# 进入项目
$ cd myblog
# 运行项目
$ bundle exec jekyll serve
参考资料
网友评论