GHCは私のカバルインストールされたパッケージを見つけることができません

StackOverflow https://stackoverflow.com/questions/4641684

  •  09-10-2019
  •  | 
  •  

質問

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を使用し、エラーを解決することができました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top