2016-06-27 10 views
1

私は、nixpkgsでhaskellを使い始めました。 the official guide to nixpkgsから私は以下を読んでいます:ghcはライブラリのパスをどのように解決しますか?

GHCは、インストールされているすべてのライブラリを、独自のlibディレクトリ内に見つけようとします。それが記載されているとおり

GHCが同じパスにインストールされるすべてのライブラリを必要と言っているようです。

ghcはghc-pkgによって設定されたパッケージデータベースを見て、ライブラリのパスを見つけることができたと思いました。 この場合、ファイルシステムの異なる ディレクトリの下にライブラリを配置し、これらの異なるパスを解決するためにpackage-dbを設定することが可能でなければなりません。 しかし、これは上記のリンクで言われたことと矛盾するので、私は何を得ていないのですか?

お返事ありがとうございます。

答えて

3

GHCは、あなたはそれがパッケージを検索する方法を操作することを可能にするいくつかのコマンドラインオプションがあります。要するに

https://downloads.haskell.org/~ghc/7.10.3/docs/html/users_guide/flag-reference.html#idp46686514389712

を、GHCはあなたがパッケージDB検索などのパッケージディレクトリ(ののスタックを指定することができますパス)ので、別のディレクトリにあるライブラリにアクセスすることができます。

+0

基本的に私の理解は正しかったです。私は上記のリンクで何を言ったのか誤解しましたか? –

+0

はい - あなたの理解は正しいです。その段落は、パッケージデータベースの簡略化された表示を示し、その目的は、次の段落で提示される 'ghcWithPackages'関数の必要性を動機づけることです。さらに、「GHCのストアパスは一度作成すると変更できません」という文は技術的には真実ではありませんが、nixはシステムパッケージdbを変更しません。 「機能的」なので、system-dbの上に別のパッケージdbを作成します。その意味では、この文は真です。 – ErikR

+0

今私は理解していると思う、ありがとう。 –

関連する問題