Fatal aptitude: „Unrecoverable fatal error, aborting: files list file for package ‚‚ is missing final newline“

Debian Aptitude ist ein einfaches und sehr mächtiges Installationswerkzeug. Aber auch hier treten sporadisch Probleme auf, die sich nicht ohne weiteres und mit gutem Gewissen lösen lassen. Zumindest war ich selber beim ersten Auftreten des hier beschriebenen Problems eher vorsichtig – wer möchte sich schon eine gesamte Debian-Installation zerschiessen nur weil durch übereilte Aktivität ein irreparabler Schaden entstanden ist.

Und mal ganz ehrlich: Der manuelle Eingriff in automatisierte Installationsroutinen eines Produktionssystems ist ein wenig mit einer Operation am offenen Herzen vergleichbar.

Fehlermeldung

„Unrecoverable fatal error, aborting: files list file for package ‚<some-pkg>‘ is missing final newline“

Beispiel:

# apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
  acpid base-files file firmware-linux-free imagemagick initscripts libapache2-mod-php5 libapr1 libc-bin libc-dev-bin
  libc6 libc6-dev libmagic1 libmagickcore3 libmagickcore3-extra libmagickwand3 libssl0.9.8 libxi6 libxml2 linux-base
  linux-image-2.6.32-5-amd64 linux-libc-dev locales openssh-client openssh-server openssl openvpn php5-cli php5-common
  php5-gd php5-mysql procps python python-minimal sysv-rc sysvinit sysvinit-utils tzdata
38 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/58.3 MB of archives.
After this operation, 993 kB of additional disk space will be used.
Do you want to continue [Y/n]?
Extracting templates from packages: 100%
Preconfiguring packages ...
(Reading database ... 90%dpkg: unrecoverable fatal error, aborting:
 files list file for package 'libxfont1' is missing final newline
E: Sub-process /usr/bin/dpkg returned an error code (2)

Lösung

Manchmal sind rabiate Methode die beste Lösung: In diesem Fall kann die korrupte (fehlerhafte) Datei gelöscht und das entsprechende Paket erneut installiert werden.

Beispiel:

# rm /var/lib/dpkg/info/libxfont1.list
# apt-get install --reinstall libxfont1

Anschließend sollte nicht nur der Fehler behoben sein, sondern auch die Aptitude-DB wieder konsistent sein. Im Zweifelsfall hilft ein beherztes

# apt-get -f install

beim Aufräumen.