在任何来源中都找不到nokogiri-1.6.7.1

时间:2016-01-06 23:46:05

标签: ruby-on-rails ruby nokogiri

所以我是一个新手(至少我发现堆栈溢出了吗?)我正在使用Michael Hartl的Ruby on Rails Tut。第三章有我输入:

sudo rails generate controller StaticPages home help

我回来了:

Could not find nokogiri-1.6.7.1 in any of the sources
Run `bundle install` to install missing gems.

当我查看软件包安装程序时,它肯定列出了nokogiri 1.6.7.1 当我输入时:

bundle show nokogiri

我明白了:

/Users/user/.rvm/gems/ruby-2.2.3@rails3tutorial2ndEd/gems/nokogiri-1.6.7.1

我在我的macbook pro os x el capitan v 10.11.1上使用rails v 4.2.5

任何帮助都非常感谢。也许我可以从现在开始一年或两年付款!

2 个答案:

答案 0 :(得分:1)

尝试在没有sudo的情况下运行该命令。由于sudo以root用户身份运行命令,因此它会改变您的环境并可能使您使用错误版本的Ruby,或者您使用的Ruby版本无法看到您安装的gem。 / p>

编辑:正如Eric Platon指出的那样,尝试在该命令的开头添加bundle exec以确保加载了捆绑器并且将使用正确版本的Rails。

答案 1 :(得分:1)

Bundler是一个工具,可确保运行时环境使用正确的库和版本。通常,我们在命令前加上Ruby开发,包括Rails:

bundle exec rails generate controller StaticPages home help

bundle exec接受命令及其参数,并将其运行到Gemfile中定义的环境中,该环境位于同一文件夹中。

正如@David Grayson所说,sudo改变了环境。为了安全和打包代码,最好以当前用户身份运行(并避免部署团队的愤怒)。