多个rubygems版本

时间:2009-09-29 20:56:50

标签: ruby-on-rails ruby rubygems

基本上我需要的是在安装了1.2.0且无root权限的机器(Debian)上安装rubygems 1.3.5。

到目前为止我做了什么:在$ HOME / ruby​​gems中安装了rubygems,并在路径中设置了GEM_HOME +添加的bin。所以运行“哪个宝石”向我展示了新的二进制文件,而不是旧的二进制文件。此外,当我安装gem时,它会正确安装到新的存储库中。

然而,gem -v给出1.2.0。 gem env提供以下内容:

RubyGems Environment:
  - RUBYGEMS VERSION: 1.2.0
  - RUBY VERSION: 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
  - INSTALLATION DIRECTORY: /home/neutrino/rubygems/gems
  - RUBY EXECUTABLE: /usr/bin/ruby1.8
  - EXECUTABLE DIRECTORY: /home/neutrino/rubygems/gems/bin
  - RUBYGEMS PLATFORMS:
     - ruby
     - x86-linux
     - GEM PATHS:
     - /home/neutrino/rubygems/gems
     - /var/lib/gems/1.8
     - GEM CONFIGURATION:
       - :update_sources => true
       - :verbose => true
       - :benchmark => false
       - :backtrace => false
       - :bulk_threshold => 1000
       - "gemhome" => "/home/neutrino/rubygems/gems"
   - REMOTE SOURCES:
      - http://gems.rubyforge.org/

任何提示都将不胜感激。我只是看不出我做错了什么。

3 个答案:

答案 0 :(得分:1)

我希望这个问题与gem命令有关,它可以从本地版本之前的系统lib路径中找到1.2.0版本的RubyGems。

您可以尝试将RUBYLIB环境变量设置为包含rubygems.rb文件的目录。 RUBYLIB(冒号分隔的目录)的内容在启动时被添加到Ruby加载路径之前。

答案 1 :(得分:1)

听起来你需要看看rvm,特别是它有多个宝石套装的能力。

http://rvm.io/

http://rvm.io/gemsets/

答案 2 :(得分:0)

您需要在/ usr / bin /之前将$ HOME / ruby​​gems / bin放在PATH环境中。 如果那不可行,我会将$ HOME / ruby​​gems / bin / gem重命名为$ HOME / ruby​​gems / bin / my_gem并执行my_gem -v并继续使用它(my_gem)