使用RVM安装ruby-2.X出现问题

8

最近我遇到了ruby-2.0.0-p0的安装问题。在成功安装了rvm之后,我在终端中输入了以下命令。

rvm install ruby-2.0.0-p0

这是结果日志。
Searching for binary rubies, this might take some time.
No binary rubies available for: debian/wheezy_sid/i386/ruby-2.0.0-p0.
Continuing with compilation. Please read 'rvm mount' to get more information on binary rubies.
Installing Ruby from source to: /home/javier/.rvm/rubies/ruby-2.0.0-p0, this may take a while depending on your cpu(s)...
ruby-2.0.0-p0 - #downloading ruby-2.0.0-p0, this may take a while depending on your connection...
ruby-2.0.0-p0 - #extracting ruby-2.0.0-p0 to /home/javier/.rvm/src/ruby-2.0.0-p0
ruby-2.0.0-p0 - #extracted to /home/javier/.rvm/src/ruby-2.0.0-p0
ruby-2.0.0-p0 - #configuring
ruby-2.0.0-p0 - #compiling
ruby-2.0.0-p0 - #installing
Removing old Rubygems files...
Installing rubygems-2.0.0 for ruby-2.0.0-p0 ...
Error running 'env GEM_PATH=/home/javier/.rvm/gems/ruby-2.0.0-p0:/home/javier/.rvm/gems/ruby-2.0.0-p0@global:/home/javier/.rvm/gems/ruby-2.0.0-p0:/home/javier/.rvm/gems/ruby-2.0.0-p0@global GEM_HOME=/home/javier/.rvm/gems/ruby-2.0.0-p0 /home/javier/.rvm/rubies/ruby-2.0.0-p0/bin/ruby /home/javier/.rvm/src/rubygems-2.0.0/setup.rb', please read /home/javier/.rvm/log/ruby-2.0.0-p0/rubygems.install.log
Installation of rubygems did not complete successfully.
Saving wrappers to '/home/javier/.rvm/bin'.
ruby-2.0.0-p0 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
ruby-2.0.0-p0 - #importing default gemsets, this may take time ...
Install of ruby-2.0.0-p0 - #complete
Making gemset ruby-2.0.0-p0 pristine.
Error running '' under ,
please read /home/javier/.rvm/log/ruby-2.0.0-p0/gemset.pristine.log
Making gemset ruby-2.0.0-p0@global pristine.
Error running '' under ,
please read /home/javier/.rvm/log/ruby-2.0.0-p0/gemset.pristine.log

请注意,直到安装Ruby gems过程中没有出现任何问题。 这是怎么回事?? 感谢任何帮助。
第一个评论输出:
cat /home/javier/.rvm/log/ruby-2.0.0-p0/rubygems.install.log

/home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- openssl (LoadError)
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/core_ext/kernel_require.rb:45:in `require'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/security.rb:8:in `<top (required)>'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/core_ext/kernel_require.rb:45:in `require'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/core_ext/kernel_require.rb:45:in `require'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/package.rb:43:in `<top (required)>'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/core_ext/kernel_require.rb:45:in `require'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/core_ext/kernel_require.rb:45:in `require'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/installer.rb:8:in `<top (required)>'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/core_ext/kernel_require.rb:45:in `require'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/core_ext/kernel_require.rb:45:in `require'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/request_set.rb:5:in `<top (required)>'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems.rb:195:in `finish_resolve'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/rdoc.rb:14:in `<top (required)>'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/core_ext/kernel_require.rb:45:in `require'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/core_ext/kernel_require.rb:45:in `require'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/uninstaller.rb:10:in `<top (required)>'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/core_ext/kernel_require.rb:45:in `require'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/core_ext/kernel_require.rb:45:in `require'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/commands/setup_command.rb:440:in `uninstall_old_gemcutter'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/commands/setup_command.rb:144:in `execute'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/command.rb:305:in `invoke_with_build_args'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/command_manager.rb:170:in `process_args'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/command_manager.rb:130:in `run'
from /home/javier/.rvm/src/rubygems-2.0.0/lib/rubygems/gem_runner.rb:60:in `run'
from setup.rb:45:in `<main>'
RubyGems 2.0.0 installed

