Ubuntu – Remove Obsolete Packages After Failed Release Upgrade

do-release-upgradepackage-managementupgrade

Sometimes, when I upgrade a system via do-release-upgrade, the update process fails and the script tells me to finish the process manually via dpkg --configure -a. This is a not serious problem – after manually solving the dependencies problem and the finishing upgrade process all works well.

But the do-release-upgrade script has a cleanup process after finishing the upgrade:

Remove obsolete packages?  
XXX packages are going to be removed.  
Continue [yN]  Details [d]y

which removes some obsolete packages from old version of system.

Seems that this process doesn't execute when the automatic upgrade fails and I finish upgrade manually, so obsolete packages from old version remain installed in the system.

How I can run the "Remove obsolete packages" process manually after finishing the upgrade by hand?

Best Answer

Test this:

Open a terminal (press Ctrl+Alt+T).

Run this:

sudo -i

apt-get update
apt-get autoremove
apt-get clean
 
UNUSCONF=$(dpkg -l|grep "^rc" | awk '{print $2}')
apt-get remove --purge $UNUSCONF

NEWKERNEL=$(uname -r|sed 's/-*[a-z]//g'|sed 's/-386//g')

ADDKERNEL="linux-(image|headers|ubuntu-modules|restricted-modules)"

METAKERNEL="linux-(image|headers|restricted-modules)-(generic|i386|server|common|rt|xen)"

UNUSKERNELS=$(dpkg -l | awk '{print $2}' | grep -E $ADDKERNEL | grep -vE $METAKERNEL | grep -v $NEWKERNEL)

apt-get remove --purge $UNUSKERNELS

update-grub