プログラミング

Rubyでgemのパスが変わってしまった場合

Rubyでライブラリのインストールなどをしてからgemのパスが変わってしまった場合の対処について紹介します。

RubyでjrubyをインストールしてからGEMのパスが変わってしまいました。

Ruby – Ruby gemコマンドのパスを変更するには(139476)|teratail

Ruby gemコマンドのパスを変更するには
以前jRubyをインストールして、それからRubyのパスは変わっていませんが、GEMのパスが変わってしまったようです。

そのせいで、gemのrequireがうまくいきません。

gemのパスへのインストールはできたのですが、変更がどうしてもわかりません。

色々調べて$GEM_PATHや$GEM_HOMEという変数にGEMのパスが格納されるらしいですが、Powershellで確認してみたところ、そのような変数はありませんでした。

どうしたらgemのパスを元のRubyと同じパスに戻すことができるか、教えてください。

sinatraをしたかった。が、gemのパスが先日設定したjrubyのパスになっており、それが原因でsinatraが使用される側のrubyへインストールされず、requireできない、という状況になっている。
もしかしたら、bundle install、や実行が失敗するのも同じ原因かもしれない。とりあえず、gemコマンドのパスをjrubyではなく本来のrubyのパスへ戻したい。

PS C:\pg> gcm ruby | fl Path


Path : C:\Ruby24-x64\bin\ruby.exe



PS C:\pg> gcm gem | fl Path


Path : c:\jruby-9.2.0.0\bin\gem.bat

環境変数の順位を、jrubyをrubyより下にします。

PS C:\pg> $Env:Path.replace(';',"`r`n")
...
C:\apps\ConEmuPack.170305
C:\apps\ConEmuPack.170305\ConEmu
C:\Users\user\AppData\Local\Programs\Python\Python36-32\Scripts
C:\Users\user\AppData\Local\Programs\Python\Python36-32
C:\Ruby24-x64\bin
c:\jruby-9.2.0.0\bin
C:\Users\user\AppData\Local\Microsoft\WindowsApps
C:\Users\user\AppData\Local\atom\bin
c:\_mount_
c:\php

これで、再度gcm。

PS C:\pg> gcm ruby

CommandType Name Version Source
———– —- ——- ——
Application ruby.exe 2.4.2.198 C:\Ruby24-x64\bin\ruby.exe

PS C:\pg> gcm gem

CommandType Name Version Source
———– —- ——- ——
Application gem.cmd 0.0.0.0 C:\Ruby24-x64\bin\gem.cmd

治りましたね。

これで、gemコマンドが使用できるようになりました。

gem install sinatra

で、インストールしたら、

PS C:\pg\sinatra> ruby .\app.rb
== Sinatra (v2.0.3) has taken the stage on 4567 for development with backup from Puma
*** SIGUSR2 not implemented, signal based restart unavailable!
*** SIGUSR1 not implemented, signal based restart unavailable!
*** SIGHUP not implemented, signal based logs reopening unavailable!
Puma starting in single mode...
* Version 3.11.4 (ruby 2.4.2-p198), codename: Love Song
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://localhost:4567
Use Ctrl-C to stop

できましたね!(感激)

ShareX_ScreenShot_c782731d-df26-461c-b0e8-b35b2a43cdbe.png (1141×347)

できてますね!!よかった。

jrubyとか新しくwindowsにインストールしたあとに何かトラブルがあったら、gemやruby本体のパスが上書きされてしまっている可能性をまっさきに考えた方がいいかもしれませんね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です