我的问题:我有一个基于jekyll的静态网站;在运行bundle exec jekyll serve
(按照jekyll文档的指示(之后,我得到了下面的堆栈跟踪。我为堆栈跟踪中的博客文章文件创建的markdown文件完全是标准语法。我已经在谷歌上搜索了具体的错误,并得到了类似错误的帖子,但这些错误并不能解决我的问题。我还搜索了jekyll文档,看看是否有任何不兼容的地方。
Writing: /home/REDACTED/projects/thomdlee.github.io/_site/jekyll/update/2020/12/28/currently-in-maintenance.html
done in 0.356 seconds.
jekyll 3.9.0 | Error: no implicit conversion of Hash into Integer
/home/REDACTED/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/pathutil-0.16.2/lib/pathutil.rb:502:in `read': no implicit conversion of Hash into Integer (TypeError)
from /home/REDACTED/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/pathutil-0.16.2/lib/pathutil.rb:502:in `read'
我的所有代码都可以在github上找到:https://github.com/thomdlee/thomdlee.github.io
我的环境:
- Ubuntu 20.10(在Windows 10上的WSL 2中运行(
- Ruby v3.0.0
- Jekyll(宝石(v3.9.0
- pathutil(gem(v0.16.2
pathutil
似乎有弃用链接的问题
我也遇到了同样的问题,但将Ruby降级到2.7.x解决了这个问题。
根据这个答案:
Ruby 3.0不赞成使用最后一个参数作为关键字参数。必须在变量之前添加双splat**,才能支持行为。
以下是我如何将补丁应用于pathutil:
sudo sed -i.bak 's/, kwd/, **kwd/' $(gem which pathutil)
唯一的解决方案仍然是降级。
在Arch Linux上,您可以执行
sudo pacman -S ruby2.7
cd /PATH/TO/YOUR/JEKYLL/PROJECT
bundle-2.7 install
bundle-2.7 exec jekyll serve
来源:https://bbs.archlinux.org/viewtopic.php?id=265534
我在MacOS环境中遇到了同样的问题。
为了修复它,我在项目文件夹上运行了以下命令:
bundler update