杰基尔/宝石:未解决的规格

时间:2014-11-28 22:54:46

标签: ruby gem jekyll

我正在使用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 <top (required)>': 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 `<top (required)>'
    from /usr/local/bin/jekyll:23:in `load'
    from /usr/local/bin/jekyll:23:in `<main>'

到底发生了什么事?似乎Jekyll或Gem自杀了。我该如何解决这个问题?

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


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

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

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

2 个答案:

答案 0 :(得分:15)

您似乎并不是唯一一个遇到此类问题的人。 See issue here.

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

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

如果需要Gemfile,bundle exec jekyll serve就可以了。

答案 1 :(得分:-2)

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