2018年11月24日土曜日

Debian packageのinstall/uninstall processが失敗した時に手動でどうにかする方法

Debian packageのinstall/uninstall processの実体は、packageに含まれている幾つかのshell scriptである。

これらは/var/lib/dpkg/info/以下に展開されており、例としてx11-utils packageについてのfilesは、

x11-utils.conffiles
x11-utils.list
x11-utils.md5sums
x11-utils.postinst
x11-utils.postrm

がある。このうち、scriptが.postinstと.postrmの2つで、名前の通りそれぞれinstall後及びuninstall後に実行される内容が記述されている。

何かしらの要因でinstall scriptに不具合が発生してinstall processが失敗する時 (unstableでは時々ある)は、ここを直接修正すれば中途半端な状態を解消できる可能性がある。

最近では、iptables packageのpostinst scriptにinstall (upgrade)が失敗する不具合があった (2018-11-24現在修正済み)。この場合は、/var/lib/dpkg/info/iptables.postinstを手動で修正してaptitudeなどからupgradeをやり直した。

cf. [#913811 - iptables fails to upgrade from 1.8.1-2 to 1.8.2-1 - Debian Bug report logs](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=913811)