Ruby和宝石安装

时间:2014-05-12 08:48:19

标签: ruby bundle

我有ruby项目,我使用' bundle install'安装了所有宝石。 Gems安装在./vendor/bundle中。但我在另一个目录中使用rvm安装的ruby,当我尝试做某事时(某些命令)它正在rvm目录中查找gems。如何在rvm目录中安装所有gem?

编辑: 我安装了所有的宝石,但是当我尝试使用简单的ruby -T时,我得到了:

/home/arkency/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:298:in `to_specs': Could not find 'rake' (>= 0) among 1 total gem(s) (Gem::LoadError)
from /home/arkency/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:309:in `to_spec'
from /home/arkency/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_gem.rb:53:in `gem'
from /home/arkency/.rvm/gems/ruby-1.9.3-p545/bin/rake:22:in `<main>'
from /home/arkency/.rvm/gems/ruby-1.9.3-p545/bin/ruby_executable_hooks:15:in `eval'
from /home/arkency/.rvm/gems/ruby-1.9.3-p545/bin/ruby_executable_hooks:15:in `<main>'

我的宝石列表仅包含:

gem list

*** LOCAL GEMS ***

bundler (1.6.2)

1 个答案:

答案 0 :(得分:1)

默认情况下,bundler会将gem安装到系统gem商店。但是,它有一个可选的配置设置,可以将gem安装到另一个目录中(在您的情况下为vendor/bundle)。这些宝石只能在特定的捆绑器环境中使用。

您可以通过运行

强制捆绑器将gem安装到系统gem商店中
bundle install --system

因此可以将它们提供给您的全局ruby安装。

这是必要的,因为捆绑商会记住除.bundle之外的Gemfile目录中的某些选项(例如,安装宝石的路径)。