0

アプリケーションがbundlerを使用している場合、Gemfileを調べることで、インストールされているすべてのgemを簡単に見つけることができます。

たとえば、バンドラーを使用しないRails 3アプリケーションを見ているのですが、どのgemを使用しているかを知るにはどうすればよいですか?

ありがとう

4

1 に答える 1

2

Bundlerを使用していない場合、使用されているすべての宝石を識別するための明確な方法がわかりません。アプリツリー全体で最初のrequireステートメントを検索することもできますが、ほとんどのステートメントは表示されません。ジェムは内部で他のジェムも必要とし、独自の依存関係をインストールしますが、それらのジェムはアプリのrequireステートメントから直接参照されません。

アプリが機能し、テストに合格した場合(つまり、少なくとも必要なすべてのgemがインストールされている場合)、を作成しGemfile、必要であることがわかっているgemを一覧表示してから、テスト(またはアプリ自体)を実行することで問題に取り組むことができます。 )を介してbundle exec、にリストされている宝石のみGemfileが表示されるようにします。Gemfile次に、不足している宝石に関連する障害が発生し、すべてが機能するまでそれらをに追加できます。を介して機能するようbundle execになると、そこにあるすべての要件をキャプチャしたことがわかります。

RVMを使用している場合は、アプリのgemsetをアプ​​リの.rvmrcルートにファイルとともに作成して、RVMの自動gemset切り替えとBundler統合を利用すると便利です。これにより、今後の宝石の状態の維持が容易になります。

いずれにせよ、アプリを動作状態で実行すると、使用している可能性gem listのあるすべてのgemが表示されますが、gemsetにスコープされたり、ラップされたりすることなく、他の理由でインストールされたgemも表示されます。アプリの依存関係とは何の関係もありません。bundle exec

于 2013-03-16T21:46:04.753 に答える