gem install / update失败,"没有将nil隐式转换为String"

时间:2016-06-23 04:25:08

标签: 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然而,工作正常。

4 个答案:

答案 0 :(得分:13)

这是版本2.5.x的ruby gem安装程序中的错误。修补文件installer.rb(在我的机器上/usr/local/lib/ruby/2.3.0/rubygems/installer.rb中),如下所示:

替换:

if ruby_executable then
      question << existing

使用:

if ruby_executable then
      question << (existing || 'an unknown executable')

答案 1 :(得分:3)

sudo dnf -y remove ruby\* sudo find /usr -name "*ruby*" -exec rm -fr {} \; sudo dnf install -y ruby sudo gem update --system

对我有用,可能是 ruby​​gems 目录删除failed

PS:我在fedora,但这应该适用于ubuntu / debian,使用 apt-get 代替 dnf

答案 2 :(得分:0)

手动设置版本:

gem update --system 2.6.6

答案 3 :(得分:0)

当我尝试安装xcodeproj时遇到了同样的问题。我无法使用gem update解决它(我得到了同样的错误)。

我通过将ruby从版本2.4.0升级到2.5.0_2

解决了这个问题
#brew upgrade ruby

ruby​​ upgrade gem从版本2.5.2更新到2.7.6版