仕事でUbuntu Lucidマシンをセットアップしていていろいろパッケージをインストールしているうちにやたらと高い確率で、パッケージインストールがハングアップするようになった。
aptitudeやapt-getでパッケージを手元にダウンロードし終わって
パッケージの展開に入るタイミングでそのままaptitudeがハングアップする。
aptitudeにかぎらず、apt-getやdpkg -iでのパッケージインストール時にも同じ現象が発生する。
ためしに /var/cache/apt/archive内のdebファイルを dpkg -i してみても同じところでハングアップする。
ハングアップした場合、CTRL+Cでも終了できず kill -KILLする羽目になる。
こうなると、/var/lib/dpkg/lockファイルができてしまって、マシンを再起動するまでapt-getやdpkg -iが実行できない。
(無理やり sudo rm /var/lib/dpkg/lockを削除してしまえば実行はできる)
そのままapt-getしてもパッケージに矛盾があるといわれてapt-get updateもできないので
dpkg --configure -a (パッケージ名)
dpkg -P --force-remove-reinstreq (パッケージ名)
を実行して修復する。
どうも自分の環境だけではないようなので、調べてみると ubuntu のBugTrackerにヒットした
□ dpkg hangs while unpacking replacement
https://bugs.launchpad.net/ubuntu/+source/dpkg/+bug/624229
□Bug 18632 - "INFO: task" dpkg "blocked for more than 120 seconds.
https://bugzilla.kernel.org/show_bug.cgi?id=18632
現象はドンピシャ。同じ現象を経験している人に共通するのは何らかのUSB接続ストレージを
接続しているという点。
ためしに、毎回apt-get installがハングアップしていたマシンからUSBメモリを抜いてやって
念のため再起動してから、apt-get install (目的のパッケージ名)してみたらすんなりと
インストールが完了する。
・・・マジかよ。