Rubyでライブラリのインストールなどをしてからgemのパスが変わってしまった場合の対処について紹介します。
RubyでjrubyをインストールしてからGEMのパスが変わってしまいました。
Ruby - Ruby gemコマンドのパスを変更するには(139476)|teratail
Ruby gemコマンドのパスを変更するには 以前jRubyをインストールして、それからRubyのパスは変わっていませんが、GEMのパスが変わってしまったようです。sinatraをしたかった。が、gemのパスが先日設定したjrubyのパスになっており、それが原因でsinatraが使用される側のrubyへインストールされず、requireできない、という状況になっている。 もしかしたら、bundle install、や実行が失敗するのも同じ原因かもしれない。とりあえず、gemコマンドのパスをjrubyではなく本来のrubyのパスへ戻したい。 ``` PS C:\pg> gcm ruby | fl Pathそのせいで、gemのrequireがうまくいきません。
gemのパスへのインストールはできたのですが、変更がどうしてもわかりません。
色々調べて$GEM_PATHや$GEM_HOMEという変数にGEMのパスが格納されるらしいですが、Powershellで確認してみたところ、そのような変数はありませんでした。
どうしたらgemのパスを元のRubyと同じパスに戻すことができるか、教えてください。
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(’;’,“rn”)
…
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コマンドが使用できるようになりました。
<code>gem install sinatra</code>
で、インストールしたら、
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
できましたね!(感激)

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