Removing broken packages in Ubuntu

依然范特西╮ 提交于 2019-12-20 09:42:40

问题


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.


回答1:


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 this 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



回答2:


Execute the command as a root

sudo apt-get install -f

You need elevated privileges for the package manager.



来源:https://stackoverflow.com/questions/48431372/removing-broken-packages-in-ubuntu

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!