安装后脚本总是失败时如何强制删除

Gab*_*ira 45 dpkg

我在我的 Ubuntu 10.10 上安装了一个自定义包,并试图删除它,我得到:

$ sudo dpkg -r package
sub-process script post-installation installed returne an error state 127
Run Code Online (Sandbox Code Playgroud)

(从命令返回的消息是从葡萄牙语(br)翻译过来的。

所以,我注意到在这个包的安装脚本中,它所做的是在我的启动时创建一个条目,在 /opt 上创建一个文件夹并创建一个用户。

我删除了它创建的所有内容。但是现在,我只想将它从 dpkg 列表中删除,因为我想让我的 linux 就像我从未安装过这个包一样。

我怎样才能做到这一点?

Bra*_*iam 60

您可能需要使用以下方法手动删除包:

sudo dpkg --purge --force-all package
Run Code Online (Sandbox Code Playgroud)

替换package为包的名称。

请注意:如果软件包不是您的或您不知道脚本的作用,建议报告错误。


jco*_*ctx 36

尝试删除 xmaildpkg --purge --force-all xmail失败,因为预删除脚本退出时尝试停止 xmail 守护进程失败。我在这里找到了解决方案:https : //serverfault.com/questions/179570/how-to-remove-a-package-which-post-installation-and-pre-removal-script-fails

具体来说,我编辑了 /var/lib/dpkg/info/xmail.prerm 并更改|| exit $!|| true

  • 我的删除前脚本有问题,这对我有帮助。 (2认同)
  • 正如人们所料,如果编辑 `*.prerm` 文件过于繁琐,您也可以将其删除 - 卸载过程会丢失它们 (2认同)