【问题标题】:Jekyll defaults to system Ruby version instead of RVM versionJekyll 默认使用系统 Ruby 版本而不是 RVM 版本
【发布时间】:2013-12-09 00:31:45
【问题描述】:

我已经浏览了数十篇关于此的帖子,但仍然无法弄清楚/没有找到相同的情况。基本上,我有默认设置为 Ruby 2.0.0 的 RVM,但是当我 cd 到带有 Jekyll 页面的目录并运行时

jekyll serve

结果是

/Library/Ruby/Site/1.8/rubygems/dependency.rb:298:in `to_specs': Could not find 'jekyll' (>= 0) among 5 total gem(s) (Gem::LoadError)
from /Library/Ruby/Site/1.8/rubygems/dependency.rb:309:in `to_spec'
from /Library/Ruby/Site/1.8/rubygems/core_ext/kernel_gem.rb:47:in `gem'
from /usr/bin/jekyll:22

即使我运行时在同一个目录中

ruby -v

结果是

ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-darwin12.5.0]

如果我跑了

rvm use 2.0.0@project-directory

然后运行

jekyll serve

它就像一个魅力。

我尝试在根目录中使用 .rvmrc 和 .ruby-version 文件,在这两种情况下,当我 cd 到目录时,没有任何迹象表明它们已被识别。

【问题讨论】:

    标签: ruby rvm jekyll


    【解决方案1】:

    你的系统 ruby​​ 安装了 jekyll,所以它告诉堆栈跟踪

    # from /usr/bin/jekyll:22
    

    它在更新 jekyll 之前调用该二进制文件的原因可能是由于 $PATH 中的顺序,因此要解决此问题;一种选择是删除旧的 jekyll 二进制文件:

    $ which jekyll #=> /usr/bin/jekyll
    $ sudo rm `which jekyll`
    

    应该够了。现在再试一次。

    此外,鉴于 gem 可能与该二进制文件一起安装,请尝试删除旧的 gem 版本。

    $ rvm use system
    $ ruby -v #=> ruby 1.8.7
    
    $ gem uninstall jekyll # add sudo if you get a permission error
    

    【讨论】:

    • 漂亮,效果很好。在确保我完成了'rvm use 2.0.0 --default'之后,我只需要使用'gem install jekyll'在2.0.0版本上重新安装Jekyll,因为我忘记了我第一次安装它时使用的是sudo系统 Ruby 版本 (1.8)。非常感谢!
    最近更新 更多