Ruby gem パス 変化

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

Rubyでライブラリのインストールなどをしてからgemのパスが変わってしまった場合の対処について紹介します。jrubyとか新しくwindowsにインストールしたあとに何かトラブルがあったら、gemやruby本体のパスが上書きされてしまっている可能性をまっさきに考えた方がいいかもしれません

Shou Arisaka
1 分で読める
2018年9月24日

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(’;’,“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
できましたね!(感激)

![Image](https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_c782731d-df26-461c-b0e8-b35b2a43cdbe.png)

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

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

この記事をシェア

Shou Arisaka 2018年9月24日

🔗 リンクをコピー