rvm,irb和require - 不适用于irb下已安装的gems

时间:2010-09-22 15:04:57

标签: ruby gem rvm irb

我今天刚刚安装了rvm,它看起来非常方便/强大。

我想我已经掌握了它,但是......

当我使用rvm安装ruby并运行irb时,当我需要安装gem时,有些东西,比如'rvm',我得到:

> kimptoc$ rvm use 1.8.7
Using /Users/kimptoc/.rvm/gems/ruby-1.8.7-p302


> kimptoc$ gem list

*** LOCAL GEMS ***

abstract (1.0.0)
...
rvm (1.0.11)
...


> kimptoc$ irb
ruby-1.8.7-p302 > require 'rvm'
LoadError: no such file to load -- rvm
    from (irb):1:in `require'
    from (irb):1

但是当使用“系统”红宝石时,它可以正常工作。

历史上我一直在使用sudo gem install ...因此“系统”宝石通常以这种方式安装。这可能是我的问题吗?我是否需要卸载这些来解决问题?

我正在运行OSX 10.6.4。 “system”是默认的OSX ruby​​,1.8.7(p174)

提前感谢任何提示/想法, 克里斯

3 个答案:

答案 0 :(得分:10)

先尝试require 'rubygems'

答案 1 :(得分:1)

> rvm use 1.8.7
> rvm info
     (Find the homes -> gem directory)
> ls -al ~/.rvm/gems/ruby-1.8.7   (Substitute your gem directory as needed)

你的宝石在这个目录中吗?

一般来说,使用带有rvm的sudo gem install是个坏主意。

答案 2 :(得分:1)

从Ruby 1.9.3开始,你不再需要,可以,需要rubygems,你只需要rvm。

如果你想在.irbrc文件中使用它来使用wirble或awsome打印,你可以使用一个简单的技巧来避免登录错误,说它不能包含或'rubygems'或'rvm'

if RUBY_VERSION > "1.8.7"
  require 'rvm'
else
  require 'rubygems'
end
require 'wirble'
Wirble.init
Wirble.colorize

同时包含rubygems和rvm似乎不合逻辑,因为RVM会以某种方式替换rubygems来处理gem和gem存储库。