RVM和Ruby版本无法按预期工作

时间:2015-05-20 14:56:47

标签: ruby gem rvm

我想安装指南针html5 boilerplate gem。当我尝试安装它时,我收到以下错误。

$ sudo gem install html5-boilerplate
ERROR:  Error installing html5-boilerplate:
compass-h5bp requires Ruby version ~> 2.0.

然后,当我检查我的红宝石版本时,它说:

$ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]

但之前我使用过RVM,所以我认为我可以改变版本但是当我检查它时我说我已经使用了ruby-2.2.0。

$ rvm list

rvm rubies

=* ruby-2.2.0 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

我认为我必须遗漏一些明显的东西,因为我使用过Ruby和RVM已经有一段时间了。

更新1

我按照@tadman的建议运行了以下命令,看起来似乎使用了错误的路径。

~:$ cd ~/.rvm/bin
bin:$ ls
ruby-rvm-env  rvm  rvm-auto-ruby  rvm-exec  rvm-prompt  rvm-shebang-ruby  rvm-shell  rvm-smile  rvmsudo
bin:$ which ruby
/usr/bin/ruby

更新2

在我的.bash_profile中修正路径之后,ruby版似乎是正确的,但在尝试安装html5-boilerplate gem时我仍然遇到同样的错误?

$ sudo gem install html5-boilerplate
ERROR:  Error installing html5-boilerplate:
    compass-h5bp requires Ruby version ~> 2.0.
$ ruby -v
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-linux]
$ rvm list

rvm rubies

=* ruby-2.2.0 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

$ compass -v
Compass 1.0.3 (Polaris)
Copyright (c) 2008-2015 Chris Eppstein
Released under the MIT License.
Compass is charityware.
Please make a tax deductable donation for a worthy cause: http://umdf.org/compass

我还在Ruby 1.9.1和RVM的ruby 2.2.0上安装了指南针gem。这可能与它有关吗?

$ pwd
/var/lib/gems/1.9.1/gems/compass-1.0.3
$ cd /home/ross/.rvm/gems/ruby-2.2.0/gems/compass-1.0.3
$ pwd
/home/ross/.rvm/gems/ruby-2.2.0/gems/compass-1.0.3

有没有办法检查哪个红宝石版罗盘正在使用?

1 个答案:

答案 0 :(得分:1)

拥有RVM并正确安装RVM是两回事。造成这种不匹配的最常见原因是您的系统Ruby在PATH中具有优先权。

在POSIX shell中,which ruby会告诉您哪一个正在执行。这可能是错误的。

RVM通过操纵哪些Ruby出现在RVM bin路径中(通常是~/.rvm/bin或类似的东西)来发挥其神奇作用。为了使其正常工作,您需要确保路径位于$PATH

您可能想尝试重新安装RVM存根,或检查它是否已正确加载到您的环境中。