2012-02-07 10 views
1

私が使っていた最新のcabal-install(0.13.3、darcs repoから)は素晴らしいです。再インストールでGHCインストールを中断する可能性があることを通知します。私が知りたがっているのは、cabal install fooとすれば、私のGHCを壊すでしょう。を再インストールします。代わりにcabal-dev install fooとすればどうなりますか?私はGHCを壊すのを避けることができるでしょうか?実際にfooパッケージをcabal-devサンドボックスで使用できますか、それとも壊れたサンドボックスですか?cabal-devの動作を再インストール

Example: yesod、GHC7.4.1、キャタール-dev0.9から構築されたgithubソース、Cabal1.14.0ライブラリ。

答えて

5

私はあなたのことを正しく理解していれば、どちらの場合でもGHCを壊すことはありません。私はあなたが別のパッケージの依存関係のうちの1つを再インストールするパッケージをインストールすることを指していると信じているので、他のパッケージの依存関係チェーンを破って、単純に.ghcをホームフォルダから削除し、カバールのインストールをやり直すのは、本当に痛い方法ではあるが、通常はこの問題を解決します。

cabal-devを使用する場合、すべてのcabalインストール手順とghc-pkg登録手順はローカルのサンドボックス環境で実行されます。あなたのグローバル/ユーザーghcパッケージはで、全く触れられていませんです。通常、プロジェクトごとに1つのcabal-devサンドボックスをインスタンス化するので、上記のような衝突は通常発生しません。

あなたの質問に答えるには、それはその特定のcabal-devサンドボックスに既にインストールされているものに完全に依存します。競合がなければ何も壊れません。 --reinstallを強制実行する場合は、再インストールしたばかりのパッケージに依存するローカルのcabal-devサンドボックス内のパッケージを--reinstallにする必要があります。

いずれにしてもGHCのインストール自体は中断されません(または変更されることはありません)。rm -rf cabal-devは常にプロジェクトフォルダの下にあり、cabal-dev installをやり直してください。

これが役に立ちます。

関連する問題