cabal-install でパッケージをインストールすると、すべての依存関係も間接的にインストールされます。.cabal/packages
直接インストールしなかったフォルダー内の特定のパッケージが与えられた場合、それが依存していた他のパッケージを見つける方法はありますか?
2 に答える
15
このコマンドをどこかで見つけて (今はどこか思い出せません)、定期的に使用して、インストール済みパッケージの依存関係グラフを生成します。
ghc-pkg dot | tred | dot -Tpng > pkgs.png
~/.ghc
ではなく、実際にはインストールされたパッケージ情報が含まれていることに注意してください~/.cabal
。
以下も使用できます。
ghc-pkg unregister <pkgname>
これは、このパッケージをアンインストールした場合に壊れるパッケージのリストを出力します。これは、実際に探しているものです。
$ ghc-pkg unregister aeson
ghc-pkg: unregistering aeson would break the following packages: criterion-0.8.0.0 yesod-1.2.4 .... (use --force to override)
アップデート
上記dot -Tsvg > pkgs.svg
のコマンドで を使用すると、テキスト検索を使用することもできます (たとえば、ブラウザでファイルを開く場合)。
また、cabユーティリティは、依存関係や逆方向の依存関係などを表示するのに非常に便利です。
スタック ユーザーstack dot --external
の場合は、上記の代わりにプロジェクト ディレクトリから使用できますghc-pkg dot
。
于 2014-01-04T22:39:39.787 に答える
3
cabal-dbが役立つことがわかりました。たとえば、実行できます
cabal-db revdeps semigroupoids
そしてそれはあなたに言うでしょう
zippers: semigroupoids (>=4 && <5)
wl-pprint-extras: semigroupoids (>=3 && <5)
vector-instances: semigroupoids (>=3)
validation: semigroupoids (>=4.0)
transformers-abort: semigroupoids (>=1.2)
these: semigroupoids (>=1.0 && <4.1)
等...
于 2014-06-19T02:07:36.557 に答える