在安装gem包时,未正确检测到Ruby版本并导致依赖性问题

时间:2017-09-14 15:17:10

标签: ruby rubygems rvm

我使用Ruby 1.9,通过RVM:

$ rvm use 1.9.3
Using /usr/local/rvm/gems/ruby-1.9.3-p551
$ ruby --version
ruby 1.9.3p551 (2014-11-13 revision 48407) [x86_64-linux]

但是,尝试安装Apiaryio我收到以下错误:

$ sudo gem install apiaryio
ERROR:  Error installing apiaryio:
    mime-types requires Ruby version >= 1.9.2.

我不明白为什么它抱怨> = 1.9.2,因为我的Ruby版本是1.9.3。

也许gem忽略了RVM设置的版本并恢复到" base"操作系统级别的一个?我该如何解决这个问题并安装apiaryio(恰好是1.8.7),好吗?

编辑:我也尝试过不使用sudo,但我也遇到了错误:

$ gem install apiaryio
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /usr/lib/ruby/gems/1.8 directory.

注意/ usr / lib / ruby​​ / gems / 1.8 目录......在这种情况下似乎也在寻找操作系统中的基本版本,因此忽略了1.9版本的设置RVM。

EDIT2 :请注意我在执行上述命令之前采购rvm.sh。完整的程序如下:

$ source /etc/profile.d/rvm.sh
$ ruby --version
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
$ rvm use 1.9.3
Using /usr/local/rvm/gems/ruby-1.9.3-p551
$ ruby --version
ruby 1.9.3p551 (2014-11-13 revision 48407) [x86_64-linux]
$ which ruby
/usr/local/rvm/rubies/ruby-1.9.3-p551/bin/ruby
$ which gem
/usr/local/rvm/rubies/ruby-1.9.3-p551/bin/gem
$ gem install apiaryio
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /usr/local/rvm/gems/ruby-1.9.3-p551 directory.

此外,我在~/.bashrc中没有任何与RVM相关的内容,但我知道正在开始的source命令会达到同样的效果。

1 个答案:

答案 0 :(得分:0)

按照@TomLord建议,删除RVM(rvm implode)并以更清洁的方式重新安装每个用户后,问题就解决了。