I am currently unable to install any packages. I receive the following error:

 dpkg: unrecoverable fatal error, aborting:
 too-long line or missing newline in `/var/lib/dpkg/diversions

I have tried various approaches:

sudo dpkg --configure -a   
sudo apt-get clean
sudo dpkg-divert --list 
sudo apt-get check  
sudo apt-get install -f

etc. but all to no avail. Either the output was apparently normal or the error above was thrown.

I'm stumped as to how to proceed and would appreciate any assistance. If any further info is required just ask.

Thanks for the reply. I followed the suggestions and am now getting a different error:

(Reading database ... 50%dpkg: unrecoverable fatal error, aborting: files list file for package 'libksane0' is missing final newline E: Sub-process /usr/bin/dpkg returned an error code (2)

Here is the link for the current diversions: http://paste.ubuntu.com/823500/ and the old broken one: http://paste.ubuntu.com/823502/

I tried to reinstall libksane0 but the same error occurred.

  • It might help if you uploaded your /var/lib/dpkg/diversions to paste.ubuntu.com so we could take a look. – Marius Gedminas Jan 31 '12 at 0:37
  • Actually, upload /var/lib/dpkg/diversions-old too; the differences between the two might be illuminating. – Marius Gedminas Jan 31 '12 at 0:43
  • This python script helped me: ubuntuforums.org/showthread.php?t=1319791 – user123612 Jan 16 '13 at 7:48

First, back up /var/lib/dpkg/diversions and /var/lib/dpkg/diversions-old, just in case.

Next, try copying /var/lib/dpkg/diversions-old on top of /var/lib/dpkg/diversions:

cd /var/lib/dpkg
mv diversions diversions.broken
cp diversions-old diversions

Now dpkg should be able to work again, but it's possible that its diversions database is incomplete. Reinstalling (apt-get install --reinstall packagename) the affected packages might be a good way to restore that; question is: how can you identify which packages were affected? Comparing the contents of diversions.broken and diversions-old (diff -u diversions-old diversions.broken) is one way; looking in /var/log/dpkg.log for a list of recently updated packages and reinstalling them just in case is another. It is also possible that nothing bad will happen from you having a slightly out-of-date diversions database; it all depends on what exactly is in those files.


I know this is really late, but other people might find this still useful. The same error message with a different file popped up on Kali (Debian-Variant) and the best solution I found was copying the erroneous file from a still working copy of Kali. Problem solved.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.