機能 ショートカットキー
リファレンス(参考URL)一覧へ移動 R
記事URLをMarkDownとしてコピー Ctrl+M
前のコードタグへ移動 Ctrl+←
次のコードタグへ移動 Ctrl+→
ヘルプを表示・非表示 H
Tips
- ショートカットキーは記事上で有効です。ヘッダー/フッター付近では機能しないことがあります。
- コードタグ移動機能がうまく動かないときは、Shift+F5でページを更新してみてください。
- このウィンドウを閉じるには、Hキーをもう一度押してください

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\ifgm2\AppData\Local\Programs\Python\Python36-32\Scripts
C:\Users\ifgm2\AppData\Local\Programs\Python\Python36-32
C:\Ruby24-x64\bin
c:\jruby-9.2.0.0\bin
C:\Users\ifgm2\AppData\Local\Microsoft\WindowsApps
C:\Users\ifgm2\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本体のパスが上書きされてしまっている可能性をまっさきに考えた方がいいかもしれませんね。

この記事で欲しい情報が見つからなかった方へ

この記事の更新情報がある場合があります。
この記事は以下の記事とも関連性があると思われます。

Ruby hash キーが重複していた場合は2つの値を加算する
Rubyでhashや配列をeach_with_indexで最初と最後の処理だけ特別な処理をする
Rubyで配列の集合演算
Rubyでmechanizeでブログをキーワード検索して最初の投稿を取得する
JRubyでRuby製クロスプラットフォームGUIアプリを作ってみた
Ruby open-uriでBASIC認証ありのプロキシサーバーを経由
Ubuntu Rubyでmecabを使えるようにする


管理人の方針で、既存の記事の編集はせず、新しい情報や大きな既存情報の更新があった場合には、新しい記事として公開することになっています。
当記事で欲しい情報が見つからなかった・解決に至らなかった場合、これらのリンクがお役に立てるかも知れません。

どうやってこの関連記事を生成しているの?
この機能のPHPソースコード(2500行)

コメントを残す

Close Menu