0

システムにCabalをビルド/インストールしようとしていますが、次の依存関係エラーが発生しています。

SDGL0990Z464C:Cabal-1.8.0.4 cflynn$ ghc --make Setup
SDGL0990Z464C:Cabal-1.8.0.4 cflynn$ ./Setup configure
Configuring Cabal-1.8.0.4...
Setup: At least the following dependencies are missing:
base >=4 && <3 && >=1 && <5, filepath >=1 && <1.2

GHC 6.6.1以降に「filepath」パッケージが付属していることを知っている限り、GHC 7.0.1をインストールしていますか?そして、私は「ベース」が何を指しているのか正確にはわかりませんか?

4

1 に答える 1

1

GHCには、特定のライブラリセットがすでにインストールされた状態で出荷されます。上記のbuildコマンドを実行すると、cabalは、GHCに付属している古いバージョンのライブラリを「再インストール」したいと考えています。これは明らかな理由で悪いことです。

本当にこれを行う必要がある場合は、cabal-devの代わりに使用すると機能する場合がありCabalます。ちなみに、を使用すると、コンパイラに付属してSetup.hsいるバージョンのライブラリが呼び出されますが、コマンドを実行するとプログラムが呼び出されます。Cabalcabalcabal-install

cabal-devサンドボックスビルドを提供するラッパーcabal-install(したがってCabalライブラリ)です。GHCに同梱されている異なるバージョンのライブラリを必要とするプログラムを安全にインストールできるようにします。残りの問題は、それらの古いライブラリが新しいGHCに対して構築されるかどうかです。多くの場合、ビルドは失敗します。

cabal-devの代わりに、日常のパッケージ構築に使用することを強くお勧めしますcabal-install。サンドボックス化の利点は数多くあり、cabal-installすでにインストールされているものの依存関係チェーンの途中でパッケージをアップグレードすることにより、パッケージデータベースが破損するリスクを大幅に上回ります。

の使用に関する詳細については、このredditの投稿cabal-devをお勧めします。

baseは、すべてのGHCインストールに付属する機能の多くを提供するHaskellモジュールのセットです。これは、ほとんどのHaskellユーザーが必要としている便利なライブラリのコレクションです。

于 2011-06-25T00:38:13.273 に答える