web-dev-qa-db-ja.com

gemがインストールされているかどうかを確認する方法は?

Sinatraプロジェクトにdata_mapperをインストールしました。好奇心、なぜ私がgem install brew、 できます $ which brewとその場所のパスを取得し、data_mapperを取得できませんか?これは一部の宝石では機能しますが、他の宝石では機能しません。

Gemが正しくインストールされていることを確認するにはどうすればよいですか?バージョンをチェックすると、gemが正しくダウンロードされることが保証されますか?

37
andy4thehuynh

一般的な解決策

gem listを試して、インストールされているgemのリストを取得します。

特定のgemをテストするには、-iを正規表現で使用できます:gem list -i "^gem_name$"。 (この手法に対するコメントのTimoへのクレジット。)

OPの特定のソリューション

Data_mapperが見つからない場合、gem名が予想と異なる可能性があります。

また、brewを見つけるためにwhich brewを実行しているだけの場合、brewというgemを見つけるのではなく、brew実行可能ファイルの場所を見つけることになります。代わりにgem which brewを試してください。

編集:

which data_mapperを実行してdata_mapperを探している場合、おそらく見つかりません。 whichは、UNIX実行可能ファイルを見つけるためのUNIXプログラムであり、data_mapperにはおそらくないでしょう。

目的は、gemが正しいバージョンでインストールされていることを確認することなので、gem listを使用します。 gem list data_mapperを使用して、特定のgemに制限できます。

インストールされていることと機能していることを確認するには、gemをrequireして、コードで使用する必要があります。

46
user513951

スクリプトでチェックを使用したい場合、これはより良い出力(trueまたはfalse)と適切な終了コードを提供します:

gem list -i <gem_name>

または、バージョンオプションを追加します。

gem list -i <gem_name> -v version
35
Spajus