ghcまわりのパッケージが壊れたらしい
どうもaptでいろいろやってるうちにパッケージを壊してしまったらしい。
% sudo apt-get update % sudo apt-get upgrade
などすると最後にこんなメッセージを吐いて終了してしまう
libghc6-http-dev (30010004-2) を設定しています ... ghc-pkg: cannot find package HTTP-3001.1.3 dpkg: libghc6-http-dev の処理中にエラーが発生しました (--configure): サブプロセス post-installation script はエラー終了ステータス 1 を返しました 以下のパッケージの処理中にエラーが発生しました: libghc6-http-dev E: Sub-process /usr/bin/dpkg returned an error code (1)
% sudo apt-get -f install
としても効果なし。ぐぐってみるとDebianのバグトラックページを見つけた(#510499 - ghc-pkg --global will still look in user config - Debian Bug report logs)
これに従い
% sudo -H apt-get -f install
としたら問題が解消した
パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。 1 個のパッケージが完全にインストールまたは削除されていません。 この操作後に追加で 0B のディスク容量が消費されます。 libghc6-http-dev (30010004-2) を設定しています ... Reading package info from "/usr/lib/haskell-packages/ghc6/lib/HTTP-3001.0.4/installed-pkg-config" ... done. building GHCi library /usr/lib/haskell-packages/ghc6/lib/HTTP-3001.0.4/ghc-6.8.2/HSHTTP-3001.0.4.o... done. Saving old package config file... done. Writing new package config file... done.
sudo -Hオプションはsudo中にHOME環境変数を/rootに設定してくれるものらしい。ghc-pkgがHOMEに依存してたということみたいですね。