[Debian FAQ]更新リストが多すぎてapt-get updateが失敗する
Debian FAQ


通常運用時には特に問題なく利用できるapt-getコマンド であるが、一斉にセキュリティパッチが当たって、パッケージの更新数が飛躍的に上がってしまうことがある。
数が多くても、そのまま実行してくれればいいのだが、apt-get updateを実行しても、エラーが出力されて、うまく更新リストを作れなくなうようである。

 # apt-get update
E: Dynamic MMap ran out of room
E: Error occured while processing wzdftpd (NewVersion1)
E: Problem with MergeList /var/lib/apt/lists/cdn.debian.or.jp_debian_dists_stable_main_binary-i386_Packages
E: The package lists or status file could not be parsed or opened.

 

更新リストが多すぎるということなので、一度に作成する更新リスト数を制限してみる。

# vi /etc/apt/apt.conf.d/70debconf
--------内容--------
APT::Cache-Limit "100000000"; →制限を追加


これを設定してapt-get updateを行ったら、問題なく更新リストが作成できた。

更新リストの数が多すぎる訳だから、apt-get update と apt-get upgrade を繰り返すことになる。

# apt-get update
# apr-get upgrade




これでうまくいけばいいのだが、更新リストを途中でぶった切ってしまっているわけで、 依存関係があるパッケージが同じapt-get upgradeコマンドで、更新されるとは限らない。 同期がずれたせいでインストールがうまくいかなかった場合は、-fオプションを与えてみるといいだろう。

# apt-get -f


これで同期がとれるはずである。 すべてのパッケージが更新されたら、制限を追加した「APT::Cache-Limit "100000000";」の部分を外しておくことを忘れずに!