npm ではnode_modules
、依存パッケージのディレクトリからの相対ディレクトリに依存関係がインストールされます。各パッケージは、その依存関係を自身の内部に格納します。
ただし、Cabal を使用すると、パッケージをインストールすると常にグローバルに (つまり に~/.cabal
) インストールされます。これは、異なるバージョンのパッケージが互いに競合し、すべてが失敗してうまくいかないため、悪夢と涙の完璧なレシピです。
グローバルではなく、自分のパッケージのサブディレクトリなど、ローカルにCabal パッケージをインストールしたいと考えています。これらのパッケージのすべての依存関係は同じことを行います。パッケージのディレクトリ ツリーの例は次のようになります。
my_package/
dependencies/
json/
dependencies/
foo/
etc...
bar/
etc...
mtl/
etc...
my_package.cabal
src/
Main.hs
これは可能ですか?