Jekyll / gem:未解决的规格

我正在使用Jekyll,我有两个独立的存储库,我想我最近更新了一个。 上次我渲染我的博客时,一切都很好。 现在就是这样:

$ jekyll serve --watch WARN: Unresolved specs during Gem::Specification.reset: redcarpet (~> 3.1) jekyll-watch (~> 1.1) classifier-reborn (~> 2.0) WARN: Clearing out unresolved specs. Please report a bug if this causes problems. /var/lib/gems/2.1.0/gems/jekyll-2.5.2/bin/jekyll:21:in `block in ': cannot load such file -- jekyll/version (LoadError) from /var/lib/gems/2.1.0/gems/mercenary-0.3.5/lib/mercenary.rb:18:in `program' from /var/lib/gems/2.1.0/gems/jekyll-2.5.2/bin/jekyll:20:in `' from /usr/local/bin/jekyll:23:in `load' from /usr/local/bin/jekyll:23:in `' 

到底他妈发生了什么? 似乎Jekyll或Gem自杀了。 我怎样才能解决这个问题?

我怎样才能防止Jekyll或Ruby搞乱全局安装(我认为这是发生了什么 – 这两个博客并不是彼此独立的)? 我可以确保每个Jekyll目录都与其他目录隔离,就像在任何下降编程语言/构建系统中一样吗?


编辑 。 我随机运行了sudo gem cleanup && bundle install 。 这似乎已经卸载了所有的gem(!?!),然后重新安装它们。 现在我得到一个不同的错误:

 WARN: Unresolved specs during Gem::Specification.reset: listen (~> 2.7) WARN: Clearing out unresolved specs. Please report a bug if this causes problems. 

我是否正确地假设gem / bundle不知道传递依赖是什么?

 $ bundle show listen /var/lib/gems/2.1.0/gems/listen-2.7.11 

所以有听。 那么为什么杰基尔会抱怨?

看来你并不是唯一一个遇到这种问题的人。 请参阅此处的问题

我设法以两种方式绕过了这个问题。

在Jekyll 2.5.x上,删除Gemfile只会使错误消失。

如果需要Gemfile,可以使用bundle exec jekyll serve

在Jekyll网站上,他们建议在jekyll serve之后将空字符串传递给baseurl参数。 就个人而言,唯一对我有用的是这和David的建议相结合。 捆绑exec jekyll服务–baseurl”