2017-08-10 20 views
0

QuickCheckをインストールしようとすると、私は$ stack install QuickCheckを実行します。haskell-stackはQuickCheckをインストールしません

$ stack install QuickCheck 

$ 

コマンドは1秒間停止してから、シェルに空白行のみを返します。ただし、これはではないは、$ ghc-pkg listを実行してパッケージを見つけることができないため、QuickCheckのインストールに成功したように見えます。

$ ghc-pkg list | grep QuickCheck 

$ 

Test.QuickCheckをインポートすることができないため、そのモジュールをインポートするファイルをコンパイルしています。

$ ghc ImportsQuickCheck.hs 
[1 of 1] Compiling ImportsQuickCheck (ImportsQuickCheck.hs, ImportsQuickCheck.o) 

ImportsQuickCheck.hs:6:1: error: 
    Failed to load interface for ‘Test.QuickCheck’ 
    Use -v to see a list of the files searched for. 

$ 

は私がいないところ、それはないだろうスタックのプロジェクトから、それは私のグローバルインストールにインストールする必要があり、私のホームフォルダから stack install QuickCheckを走りました。

なぜstack install QuickCheckがそのパッケージのインストールに失敗しますか?

なぜ失敗したのですか?

グローバルパッケージセットを管理するためのより良い方法はありますか?おそらくstackの代わりにghc-pkgを使用していますか?私は以前にcabal-installを試しましたが、これ以上の問題が発生するのはstackです。

私はnixos 17.03を使用しています。

答えて

0

短い答え:あなたはstack exec -- ghc-pkg describe QuickCheck

長いをしたい:

stackはGHCの異なるインストール、およびパッケージデータベースの複数のレベルを管理します。したがって、ghcまたはghc-pkgをコマンドラインで実行すると、スタックで使用されているものとは異なるバージョンのghcになる可能性があります。

ghc-pkgあなたのGHC_PACKAGE_PATH環境変数を調べて、見るべきパッケージデータベースのリストを取得します。この変数が設定されていない場合は、グローバルパッケージとユーザーパッケージDBが使用されます。これらは、(stack execGHC_PACKAGE_PATH変数を設定)また

使用スタックのDBとは異なるstack installstack buildと同一であることに注意します。唯一の違いは、ターゲット実行可能ファイルを~/.local/binにインストールすることです。 Quickcheckには実行可能ファイルがないため、「インストール」を使用する必要はありません

関連する問題