ghc-pkg check
は壊れたパッケージを表示し、なぜそれらが壊れているのかというよりは良いことです。しかし、私が知る限りでは、壊れたパッケージを自動的に処理する方法はありません。壊れたパッケージを扱うための推奨される方法は何ですか? (GHCを再インストールしないことをお勧めします)ghc-pkg checkで指摘されている問題を修正しました。
答えて
あなたは、グローバルパッケージデータベースを破壊しないほど賢明でした。破損は、簡単にGHCの再インストールが必要であることを意味します。だから、破損がユーザーパッケージdbに制限されていると仮定しよう。唯一のいくつかのパッケージが壊れている場合、あなたは、問題のあるパッケージの登録を解除することで、多くの場合、ボルケンの登録を解除すると、他のパッケージを破るだろうと文句を言うだろう
$ ghc-pkg unregister --user borken
をセットアップを修正することができます。最初に登録を解除するか、またはすぐに--force
でボルケンを登録解除しようとするかどうかは、後で新たに壊れたものを扱うかどうかは、ほとんどの選択肢です。 ユーザdbのパッケージのみを登録解除するようにしてください。物事があまりにも厳しくない場合は、少数のパッケージの登録を解除した後に、ghc-pkg check
はもはや壊れたパッケージを報告しません。
一方、パッケージの大部分が壊れている場合、他のOSのユーザデータベース$ rm -rf ~/.ghc/ghc-version/package.conf.d
または同等のものを完全に消去する方が簡単かもしれません。
いずれにせよ、あなたはまだ使いたいパッケージを失ってしまいますので、新しいものを壊すことなく再インストールしようとします。あなたはcabal-install
にインストールされたすべてのパッケージの一貫性のインストール計画を作成しようとします
$ cabal install world --dry-run
を実行します。それができない場合は、理由が表示されますので、ワールドファイル(~/.cabal/world
)に記載されているパッケージに制約を加えることで問題を解決することができます。 ghc/ghc-pkg)、cabal install world --dry-run
は、vector >= 0.6 && < 0.8
(私はvector-0.7.1
がインストールされています)に依存するvector-algorithms-0.5.2
を設定できないと教えてくれました。理由は、hmatrix-0.12.0.1
にはvector >= 0.8
が必要なためです。 hmatrixの-any
「制約」をワールドファイルの「< 0.12」に置き換えると、クリーンインストールプランが作成されました。
したがって、ワールドファイルに制約を払った後、Cabalからインストールプランを入手します。そのパッケージが既にインストールされているパッケージを再インストールするかどうかを確認してください(新しいバージョンをインストールすると大丈夫ですが、同じバージョンを再インストールするとトラブルが発生します)。キャバルの設置計画に満足している場合は、cabal install world
とGHCが忙しい間にお茶の素敵な鍋を醸造してください。もう一度ghc-pkg check
を実行し、すべてが正しいことを確認します。
一般的に良いアドバイス:パッケージのインストール内容がわからない場合は、は常に--dry-runを最初に使用します。
カバールでグローバルインストールを行うと、犯罪者の登録を解除する戦略が有効になることがありますが、どのように壊れているかによって、ghcが破損する可能性があります。あなたのOSディストリビューションからパッケージをインストールしてグローバルDBを壊した場合は、新しいGHCをインストールし、ディストリビューターを呪い、それ以上のイベントを防ぐのを助けてください。
cabal repair
コマンドは非常に便利ですが、当面は壊れた設定を修復することは残念ながらはるかに多くの作業です。
グローバルパッケージデータベースが壊れているのは何ですか?パッケージをシステム全体でインストールする場合(パッケージマネージャーのためか、複数のマシン用にマシンを管理しているためにパッケージをグローバルにインストールしているため)、修正するだけです。ブートパッケージが壊れたときには**問題です** – ivanm
はい、ブートパッケージが影響を受けていない場合、大きな違いはありません。ユーザーデータベースを完全に消去して、もう一度動作中のGHCを持つことができます。しかし、残念なことにブートパッケージがかなりの影響を受けるという印象を受けました。グローバルにインストールする場合は、特に注意してください。 –
cabal-installを使用すると、ブートパッケージが影響を受ける可能性がありますが、ディストリビューションマネージャを使用しても問題ありません。 – ivanm
しばらくの間、私はこれに頼っていましたghc-pkg-clean script。破損したパッケージはすべて削除され、必要に応じて再インストールされます。より深刻な破損については、ghc-pkg-reset scriptを使用します。
今日、私はghc-pkg-autofixを発見しました。これは、この壊れたパッケージを自動化して、破損しないようにしています。私はそれが何をしているのかわかりません、YMMV。
説明とソースを少し見れば、 'ghc-pkg-autofix'は'〜/ .ghc /.../ package.conf.d/package'の依存関係情報を書き換えます。それは危険な操作であり、物事を暗黙のうちに壊すかもしれませんが、それがうまくいくと、速くなります。 descrisが言うように、_あなた自身のリスクで使用する_。スクリプトがより安全に見えます。しかし、あなたが私のようで、複数のGHCがインストールされている場合、ghc-pkg-cleanは、ghcにリンクされているものだけを処理します(ghc-pkgが使用する引数を取るスクリプトを簡単に変更できます)およびghc-pkg-resetそれらをすべて傷つけるだろう。だから、私のためではなく、私は変だ。 +1の自動ヘルプ。 –
- 1. perspective()の問題はパースペクティブで修正されましたか?
- 2. 調整の問題が修正されました
- 3. iOS 9カスタムクラスのUIPopoverControllerの廃止された問題を修正しました
- 4. TCA 'type' => 'check'のフロントエンドマッピングを修正しました
- 5. ApiGateWayをDynamoDBにバインドする問題を修正しました。
- 6. WP8エミュレータでのフッターの問題を修正しました
- 7. Kafkaがバージョン0.10.2.0でアプリケーションの問題を修正しました
- 8. Googleアプリケーションエンジンで実行されているPythonの速度の問題を修正しました
- 9. Windows XPマシンでホストされているアドホックネットワークを修正しました(MTUの問題)
- 10. Arraylist Java、Scopeの問題を修正してください
- 11. なぜWebViewレイアウトパラメータを修正して身長身長の問題が修正されたのですか?
- 12. jqueryのテキストボックスに関するパフォーマンスの問題が修正されました。
- 13. エラーORA-00979が表示されます。エラーを指摘してください
- 14. jQueryペーストイベントの問題を修正しました
- 15. ランドスケープモードの回転問題を修正しました
- 16. linux mplayerライブラリの問題を修正しました
- 17. PHP imagecreatetruecolorは問題を修正しました
- 18. macOSのGitフォルダの問題を修正しました
- 19. 更新の問題を修正しました。
- 20. 誰がSonarの問題を修正しました
- 21. git分岐の問題を修正しました。
- 22. フローコンテンツオーバーサイズの問題を修正しました
- 23. 子供のコンテナの幅の問題を修正しました
- 24. Perlスクリプトの問題を修正しました
- 25. 位置:Firefox 47で修正された問題
- 26. Rails CSSとJavaScriptで修正された&CSSEditが修正されましたか?
- 27. Androidが初めてです。問題を指摘するのを助けてください。
- 28. Pyspark check hdfs folder修正日
- 29. インベントリプログラムでtxtファイルを更新する問題を修正しました
- 30. AjaxToolkit HtmlEditorExtenderでxmlファイルを編集する問題を修正しました。
これはパッケージのインストール方法によって異なります... – ivanm