13

昨夜、グーグル検索check gem dependenciesなどでこれに対する答えが明らかにならなかったことに驚いたので、何かが欠けているに違いありません。

私は基本的にrpm -V、インストールされたgemの一部またはすべてを調べて、それらの依存関係もインストールされていることを確認するコマンドとほぼ同等のものを求めています。gem installデフォルトでは、依存する gem がインストールされるため、通常、これは必要ありません。ただし、gem uninstall他の gem がアンインストール対象の gem に依存している場合でも、gem にアンインストールを続行するように指示すると、依存関係が壊れてしまうことは明らかです。問題は、宝石をインストール/アンインストール/更新せずに、壊れた依存関係をどのようにリストするかです。

私はまださまざまな理由で Rails 2.x に行き詰まっているため、Bundler に関する NB の回答はあまり役に立ちません。

4

4 に答える 4

17

bashシェルで:

gem list --no-version > list
gem dependency --pipe > depends
grep -v -f list depends > failed.txt
rm list
rm depends

failed.txtには、インストールされていないすべての依存関係のリストが含まれるようになります。

于 2010-11-12T14:05:47.000 に答える
5

Bundler に関する回答には興味がないとおっしゃっていましたが…</p>

Bundler は gem の依存関係の解決を処理し、Rails 2.3 と互換性があります。多くの Rails 2 アプリで Bundler を使用しましたが、問題はありませんでした。

Bundler on Rails 2.3 をインストールする手順については、http://gembundler.com/rails23.html を参照してください。

于 2010-11-09T12:28:16.723 に答える
3

走ってみましたgem updateか?これにより、すべてのgemのすべての依存関係テストが実行されます。これを実行して、別のディレクトリにインストールできます。

[編集]また、実行するとどうなりますgem checkか?gem dependencyすべてのgem依存関係が一覧表示されます。何かがインストールされているかどうかがわからない場合はcheck、それらのgemがインストールされているかどうかを確認するようなコマンドに出力をパイプすることができると確信しています。[/編集]

于 2010-11-09T14:25:03.483 に答える
1

アプリケーションを Bundler に切り替えることに、私は間違いなく同意します。システムにインストールされている gem の満たされていない gem 依存関係をすばやく特定する方法を明示的に探している場合 (私のように)、このスクリプトを試してみてください。

https://gist.github.com/1124953

于 2011-08-04T10:58:21.980 に答える