我在Ubuntu 15.04上的jekyll网站上工作,当我尝试jekyll serve
(或任何其他jekyll命令,有或没有sudo)时,我会收到以下内容:
/var/lib/gems/2.1.0/gems/jekyll-3.1.2/bin/jekyll:9:in `<top (required)>': undefined method `require_from_bundler' for Jekyll::PluginManager:Class (NoMethodError)
from /usr/local/bin/jekyll:23:in `load'
from /usr/local/bin/jekyll:23:in `<main>'
我最近在这台计算机上的jekyll网站上工作过没有这个问题,而且我不确定配置如何更改以生成此错误。我已尝试gem uninstall jekyll
并重新安装,同样的问题也发生了。我不是Ruby开发者,我对如何解决这个问题感到有些不知所措。
答案 0 :(得分:3)
好吧,我建议你用Bundler运行Jekyll,这是一个很棒的依赖管理器。它将确保您拥有所需的所有宝石。
<强>第一即可。卸载Jekyll 2.2.0。这个版本太旧了,需要Python来运行一些依赖项。 Jekyll 3.x不再需要Python了。
所以,运行sudo gem uninstall jekyll --version 2.2.0
。 (或gem uninstall jekyll -v 2.2.0
)
<强>第二即可。现在,安装Bundler:
gem install bundler
(或sudo gem install bundler
)
第3次。使用以下内容向您的网站根添加Gemfile
(不要给它任何扩展名):
source "https://rubygems.org"
gem 'jekyll', '3.1.2'
这将确保您安装了Jekyll 3.1.2及其所有依赖项。
如果您将站点部署到GitHub,Gemfile必须是不同的:
source "https://rubygems.org"
gem 'github-pages'
这将包括当时在GitHub页面上运行的Jekyll版本。
第4位。使用终端cd path/to/path
到您的站点根目录并在那里运行bundle install
。 Bundler将为您安装所有依赖项并创建一个名为Gemfile.lock
的新文件,该文件将包含为该项目安装的所有依赖项的列表。
第5位。运行bundle exec jekyll serve
完成!
注意1:我建议您使用Jekyll 3.0.3,因为我认为它比3.1.2更好(3.1.2上似乎有一些在3.0中没有的错误。 3)。无论如何,基于意见的提示 - 它取决于你。
注意2:如果您没有在计算机上安装openssl,请替换Gemfile中的协议:
source "https://rubygems.org"
替换为
source "http://rubygems.org"
供参考:
那就是它!希望有所帮助!