rubygems - Jekyll::Drops::CollectionDrop:Class (NoMethodError) 的未定义方法 `delegate_method_as' 你的意思是?委托类
问题描述
当我尝试在我们的 debian buster 服务器上更新我的 jekyll 项目时,我收到此错误:
$ bundle exec jekyll build
Traceback (most recent call last):
12: from /usr/local/bin/jekyll:23:in `<main>'
11: from /usr/local/bin/jekyll:23:in `load'
10: from /var/lib/gems/2.5.0/gems/jekyll-4.2.0/exe/jekyll:8:in `<top (required)>'
9: from /var/lib/gems/2.5.0/gems/jekyll-4.2.0/exe/jekyll:8:in `require'
8: from /var/lib/gems/2.5.0/gems/jekyll-4.2.0/lib/jekyll.rb:191:in `<top (required)>'
7: from /var/lib/gems/2.5.0/gems/jekyll-4.2.0/lib/jekyll.rb:12:in `require_all'
6: from /var/lib/gems/2.5.0/gems/jekyll-4.2.0/lib/jekyll.rb:12:in `each'
5: from /var/lib/gems/2.5.0/gems/jekyll-4.2.0/lib/jekyll.rb:13:in `block in require_all'
4: from /var/lib/gems/2.5.0/gems/jekyll-4.2.0/lib/jekyll.rb:13:in `require'
3: from /var/lib/gems/2.5.0/gems/jekyll-4.2.0/lib/jekyll/drops/collection_drop.rb:3:in `<top (required)>'
2: from /var/lib/gems/2.5.0/gems/jekyll-4.2.0/lib/jekyll/drops/collection_drop.rb:4:in `<module:Jekyll>'
1: from /var/lib/gems/2.5.0/gems/jekyll-4.2.0/lib/jekyll/drops/collection_drop.rb:5:in `<module:Drops>'
/var/lib/gems/2.5.0/gems/jekyll-4.2.0/lib/jekyll/drops/collection_drop.rb:10:in `<class:CollectionDrop>': undefined method `delegate_method_as' for Jekyll::Drops::CollectionDrop:Class (NoMethodError)
Did you mean? DelegateClass
与刚才相同jekyll build
。
我也已经尝试过了:
bundle update
几个月前它曾经这样工作。
我的项目是这样的:https ://github.com/freifunk-kiel/startseite/blob/master/Gemfile
我试图重新安装 jekyll:
PACKAGES="$(dpkg -l |grep jekyll|cut -d" " -f3|xargs )"
apt remove --purge $PACKAGES
我有这些包裹
jekyll ruby-jekyll-coffeescript ruby-jekyll-feed ruby-jekyll-gist ruby-jekyll-paginate ruby-jekyll-sass-converter ruby-jekyll-watch
然后重新安装:
apt install jekyll
这将再次安装相同的软件包:
jekyll ruby-jekyll-coffeescript ruby-jekyll-feed ruby-jekyll-gist ruby-jekyll-paginate ruby-jekyll-sass-converter ruby-jekyll-watch
但这也无济于事
更新:
我还尝试卸载所有 jekyll 软件包,然后安装较新的 jekyll 版本
gem install jekyll jekyll-feed jekyll-gist jekyll-paginate jekyll-sass-converter jekyll-coffeescript
但这给了我另一个错误:
# jekyll build --trace
Traceback (most recent call last):
27: from /usr/local/bin/jekyll:23:in `<main>'
26: from /usr/local/bin/jekyll:23:in `load'
25: from /var/lib/gems/2.5.0/gems/jekyll-4.2.0/exe/jekyll:8:in `<top (required)>'
24: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
23: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
22: from /var/lib/gems/2.5.0/gems/jekyll-4.2.0/lib/jekyll.rb:195:in `<top (required)>'
21: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
20: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
19: from /var/lib/gems/2.5.0/gems/jekyll-sass-converter-2.1.0/lib/jekyll-sass-converter.rb:4:in `<top (required)>'
18: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
17: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
16: from /var/lib/gems/2.5.0/gems/jekyll-sass-converter-2.1.0/lib/jekyll/converters/scss.rb:3:in `<top (required)>'
15: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
14: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
13: from /var/lib/gems/2.5.0/gems/sassc-2.4.0/lib/sassc.rb:31:in `<top (required)>'
12: from /var/lib/gems/2.5.0/gems/sassc-2.4.0/lib/sassc.rb:31:in `require_relative'
11: from /var/lib/gems/2.5.0/gems/sassc-2.4.0/lib/sassc/native.rb:3:in `<top (required)>'
10: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
9: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
8: from /usr/lib/ruby/vendor_ruby/ffi.rb:9:in `<top (required)>'
7: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
6: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
5: from /usr/lib/ruby/vendor_ruby/ffi/ffi.rb:31:in `<top (required)>'
4: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
3: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
2: from /usr/lib/ruby/vendor_ruby/ffi/platform.rb:32:in `<top (required)>'
1: from /usr/lib/ruby/vendor_ruby/ffi/platform.rb:37:in `<module:FFI>'
/usr/lib/ruby/vendor_ruby/ffi/platform.rb:57:in `<module:Platform>': uninitialized constant FFI::Platform::CPU (NameError)
解决方案
使用以下命令卸载 jekyll 的 apt 版本:
PACKAGES="$(dpkg -l |grep jekyll|cut -d" " -f3|xargs )" sudo apt remove --purge $PACKAGES
重要的!卸载所有 debian 软件包后清理您的依赖库:
sudo apt autoremove
然后通过 gem 安装所有需要的 jekyll 包,例如:
sudo gem install jekyll jekyll-feed jekyll-gist jekyll-paginate jekyll-sass-converter jekyll-coffeescript
然后在您的项目目录中运行:
bundle update
推荐阅读
- database - 我正在尝试设置 Dynamodb aws 数据库但出现错误
- sql - SQL Server 临时表:我可以记录特定的更改吗?
- python-2.7 - 错误:名称“变量”未在 python+AWS Lambda 中定义
- java - Spring Service Activator - 我们可以对 Java 中的两个不同输入通道使用与 ref 相同的方法吗?
- python - Conda 虚拟环境中的 Keras 无法卸载和无法使用 - Mac OS Catalina 10.15.2
- installation - 在 WSL UBUNTU 中安装 miniconda
- c++ - 创建一个包含当前时间作为文件名的文件
- laravel - 如何在laravel中删除hasmany关系数据
- postgresql - 写入用于将数据插入空表但未插入数据的函数
- typescript - 升级到 ts-jest 23 时 moduleNameMapper 停止工作