我以前从未使用过 Ruby,所以这个和周围的术语对我来说是新的;我只进行安装,所以我有一个运行特定应用程序的基础。
我需要 Ruby 1.9.3,据我了解,我应该使用 RVM,因为它会使版本冲突变得不那么复杂(我使用的是 Ubuntu 12.04 LTS,并且似乎已经有 1.8 和 1.9.1)。
问题是我仍然遇到版本冲突,请问我做错了什么?
详情如下:
在香草 ubuntu 12.04 LTS 上,我安装 rvm & bundler
sudo apt-get install ruby-bundler ruby-rvm
我的项目根目录中有一个 .rvmrc 文件,其中包含:
rvm use 1.9.3-p484@project-root --create
我已经执行了
sudo rvm reload
然后我告诉 rvm 安装一个特定的 ruby
sudo rvm install ruby-1.9.3-p484
它会呕吐
为 /usr/share/ruby-rvm/rubies/ruby-1.9.3-p484/bin/ruby 安装 rubygems
错误:运行错误 'GEM_PATH="/usr/share/ruby-rvm/gems/ruby-1.9.3-p484:/usr/share/ruby-rvm/gems/ruby-1.9.3-p484@global:/usr /share/ruby-rvm/gems/ruby-1.9.3-p484:/usr/share/ruby-rvm/gems/ruby-1.9.3-p484@global" GEM_HOME="/usr/share/ruby-rvm/ gems/ruby-1.9.3-p484" "/usr/share/ruby-rvm/rubies/ruby-1.9.3-p484/bin/ruby" "/usr/share/ruby-rvm/src/rubygems-1.6. 2/setup.rb"',请阅读 /usr/share/ruby-rvm/log/ruby-1.9.3-p484/rubygems.install.lo
日志包含以下内容:
/usr/share/ruby-rvm/rubies/ruby-1.9.3-p484/lib/ruby/1.9.1/rubygems.rb:483:in
find_files': undefined method
map' for Gem::Specification:Class (NoMethodError) from /usr/ share/ruby-rvm/rubies/ruby-1.9.3-p484/lib/ruby/1.9.1/rubygems.rb:1108:inload_plugins' from /var/cache/ruby-rvm/src/rubygems-1.6.2/lib/rubygems/gem_runner.rb:84:in
'来自 /usr/share/ruby-rvm/rubies/ruby-1.9.3- p484/lib/ruby/1.9.1/rubygems/custom_require.rb:36:inrequire' from /usr/share/ruby-rvm/rubies/ruby-1.9.3-p484/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in
require' 来自 /usr/share/ruby-rvm/src/rubygems-1.6.2/setup.rb:25:
看起来与 v1.9.1 有冲突?
如果我继续运行sudo bundle install
(我有一个带有一些条目的 Gemfile),我会得到一个不同的错误,暗示捆绑器正在使用 ruby 1.8!
安装 nokogiri (1.6.1) /usr/lib/ruby/vendor_ruby/1.8/rubygems/installer.rb:388:in `ensure_required_ruby_version_met': nokogiri 需要 Ruby 版本 >= 1.9.2。(宝石::安装错误)
请问我做错了什么?
我可以提供的唯一其他重要信息是输出,rvm info
如您所见,我的路径为空且“二进制”不正确。
系统:
系统: uname: "Linux ubuntu 3.8.0-29-generic #42~precise1-Ubuntu SMP Wed Aug 14 15:31:16 UTC 2013 i686 i686 i386 GNU/Linux" bash: "/bin/bash => GNU bash,版本 4.2.25(1)-release (i686-pc-linux-gnu)" zsh: " => not installed"
rvm:版本:“Wayne E. Seguin 的 rvm 1.6.9 ([email protected]) [ https://rvm.beginrescueend.com/] ”
家园:宝石:“未设置”红宝石:“未设置”
二进制文件: ruby:“/usr/bin/ruby” irb:“/usr/bin/irb” gem:“/usr/bin/gem” rake:“”
环境:PATH:“/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/share/ruby-rvm/bin :/usr/share/ruby-rvm/bin" GEM_HOME: "" GEM_PATH: "" MY_RUBY_HOME: "" IRBRC: "" RUBYOPT: "" gemset: ""
/usr/bin/ruby -v
返回 1.8.7
显然,Ubuntu 附带的 RVM 版本已损坏。我将其删除并按照此 SO 帖子中的说明进行操作。