list file for package missing final newline

Fernan Aguero fernan.aguero at
Fri Jan 12 15:18:27 UTC 2007

Seems like I'm being warnocked[1] so I reply to myself, 
just for the archives.


+----[ To ubuntu-users at <fernan.aguero at> (11.Jan.2007 19:13):
| Hi,
| I'm having a problem since yesterday where I can't install
| any package on my Ubuntu Edgy.
| The error message is always something like:
| E: /var/cache/apt/archives/libid3-3.8.3c2a_3.8.3-5_i386.deb:
| files list file for package `libgtk1.2' is missing final
| newline
| This happened with both the latest security updates
| (linux-restricted-modules-common), and with other packages I
| tried to install.

The problem was a bad shutdown, and fsck did not help ...
so the list file for libgtk1.2 was corrupted.

| I read elsewhere that I could edit the plist in the package
| to add this missing newline, but I'm a new Debian/Ubuntu
| user, and I don't know my way about unpacking, editing, and
| either installing from the unpacked package or repackaging
| and installing from there ... the .deb file it's a binary
| file (can't edit with vim), but the less(1) included in
| ubuntu seems to be smart (or is a wrapper) and shows me the
| content of the file ... is this a .tgz or similar kind of
| archive in a different disguise?
The bad list file was not the one inside the package,
but the one that I had in my system. 

If you're new to Debian/Ubuntu and are still finding your
way around, here you go:

1. The package list files are in /var/lib/dpkg/info

  In my case /var/lib/dpkg/info/libgtk1.2.list was corrupted
  (its contents were binary cruft).

  So the best way to go about this is to

2. Manually reinstall the affected package 

  # move the info dir containing corrupted data out of the
  # way, and create a new 'info' dir
  cd /var/lib/dpkg
  sudo mv info info.bak
  sudo mkdir info

  # reinstall the affected package, in my case this was
  sudo apt-get --reinstall install libgtk1.2

  # this will print lots of warnings about missing list
  # files for the dependencies, which is obvious.
  # now move the newly generated files in 'info/' to the 
  # 'info.bak/' directory containing info for all packages
  # this will replace the information for the package 
  # we just installed
  sudo mv info/* info.bak/

  # and now get things back to where they were
  sudo rm -rf info
  sudo mv info.bak info

Finally, to answer my own questions about debian/ubuntu
packages (which in the end turned out to be unrelated to the
problem at hand)

3. Debian/Ubuntu packages are ar(1) archives

  but file(1) won't tell you about this, at least not in
  Ubuntu (it's a secret, don't tell anyone). 

  You can unpack a .deb like this:

  ar -x package.deb

| Thanks for any tip,
| Fernan


More information about the ubuntu-users mailing list