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

0__*_*0__ 3 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>'
Run Code Online (Sandbox Code Playgroud)

到底他妈发生了什么?似乎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.
Run Code Online (Sandbox Code Playgroud)

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

$ bundle show listen
/var/lib/gems/2.1.0/gems/listen-2.7.11
Run Code Online (Sandbox Code Playgroud)

因此,有听.那么为什么杰基尔会抱怨?

Dav*_*uel 16

看来你并不是唯一一个遇到这种问题的人.在这里看问题.

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

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

如果需要Gemfile,则可以bundle exec jekyll serve.