Ruby gem安装/更新失败,返回“0”;没有将nil隐式转换为字符串;

Ruby gem安装/更新失败,返回“0”;没有将nil隐式转换为字符串;,ruby,rubygems,rvm,Ruby,Rubygems,Rvm,使用rvm,每当我尝试安装或更新gem(或rubygems)时,都会出现相同的错误: $ gem update --system Updating rubygems-update Fetching: rubygems-update-2.6.6.gem (100%) ERROR: While executing gem ... (TypeError) no implicit conversion of nil into String 但是,我的系统ruby工作正常。手动设置版本: ge

使用rvm,每当我尝试安装或更新gem(或rubygems)时,都会出现相同的错误:

$ gem update --system
Updating rubygems-update
Fetching: rubygems-update-2.6.6.gem (100%)
ERROR:  While executing gem ... (TypeError)
    no implicit conversion of nil into String

但是,我的系统ruby工作正常。

手动设置版本:

gem update --system 2.6.6

sudodnf-y删除红宝石\*
sudo find/usr-name“*ruby*”-exec rm-fr{}\;
sudo dnf安装-y ruby
sudogem更新——系统

对我有效,可能是一个rubygems目录删除
失败


PS:我使用的是
fedora
,但这应该可以在
ubuntu
/
debian
上使用apt-get而不是dnf

这是2.5.x版ruby gem安装程序中的一个bug。按如下方式修补文件installer.rb(在我的机器上的/usr/local/lib/ruby/2.3.0/rubygems/installer.rb中):

替换:

if ruby_executable then
      question << existing
如果ruby\u是可执行的,那么

问题我在尝试安装xcodeproj时遇到了同样的问题。我无法通过使用gem更新来解决它(我得到了相同的错误)

我通过将ruby从2.4.0版升级到2.5.02解决了这个问题

#brew upgrade ruby

ruby升级后,gem从2.5.2版升级到2.7.6版

这到底有什么帮助?所有谷歌搜索结果都推荐这一点,但我尝试的每个版本,包括这个版本,都会给我相同的错误信息。所以,尝试使用:rvm remove 2.2.1--archive--gems删除您的ruby版本,因为没有足够的数据提供任何建议。请至少发布整个错误消息(并尝试
gem install rubygems update
并在此处发布结果)。这就是整个错误消息。下一行是终端提示
gem安装rubygems更新
有相同的错误。请尝试
which gem
which ruby
并查看结果。如果您的发行包中安装了系统Ruby,可能您正在尝试更新它,但这不会起作用。
$which gem
/Users/davbeck/.rvm/rubies/Ruby-2.2.1/bin/gem
$which ruby
/Users/davbeck/.rvm/rubies/ruby-2.2.1/bin/ruby
。我在所有rvm版本上都遇到了这个问题,但在ruby系统(OS X 10.11.5)上没有。毕竟,我建议您使用
rm-rf~/.rvm
,从头开始重新安装所有东西,我在
ubuntu
上使用这个方法,这很有效!准确地说,只删除
/usr/local
中的文件就足够了。对cygwin有效(用setup-x86.exe替换通过dnf删除/安装)对我有效,使用
sudogem--debug update--system
后,我在我的High Sierra Mac上找到了installer.rb的位置:
/system/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/Ruby/2.3.0/rubygems/installer.rb
#brew upgrade ruby