使用jekyll 安装和部署博客
使用jekyll 安装和部署博客, 和解决安装时遇到的问题
环境准备
macOS 12.6.2 ruby 3.2.0
安装jekyll 和相关的依赖需要使用ruby
, macOS
系统自带的ruby
版本过低且使用非root
用户gem
无法安装第三方的依赖。使用rbenv 来安装和管理ruby
环境。
具体的安装和使用请参见使用rbenv 管理ruby 环境
安装完成后重启终端并运行以下命令查看当前的Ruby 版本信息:
ruby -v
运行后获得以下信息:
ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-darwin21]
安装jekyll
前置的依赖环境已经安装完成, 接下来我们安装jekyll
, jekyll
可以帮助我们将markdown
等文件生成静态的HTML
文件供我们部署。并支持插件主题等更多特性, 具体的相关信息请参见jekyll 官网
使用以下命令安装Bundler 和jekyll:
gem install bundler jekyll
使用jekyll 创建一个名为的网站工程并切换至网站根目录:
jekyll new my-awesome-site
cd my-awesome-site
运行网站:
bundle exec jekyll serve
# 现在可以通过访问 http://localhost:4000 来查看网站信息
遇到的问题
安装jekyll
的过程中, 安装和编译特定的依赖eventmachine ****
时会报错, 大致的内容如下:
make "DESTDIR="
compiling binder.cpp
In file included from binder.cpp:20:
./project.h:119:10: fatal error: 'openssl/ssl.h' file not found
#include <openssl/ssl.h>
^~~~~~~~~~~~~~~
1 error generated.
make: *** [binder.o] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/chen/.rvm/gems/ruby-3.0.0/gems/eventmachine-1.2.7 for inspection.
从以上的错误信息中我们了解到, 代码引用了openssl 源码的内容, 但是编译的项目无法找到相关的头文件, 所以编译失败了。所以我们需要去解决这个问题。
目前我使用的电脑是有安装LibreSSL 2.8.3 版本的依赖, 但是经过测试还是无法编译成功。所以我搜索Homebrew 查询openssl 相关的依赖:
brew search openssl
搜索的结果如下:
==> Formulae
glib-openssl opensc
openssl@1.1 open-sp
openssl@3 ✔ openfst
openslp opencsg
openssh openmsx
opensaml homebrew/portable-ruby/portable-openssl
==> Casks
openmsx
发现当前安装的版本是openssl@3 的版本, 可能因为当前安装的版本太高了, 整体的头文件信息已经发生不可调整的更改。所以我打算使用老版本的openssl@1.1 来尝试是否可行。运行一下命令安装openssl@1.1 依赖:
brew install openssl@1.1
使用命令获取当前已经安装的openssl@1.1 的路径:
brew --prefix openssl@1.1
获取的路径为:
/opt/homebrew/opt/openssl@1.1
安装成功后使用以下的命令附加额外的–with-openssl-dir 参数并拼接获取的openssl@1.1 路径信息后重新安装eventmachine 依赖:
gem install eventmachine -- --with-openssl-dir=/opt/homebrew/opt/openssl@1.1
安装成功且未继续报错, 然后重新使用安装命令安装jekyll:
gem install bundler jekyll
安装成功