【问题标题】:Ruby version is not correctly detected and causes dependency issue when installing gem packageRuby 版本未正确检测并在安装 gem 包时导致依赖问题
【发布时间】: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 仍在运行 system gem 命令,而不是 rvm 版本。您的~/.bashrc 中是否有类似[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 的行或类似行?您是否采购了.bashrcwhich ruby 的输出是什么?
  • @TomLord 再次感谢您的反馈。请查看问题帖子中的 EDIT2 块,我已在其中添加了您询问的所有相关信息。我按照 $ which ruby​​ /usr/local/rvm/rubies/ruby-1.9.3-p551/bin/ruby 中描述的过程来安装 RVM,但也许我在它之后犯了一些错误,导致了这个问题。
  • 请注意,在您获取该文件后,gem install apiaryio CHANGED 的输出!!!这强烈表明您没有正确安装rvm。我建议您仔细按照文档重新安装它。您可能通过以sudo 运行东西来搞乱文件权限。

标签: ruby rubygems rvm


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-20
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多