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.
Best Answer
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:
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.