Cygwin 環境に RugyGems 2.4.1 を入れて gem install 出来なくなった場合の対応
Cygwin 環境に RugyGems 2.4.1 を入れて gem install 出来なくなった場合の対応
概要
Cygwin 環境に RugyGems 2.4.1 を入れて gem install 出来なくなった場合の対応について。
問題発生環境
- Windows7
- Cygwin(64bit)
- rbenv + ruby 2.1
- RubyGems 2.4.1
経緯
Cygwin 環境で RubyGems のバージョンを 2.4.1 に上げたところ、
下記のエラーが発生して、 gem install ができなくなりました。
$ gem i qiita_scouter
Fetching: qiita_scouter-0.0.1.gem (100%)
ERROR: While executing gem ... (TypeError)
no implicit conversion of nil into String
対応
RubyGems の GitHub をあさったところ、該当 Issue を発見。
https://github.com/rubygems/rubygems/pull/1000
https://github.com/rubygems/rubygems/pull/1000/files
プルリクエストの内容を rubygems/installer.rb
に適用すれば直ります。
- 修正前
def windows_stub_script(bindir, bin_file_name)
ruby = File.basename(Gem.ruby).chomp('"')
return <<-TEXT
@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"#{bindir.tr(File::SEPARATOR, File::ALT_SEPARATOR)}\\#{ruby}" "#{File.join(bindir, bin_file_name)}" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"%~dp0#{ruby}" "%~dpn0" %*
TEXT
end
- 修正後
def windows_stub_script(bindir, bin_file_name)
ruby = File.basename(Gem.ruby).chomp('"')
alt_separator = File::ALT_SEPARATOR || File::SEPARATOR
return <<-TEXT
@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"#{bindir.tr(File::SEPARATOR, alt_separator)}\\#{ruby}" "#{File.join(bindir, bin_file_name)}" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"%~dp0#{ruby}" "%~dpn0" %*
TEXT
end
Author And Source
この問題について(Cygwin 環境に RugyGems 2.4.1 を入れて gem install 出来なくなった場合の対応), 我々は、より多くの情報をここで見つけました https://qiita.com/tbpgr/items/cf39aea42bb68ef62614著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .