- Published on
Rubyでgemのパスが変わってしまった場合
Rubyでライブラリのインストールなどをしてからgemのパスが変わってしまった場合の対処について紹介します。
RubyでjrubyをインストールしてからGEMのパスが変わってしまいました。
Ruby - Ruby gemコマンドのパスを変更するには(139476)|teratailRuby gemコマンドのパスを変更するには 以前jRubyをインストールして、それからRubyのパスは変わっていませんが、GEMのパスが変わってしまったようです。
そのせいで、gemのrequireがうまくいきません。
gemのパスへのインストールはできたのですが、変更がどうしてもわかりません。
色々調べて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
できましたね!(感激)
できてますね!!よかった。
jrubyとか新しくwindowsにインストールしたあとに何かトラブルがあったら、gemやruby本体のパスが上書きされてしまっている可能性をまっさきに考えた方がいいかもしれませんね。
- Authors
- Name
- Shou Arisaka / 有坂 翔
- 情報技術者 / Z世代プログラマー / 米大学院にてデータサイエンスを学ぶ
- ITプロフェッショナルとして活動しています。React.js等のモダンなウェブ制作・アプリ開発を得意としており、Java・Python・Rust等のプログラミング言語を用いたソフトウェア開発全般を行っています。
- Github 🐙StackOverflow 🔥Qiita 📝
- TechFreeTools 🔧About.me 👤