前言
实际上这是一份惨痛的事实,blog在大二尝试搭建之后再也没有认真捣鼓过。所以一直就写完commit再push直接看线上效果。这样效率实在是低,所以在大概几年前就决定配一下jekyll。但是当时参考资料不多,也没那耐性认真查看环境问题,所以一直拖到现在,历时三小时终于成功搞定jekyll!
踩坑!
1.ruby
MacOs自带ruby因为权限问题最好别用,所以最好brew install ruby另安装一个。这里最好遵循一条真理,选版本就选前人构建成功的,所以选了3.0。
brew install ruby@3.0
这里zsh默认查找路径肯定最优的还是之前的ruby,所以需要配置一下环境变量。后两条是gem的。
最好卸载干净rvm,否则会有混乱
export PATH="/usr/local/opt/ruby@3.0/bin:$PATH"
export PATH="$HOME/.gem/ruby/3.0.0/bin:$PATH"
export PATH="$HOME/.local/share/gem/ruby/3.0.0/bin:$PATH"
这时候重新zsh就可以看到ruby -v是brew安装的版本了,这里如果使用了rbenv的话,最好brew uninstall掉除了这次安装的ruby,比如ruby-build等,在stackoverflow上看到了相关的bug。然后安装jekyll
gem install --user-install bundler jekyll
接下来在blog的目录下
jekyll s
就可以了,默认的地址是127.0.0.1 端口4000。
2. not found stdio.h
这个问题卡了我很久,大概就是安装jekyll的时候ruby找不到stdio.h这些库文件,stack上有人提出过类似问题,解决方案有几条我都试了一下,都没有用。果然还是得自己研究一下具体的报错问题点,既然是stdio.h找不到那就给他加进去?按着这个思路我发现!竟然真的没有,具体原因不太清楚,可能是xcode升级没有再绑定?所以
xcode-select --install
解决此问题。如果提示工具已安装的话,卸载重装就可以了。
3. Liquid Warning: Liquid syntax error (line 145): Unexpected character { in “tag[1].size > 1” in /_layouts/post.html
jekyll启动后看不到文章列表,发现shell里的报错信息如title,原因大概就是解析会出问题。去掉双层花括号就ok了。
4. 安装ruby2.7.6
因为实习原因需要ruby2.7.6,但是配置的时候一直碰到个问题就是openssl配置失败,
openssl: Could not be configured. It will not be installed. Check ext/openssl/mkmf.log for more details.
原因就是rvm install ruby的时候没有找到正确的openssl,最开始怀疑的是否安装了openssl,openssl version、where openssl、which openssl都可以找到,但是这时候发现有多个openssl,这时候还没反应过来,而是继续尝试在instll的时候指定openssl的位置,rvm install 2.7.6 –with-openssl-dir=/usr/local/Cellar/openssl@1.1/1.1.1w,类似这种,但是尝试多次还是提示openssl配置失败。
后来反应过来,我指定的openssl是好的呀,所以把本地没用的openssl都卸载了,然后再把不能卸载的openssl版本过高的名字暂时修改一下 move openssl@3 openssl_hide@3
于是乎就神奇的安装成功了,我草!