Removing broken packages in Ubuntu

UbuntuApt

Ubuntu Problem Overview


There was an error when I tried to remove a package, so it was left in a broken state. I tried the following:

sudo dpkg --remove --force-remove-reinstreq rvm

Output:

(Reading database ... 41743 files and directories currently installed.)
Removing rvm (1.29.3-1) ...
bash: rvm: command not found
dpkg: error processing package rvm (--purge):
 subprocess installed pre-removal script returned error exit status 127
Errors were encountered while processing:
 rvm

.

sudo dpkg --purge rvm

Output: same as above

sudo dpkg -i --force-overwrite package

Output:

dpkg: error processing archive rvm (--install):
 cannot access archive: No such file or directory
Errors were encountered while processing:
 rvm

Is there a way to force remove it, ignoring all errors? I'm using Ubuntu 16.04 on WSL.

Ubuntu Solutions


Solution 1 - Ubuntu

I faced this problem with a broken package, rvm. I tried many things like sudo apt install -f and sudo dpkg --purge --force-all rvm but nothing worked. Finally I managed to find a blog post that explains how to remove broken packages on Debian/Ubuntu.

Here are the steps.

  1. Find your package in /var/lib/dpkg/info, for example using: ls -l /var/lib/dpkg/info | grep <package>

  2. Move the package folder to another location, like suggested in the blog post I mentioned before.

     sudo mv /var/lib/dpkg/info/<package>.* /tmp/
    
  3. Run the following command:

     sudo dpkg --remove --force-remove-reinstreq <package>
    

So as an example I solved my problem by executing the following commands in a terminal:

sudo mv /var/lib/dpkg/info/rvm.* /tmp/
sudo dpkg --remove --force-remove-reinstreq rvm

Solution 2 - Ubuntu

  1. Install synaptic package manager.

     sudo apt-get install synaptic
    
  2. Open synaptic package manager and search for the package which you want to remove or install or change

Done!

Solution 3 - Ubuntu

so in my case perl-modules-5.22 was corrupt. I followed the steps in the accepted answer, but this did not resolve my issue.

to fix I additionally had to:

sudo apt remove -f perl-modules-5.22
sudo apt upgrade -y

Solution 4 - Ubuntu

sudo apt remove -f <package_name>

Ex: sudo apt remove mongo* will remove all mongo db packages.

Solution 5 - Ubuntu

I had a similar issue where a package was missing files, and hence could not be removed. The error message was "Stopping Service. Cannot stop ***.service, service is not running" Service is not running since service file is missing.

Shouldn't it be easier to purge the package then? I guess not.

Still: run aptitude

sudo aptitude

find the package in question, check its info, verify which versions exist. Install a different version from the one you have presently (ideally one patch version up or down from what you have to avoid too much change) - it will ask you what to do with the missing files - choose to replace from the version being installed

sudo apt-get install <package>=<version>

Once all such missing files are replaced, you should be able to do standard purge

sudo apt-get purge <package>

Solution 6 - Ubuntu

Execute the command as a root

sudo apt-get install -f

You need elevated privileges for the package manager.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionLeo JiangView Question on Stackoverflow
Solution 1 - Ubuntuemont01View Answer on Stackoverflow
Solution 2 - UbuntuIdeaconView Answer on Stackoverflow
Solution 3 - UbuntuWeezyKrushView Answer on Stackoverflow
Solution 4 - UbuntuPulak GhoshView Answer on Stackoverflow
Solution 5 - UbuntuAlex LutskyView Answer on Stackoverflow
Solution 6 - UbuntuAbdelhakView Answer on Stackoverflow