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

问题描述 投票:3回答:4

使用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然而,工作正常。

ruby rubygems rvm
4个回答
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')

3
投票

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

适合我,可能是rubygems目录删除failed

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


0
投票

手动设置版本:

gem update --system 2.6.6

0
投票

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

我通过将ruby从版本2.4.0升级到2.5.0_2来解决了这个问题

#brew upgrade ruby

在ruby升级之后,gem从版本2.5.2更新到2.7.6版

© www.soinside.com 2019 - 2024. All rights reserved.