删除 Ubuntu 中损坏的包
Removing broken packages in Ubuntu
我尝试删除包时出错,因此它处于损坏状态。我尝试了以下方法:
sudo dpkg --remove --force-remove-reinstreq rvm
输出:
(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
输出:同上
sudo dpkg -i --force-overwrite package
输出:
dpkg: error processing archive rvm (--install):
cannot access archive: No such file or directory
Errors were encountered while processing:
rvm
有没有办法强制删除它,忽略所有错误?我在 WSL 上使用 Ubuntu 16.04。
我遇到这个问题是因为一个损坏的包 rvm。我尝试了很多东西,比如 sudo apt install -f
和 sudo dpkg --purge --force-all rvm
但没有任何效果。最后我设法找到了一个博客 post,它解释了如何在 Debian/Ubuntu.
上删除损坏的包
步骤如下。
在 /var/lib/dpkg/info
中找到您的包裹,例如使用:ls -l /var/lib/dpkg/info | grep <package>
将包文件夹移动到另一个位置,就像我之前提到的博客 post 中的建议。
sudo mv /var/lib/dpkg/info/<package>.* /tmp/
运行以下命令:
sudo dpkg --remove --force-remove-reinstreq <package>
举个例子,我通过在终端中执行以下命令解决了我的问题:
sudo mv /var/lib/dpkg/info/rvm.* /tmp/
sudo dpkg --remove --force-remove-reinstreq rvm
以root身份执行命令
sudo apt-get install -f
您需要提升包管理器的权限。
安装突触包管理器。
sudo apt-get install synaptic
打开 synaptic 包管理器并搜索您要删除或安装或更改的包
完成!
所以就我而言 perl-modules-5.22
已损坏。
我按照接受的答案中的步骤进行操作,但这并没有解决我的问题。
要修复我还必须:
sudo apt remove -f perl-modules-5.22
sudo apt upgrade -y
sudo apt remove -f <package_name>
例如:sudo apt remove mongo*
将删除所有 mongo 数据库包。
我有一个类似的问题,一个包丢失了文件,因此无法删除。错误消息是“正在停止服务。无法停止 ***.service,服务未 运行ning”
由于缺少服务文件,服务未 运行ning。
那么清除包不是更容易吗?我猜不是。
仍然:运行能力
sudo aptitude
找到有问题的包,检查它的信息,验证存在哪些版本。
安装与您目前拥有的版本不同的版本(最好是比您必须的版本更高或更低的补丁版本,以避免太多更改) - 它会询问您如何处理丢失的文件 - 选择从正在安装的版本替换
sudo apt-get install <package>=<version>
一旦所有丢失的文件都被替换,您应该可以进行标准清除
sudo apt-get purge <package>
我尝试删除包时出错,因此它处于损坏状态。我尝试了以下方法:
sudo dpkg --remove --force-remove-reinstreq rvm
输出:
(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
输出:同上
sudo dpkg -i --force-overwrite package
输出:
dpkg: error processing archive rvm (--install):
cannot access archive: No such file or directory
Errors were encountered while processing:
rvm
有没有办法强制删除它,忽略所有错误?我在 WSL 上使用 Ubuntu 16.04。
我遇到这个问题是因为一个损坏的包 rvm。我尝试了很多东西,比如 sudo apt install -f
和 sudo dpkg --purge --force-all rvm
但没有任何效果。最后我设法找到了一个博客 post,它解释了如何在 Debian/Ubuntu.
步骤如下。
在
/var/lib/dpkg/info
中找到您的包裹,例如使用:ls -l /var/lib/dpkg/info | grep <package>
将包文件夹移动到另一个位置,就像我之前提到的博客 post 中的建议。
sudo mv /var/lib/dpkg/info/<package>.* /tmp/
运行以下命令:
sudo dpkg --remove --force-remove-reinstreq <package>
举个例子,我通过在终端中执行以下命令解决了我的问题:
sudo mv /var/lib/dpkg/info/rvm.* /tmp/
sudo dpkg --remove --force-remove-reinstreq rvm
以root身份执行命令
sudo apt-get install -f
您需要提升包管理器的权限。
安装突触包管理器。
sudo apt-get install synaptic
打开 synaptic 包管理器并搜索您要删除或安装或更改的包
完成!
所以就我而言 perl-modules-5.22
已损坏。
我按照接受的答案中的步骤进行操作,但这并没有解决我的问题。
要修复我还必须:
sudo apt remove -f perl-modules-5.22
sudo apt upgrade -y
sudo apt remove -f <package_name>
例如:sudo apt remove mongo*
将删除所有 mongo 数据库包。
我有一个类似的问题,一个包丢失了文件,因此无法删除。错误消息是“正在停止服务。无法停止 ***.service,服务未 运行ning” 由于缺少服务文件,服务未 运行ning。
那么清除包不是更容易吗?我猜不是。
仍然:运行能力
sudo aptitude
找到有问题的包,检查它的信息,验证存在哪些版本。 安装与您目前拥有的版本不同的版本(最好是比您必须的版本更高或更低的补丁版本,以避免太多更改) - 它会询问您如何处理丢失的文件 - 选择从正在安装的版本替换
sudo apt-get install <package>=<version>
一旦所有丢失的文件都被替换,您应该可以进行标准清除
sudo apt-get purge <package>