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

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

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

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

8943閲覧

gemのグローバルとローカルインストールの違いについて

pyon_kiti_jp

総合スコア250

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2019/08/22 01:38

railsで、下記の認識であっているか、確認をしたいと思っています。

Gemfileにgemを追加した後、bundle installすれば、gemはグローバルにインストールされる。よって、以降、rails関連のコマンドは、

rails s
rails g model
rails g controller
などになる。(つまり頭にbundle exeが不要)

Gemfileにgemを追加した後、bundle install --path vendor/bundleと、オプションを付ければ、gemはローカルにインストールされるため、以降、rails関連のコマンドは、

bundle exec rails s
bundle exec rails g model
bundle exec rails g controller
などになる。(つまり頭にbundle exeが必要)

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

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

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

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

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

guest

回答1

0

ベストアンサー

よって、以降、rails関連のコマンドは、(中略)などになる。(つまり頭にbundle exeが不要)

結論だけはあっていますが、経緯は違います

railsコマンドをグローバルインストールしている場合も、ディレクトリにRailsがインストールされていると、bin/railsとして呼べるローカル環境に合わせたRailsを呼び出してそちらに処理を任せる、という挙動になります(参考)。

ということで、このような中継を行わないrails以外のコマンドを使う場合、ローカルのGemfileに合わせたものを呼ぶにはbundle execが必要となります。

gemはローカルにインストールされるため、以降、rails関連のコマンドは、(中略)などになる。(つまり頭にbundle exeが必要)

逆に、bundle installと無縁にグローバルなrailsがインストールされていれば、そのRailsがローカルのRailsに中継してくれますので、bundle execなしでも動きます。


なお、springなどの関係上、bundle exec railsよりbin/railsを呼ぶほうがいいかもしれません(上の「参照」記事にも書かれています)。

投稿2019/08/22 01:52

maisumakun

総合スコア145121

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

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

pyon_kiti_jp

2019/08/22 02:21

う~ん。まだ、よく分からない。
maisumakun

2019/08/22 02:31 編集

railsコマンド「だけ」特殊な処理が入っているので、そうでない場合をまとめておきます。 ・bundle execなし→インストールした経緯は問わず、グローバルインストールされたgemのコマンド(特に指定しなければ、インストールされている中で最新版)が呼ばれる(ローカルのGemfileと一致しないこともありうる) ・bundle execあり→インストール方法は問わず、Gemfile.lockに書かれたバージョンのgemが呼び出される
pyon_kiti_jp

2019/08/22 04:13

Gemfileにgemを追加して、パスを指定しないで、bundle installした場合、グローバルにインストールされるので、gem installでインストールしたのと同じ場所にインストールされるという事でしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問