第二条评论的输出及其他命令

rvm use --default 2.0.0

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

You need to change your terminal emulator preferences to allow login shell.
Sometimes it is required to use `/bin/bash --login` as the command.
Please visit https://rvm.io/integration/gnome-terminal/ for a example.

运行 cat /home/javier/.rvm/log/ruby-2.0.0-p0/rubygems.install.log,输出是什么? - Leo Correa
你想做什么?Install of ruby-2.0.0-p0 - #complete - 这不意味着 Ruby 已经成功安装了吗?执行以下命令:rvm use --default 2.0.0,然后运行 ruby -v。你得到了什么输出?同时像 Leo 所说的那样输出日志文件。 - Bharadwaj Srigiriraju
输入 rvm requirements 并确保您已安装所有必要的依赖。 - sunnyrjuneja
我编辑了条目以添加@LeoCorrea和ForbiddenOverseer的请求。我将尝试使用rvm要求。我的rvm版本是1.8.15。 - Javier Cadiz
4个回答

18
尝试以下内容
$ rvm remove 2.0.0 # get rid of unsuccessful installation
$ rvm get head --autolibs=3 # get the latest RVM and build required libs
$ rvm requirements # just in case, install all other required stuff
$ rvm install ruby-2.0.0

如果其中任何一条命令在任何时候失败,请使用日志更新您的问题。

非常有用,问题在于rvm的要求。 - Javier Cadiz
是的,我可以确认这也是我的要求。在运行一次并收到错误后,必须安装Xcode。 - samuelkobe

2
我曾经遇到过完全相同的问题。解决方案既优雅又简单。
只需从命令行直接更新你的gems即可:
sudo gem update --system

就是这样!终端现在会显示:

Updating RubyGems
Updating rubygems-update
Successfully installed rubygems-update-2.0.3
Updating RubyGems to 2.0.3
Installing RubyGems 2.0.3
RubyGems 2.0.3 installed

我使用了这个命令行:ruby update to 2.0.3,但我不知道Ruby安装在哪里?在哪个目录下?我需要绝对路径以配置与apache2。 - Davuz

0

打开终端,然后转到编辑 > 配置文件首选项,然后转到选项卡“标题和命令”,勾选“将命令作为登录 shell 运行”。

启动 Bash,现在您可以直接从终端安装 Gems,无需使用 sudo 并消除错误“RVM 不是一个函数,使用 'rvm use ...' 选择 rubies 将不起作用。”。

干杯。


0

我曾经遇到过完全相同的问题,同样的错误信息等。我不知道你是否也是这样,但我使用MacPorts,并通过它安装了像OpenSSL这样的库,我认为这可能导致了我的麻烦。

我刚刚在我的系统上使它工作了;我不确定我做对了什么,但以下是我采取的步骤:

  1. 设置我的~/.rvmrc以匹配第一个代码块here
  2. 通过rvm卸载2.0.0(rvm remove 2.0.0)。
  3. ~/.rvm/src中删除ruby-2.0.0、rubygems-2.0.0和依赖包(如OpenSSL和YAML)的文件夹。
  4. 执行rvm install 2.0.0 --with-opt-dir=/opt/local --autolibs=0/opt/local是我的MacPorts前缀目录,autolibs=0禁用任何依赖项安装,因此它没有机会使用除了我的MacPorts库之外的其他内容。如果您能够在不出现红色控制台输出的情况下完成此步骤,则已经解决了上述错误。
  5. 由于不知道空默认gemset是否是问题,我还运行了rvm use --create 2.0.0@...来创建非默认gemset,然后(成功地)将一个gem及其依赖项安装到其中。

希望这可以帮助您!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接