【发布时间】:2017-09-14 15:17:10
【问题描述】:
我正在通过 RVM 使用 Ruby 1.9:
$ 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 设置的版本并在操作系统级别恢复为“基本”版本?请问如何解决这个问题并安装 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 命令可以达到相同的效果。
【问题讨论】:
-
不要使用
sudo。 -
@TomLord 感谢您的建议!我也尝试过这种方式,但没有任何运气。已编辑问题帖子以添加详细信息。
-
您是否正确安装了
rvm?看起来你还没有,因为gem仍在运行 systemgem命令,而不是rvm版本。您的~/.bashrc中是否有类似[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"的行或类似行?您是否采购了.bashrc?which ruby的输出是什么? -
@TomLord 再次感谢您的反馈。请查看问题帖子中的 EDIT2 块,我已在其中添加了您询问的所有相关信息。我按照 $ which ruby /usr/local/rvm/rubies/ruby-1.9.3-p551/bin/ruby 中描述的过程来安装 RVM,但也许我在它之后犯了一些错误,导致了这个问题。
-
请注意,在您获取该文件后,
gem install apiaryioCHANGED 的输出!!!这强烈表明您没有正确安装rvm。我建议您仔细按照文档重新安装它。您可能通过以sudo运行东西来搞乱文件权限。