如果没有捆绑执行官,jekyll将无法正常工作

时间:2016-05-05 17:06:43

标签: ruby rubygems jekyll jekyll-extensions jekyll-paginator

我有jekyll个项目https://github.com/mmistakes/minimal-mistakes

如果我运行jekyll serve,则会显示此错误。

  

警告:Gem :: Specification.reset期间未解决的规范:         listen(< 3.1,〜> 3.0)警告:清除未解析的规范。如果这会导致问题,请报告错误。配置文件:   /home/kenden/Desktop/minimal-mistakes-master/_config.yml依赖   错误:哎!看起来你没有jekyll-paginate或其中一个   它的依赖项已安装。目前使用Jekyll   已配置,您需要安装此gem。完整的错误消息   来自Ruby的是:'无法加载此类文件 - jekyll-paginate'如果你跑   遇到麻烦,你可以找到有用的资源   http://jekyllrb.com/help/! jekyll 3.1.3 |错误:jekyll-paginate

我已经安装了jekyll paginate。我使用gem list进行了检查。但是,如果我运行bundle exec jekyll serve,那么服务器就会完美启动。

  

配置文件:   /home/kenden/Desktop/minimal-mistakes-master/_config.yml               资料来源:/ home / kenden / Desktop / minimal-mistakes-master          目的地:/ home / kenden / Desktop / minimal-mistakes-master / _site增量构建:禁用。启用--incremental         生成...                       在0.104秒内完成。自动再生:启用' / home / kenden / Desktop / minimal-mistakes-master'配置文件:   /home/kenden/Desktop/minimal-mistakes-master/_config.yml       服务器地址:http://127.0.0.1:4000服务器正在运行...按ctrl-c停止。

为什么jekyll serve无效,jekyll servebundle exec jekyll serve有什么区别?

2 个答案:

答案 0 :(得分:2)

Rationale and Purpose of Bundler可能会对差异有所了解。很可能你的系统Ruby上有多个版本的gem,它可能不确定使用哪个版本。

如果您不想总是输入bundle exec,请阅读此article from the Thoughtbot blog

答案 1 :(得分:2)

我也遇到了这个问题,我通过卸载与Gemfile.lock比较的所有不同版本的宝石解决了这个问题。

例如,我发现这个gem有两个不同的版本:jekyll-sass-converter (1.4.0, 1.3.0)。在Gemfile.lock中,只有jekyll-sass-converter (= 1.3.0)。所以我卸载了它的1.4.0版本。然后Jekyll serve按预期工作。

我认为Jekyll servebundle exec Jekyll serve之间的区别在于bundle exec会检查Gemfile.lock并使用其中的特定版本的宝石,而Jekyll serve会以某种方式使用被同一个宝石的不同版本所困惑。