2

次の質問があります。

相互に依存する 2 つの Haskell ライブラリがあり、両方のライブラリは cabal によって管理されています。対応する cabal ファイルは次のようになります。

ライブラリ 1:

name:           Lib1
version:        0.1
cabal-version:  >=1.2
build-type:     Simple
author:         Matthias

library
  hs-source-dirs:  src
  build-depends:   
               base >= 4,
               Lib2
  ghc-options:     -Wall
  exposed-modules:   <...>

ライブラリ 2:

name:           Lib2
version:        0.1
cabal-version:  >=1.2
build-type:     Simple
author:         Matthias

library
  hs-source-dirs:  src
  build-depends:   
               base >= 4,
               Lib1
  ghc-options:     -Wall
  exposed-modules: <...>

ライブラリの 1 つ (ここではライブラリ 2) をインストールすると、次のようにcabal install機能します。

Resolving dependencies...
In order, the following will be installed:
Lib2-0.1 (reinstall)
Warning: Note that reinstalls are always dangerous. Continuing anyway...
Configuring Lib2-0.1...
Building Lib2-0.1...
Preprocessing library Lib2-0.1...
Registering Lib2-0.1...
Installing library in
C:\Users\Matthias\AppData\Roaming\cabal\Lib2-0.1\ghc-7.4.2
Registering Lib2-0.1...

ただし、他のライブラリ (ここではライブラリ 1) をインストールしようとするとcabal install、依存関係エラーが発生します。

Resolving dependencies...
cabal.exe: Could not resolve dependencies:
trying: Lib1-0.1 (user goal)
next goal: Lib2 (dependency of Lib1-0.1)
rejecting: Lib2-0.1/installed-aa4... (package is broken)

相互に依存している 2 つのライブラリを処理して、依存関係エラーが発生しないようにする方法はありますか?また、cabal がそのようなケースを適切に処理できないだけですか?

4

1 に答える 1