GHCは私のカバルインストールされたパッケージを見つけることができません
質問
GHC 6.12.3をインストールし、次にHaskellプラットフォームをインストールしました。私はテストプログラムをコンパイルしようとしています:
$ ghc test.hs
test.hs:3:0:
Failed to load interface for `Bindings':
Use -v to see a list of the files searched for.
だから、当然、私はそうします
cabal install Bindings
これは正常に動作し、パッケージを〜/.cabal/lib/bindings-0.1.2に配置します。問題は、GHCで再びコンパイルするとき、Cabalでインストールしたパッケージが見つからないことです。冗長モードでのコンパイルは次のとおりです。
ghc -v test.hs
Using binary package database: /home/ludflu/ghc/lib/ghc-6.12.3/package.conf.d/package.cache
Using binary package database: /home/ludflu/.ghc/x86_64-linux 6.12.3/package.conf.d/package.cache
別のStackOverFlowユーザーが示唆したように、私は次のように試みました:
ghc-pkg describe rts > rts.pkg
vi rts.pkg # add the /home/ludflu/.cabal/lib to `library-dirs` field
ghc-pkg update rts.pkg
しかし、役に立たない。 .cabalをパッケージディレクトリのリストに追加する方法を検索するにはどうすればよいですか?ありがとうございました!
解決
どのパッケージがインストールされているかを確認できます ghc-pkg list
. 。パッケージを指定する必要があるかもしれません ghc
と -package <pkgname>
または私は追加すると信じています --make
パッケージを含む依存関係の追跡をトリガーします。
編集: Bindingsパッケージは確かに時代遅れです ハッケージページ. 。これはパッケージ管理の問題ではなく、利用可能な唯一のモジュールは Bindings.Deprecated
, 、空のモジュールであるにもかかわらず、完全にロードできます。関連する部分が分かれていると思います bindings-<module>
, 、したがって、Bindings機能が必要な場合は、それらのパッケージに目を向ける必要があります。
他のヒント
http://www.haskell.org/haskellwiki/cabal-install
特に知っておくべきことの1つは、パッケージがデフォルトでCABALによってローカルにインストールされているのに対し、コマンドはコマンドが
runhaskell Setup configure
runhaskell Setup build
runhaskell Setup install
デフォルトでグローバルにインストールします。グローバルにパッケージをインストールすると、ローカルパッケージは無視されます。 Cabal-Installのデフォルトは、構成ファイルを編集して変更できます。
私は同じエラーを取得していました runhaskell
指図。 .cabalファイルを備えたディレクトリにCabalを使用し、エラーを解決することができました。