Here is a quick way to fix half installed packages under Debian / Ubuntu Linux.
If you see an error while removing or installing debian / ubuntu package that read as follows:
(Reading database ... 147148 files and directories currently installed.)
Preparing to replace octopussy 0.9.6.2 (using octopussy_0.9.6.2_all.deb) ...
Unpacking replacement octopussy ...
dpkg: warning - old post-removal script returned error exit status 10
dpkg - trying script from the new package instead ...
dpkg: error processing octopussy_0.9.6.2_all.deb (--install):
subprocess new post-removal script returned error exit status 10
dpkg: error while cleaning up:
subprocess post-removal script returned error exit status 10
Errors were encountered while processing:
octopussy_0.9.6.2_all.deb
In above octopussy package is not getting removed because of script error. Mostly these are shell script written using /bin/sh. These scripts called with -e option which means if not interactive, exit immediately if any untested command fails. The exit status of a command is considered to be explicitly tested if the command is used to control an if, elif, while, or until; or if the command is the left hand operand of an && or || operator. In short shell scripts will abort with an error if something fails. To fix this problem visit /var/lib/dpkg/info directory
# cd /var/lib/dpkg/info
Now find out files in following format:
packagename.*
octopussy.*
$ ls octopussy.*
Now open each file and find out line that read as follows:
#/bin/sh -e
Replace with
#/bin/sh
Save and close all the files. Now run apt-get / dpkg command again to remove package:
# apt-get --purge remove octopussy
OR
# dpkg -r octopussy
- Email this to a friend
- Printable version
- Rss Feed
- Last Updated: May/11/2008

{ 7 comments… read them below or add one }
Thanks a lot! It saved my day!
Nice tip man, it really useful
Worked just as written! Thank you!
Hey,
very nice tip man I thought that I will never remove my package !!!
Just one thing I had in my files in /var/lib/dpkg/info/ one of my packageÅ› file with a #!/bin/sh -e but others files were with a “good” #!/bin/sh and 2 lines after a vicious line :
set -e
You need to comment it !!!
Thanks thanks thanks
jeff
Sweet.. had this problem with vagalume… really appreciate it…
Thanks!
I had a similar problem however I did not have “#/bin/sh -e” in my package scripts.
Instead I had “set -e” which I simply uncommented.
Tagged as: apt-get command, deb, dpkg command, exit status, reading database, script error, shell script, shell scripts, Ubuntu Linux