我有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)
答案 0 :(得分:1)
默认情况下,bundler会将gem安装到系统gem商店。但是,它有一个可选的配置设置,可以将gem安装到另一个目录中(在您的情况下为vendor/bundle
)。这些宝石只能在特定的捆绑器环境中使用。
您可以通过运行
强制捆绑器将gem安装到系统gem商店中bundle install --system
因此可以将它们提供给您的全局ruby安装。
这是必要的,因为捆绑商会记住除.bundle
之外的Gemfile
目录中的某些选项(例如,安装宝石的路径)。