質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

Q&A

解決済

2回答

2785閲覧

zshで起動したirbで、インストールしたgemをrequireできない

y-doi

総合スコア322

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

0グッド

0クリップ

投稿2018/01/29 13:02

編集2018/01/31 05:02

bashでirbを起動してインストールしたgemをrequireできますが、

zshでirbを起動してインストールしたgemをrequireすると
LoadError になります。

irb(main):001:0> require 'irbtools' # 省略 LoadError (cannot load such file -- irbtools)

gem list

gem listでirbtoolsがインストールされているのは確認できました。

irbtools (2.2.0)

irbtoolsが読み込まれないのは何が原因か教えていただきたいです。

ENV

ruby はrbenvで管理してます。
bash と zshのirb で ENVの環境変数を比べると、異なっている箇所があります。
"PATH"では前半部分に違いがありました。それ以降の部分は共通なので省略してます。

# bash(うまくいく) "PATH" => "/Users/usrname/.rbenv/versions/2.5.0/bin:/usr/local/Cellar/rbenv/1.1.1 /libexec:..." #"GEM_HOME"なし #"GEM_PATH"なし "RUBYLIB"=>"/usr/local/Cellar/rbenv/1.1.1/rbenv.d/exec/gem-rehash:",
# zsh(だめ) "PATH" => "/Users/usrname/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/bin:/Users/usrname/.rbenv/versions/2.5.0/bin:/usr/local/Cellar/rbenv/1.1.1/libexec: ..." "GEM_HOME"=>"/Users/username/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0", "GEM_PATH"=> "/Users/usrname/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0:/Users/usename/.gem/ruby/2.5.0", "RUBYLIB"=> "/Users/usrname/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib:/usr/local/Cellar/rbenv/1.1.1/rbenv.d/exec/gem-rehash",

設定ファイル

bashとzshの設定ファイルでrbenvに関する記述の部分です。

# .bash_profile export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)"
# .zshrc export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init - zsh)"

おそらくパスの設定が悪いのだと思いますが、
どうすれば解決できるか教えていただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2018/01/29 16:10

.irbrcを読み込まないというのは、どうやって判断しましたか?
y-doi

2018/01/30 05:54

ppやdateが読み込まれているので.irbrc が読み込まれないは間違いでした。なので質問を編集しました。
otn

2018/01/30 06:20

うまく行くirbと、だめなirbで、ENVの内容を比較してみてください。
y-doi

2018/01/30 06:38

ENVについて追記しました。
guest

回答2

0

GEM_HOME GEM_PATHは使った事はないですが、いずれにせよ、BashとZshの違いで差は出ませんので、それぞれの初期設定ファイルに書いてある事が違うんだと思います。
.bash*.z*のファイルを見比べてください。

投稿2018/01/31 03:25

otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y-doi

2018/01/31 04:58

環境変数"PATH"にも違いがありましたので、追記しました。 bashとzshの設定ファイルを見比べましたが、原因がわかりませんでした。
otn

2018/01/31 05:02

>bashとzshの設定ファイルでrbenvに関する記述の部分です。 いえいえ。全記述を見比べてください。
y-doi

2018/01/31 05:38

自己解決できました。 設定ファイルを見直して解決できました。 たくさんのコメントありがとうございました。
guest

0

自己解決

自己解決できました。

.zshrc にoh-my-zshのpluginsを書いていたのですが、
plugins=(bundler) を消すとrequireできました。

bundlerプラグインの公式wikiに

Also creates shell aliases so you don't have to type "bundle exec" before most common ruby commands when you are in a directory with a Gemfile.

とあります。
Gemfileのあるディレクトリにいるとき、最も一般的なrubyコマンドにはbundle execが自動で補われるようです。

つまり、plugins=(bundler)を.zshrcに書いてあると
$irb$bundle exec irbになるようです。
Gemfileに特にgemを記述していなかったのでrequireされませんでした。

投稿2018/01/31 05:37

編集2018/01/31 06:19
y-doi

総合スコア322

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問