dpkg:如何忽略 post/pre 脚本中的错误

30

我开发了Debian软件包并在我的post/pre脚本中(在我的情况下是postrm)出现语法错误。我成功安装了软件包,但现在无法删除它:

/var/lib/dpkg/info/blablabla.postrm: 11: Syntax error: ";;" unexpected
dpkg: error processing blablabla (--remove):
 subprocess installed post-removal script returned error exit status 2

如何忽略它并完全删除包?


请参考以下链接:https://dev59.com/iVYM5IYBdhLWcg3wvSHN,了解如何在Ubuntu中删除损坏的软件包。 - rogerdpack
1个回答

49

就我个人而言,我对此也一无所知。如果 --force-all 不起作用,我会直接编辑 /var/lib/dpkg/info/blablabla.postrm 以使其正确。您正在删除这个软件包,因此不必担心很快将被删除的脚本,对吧?


3
谢谢。我没有尝试您的方法,而是创建了一个与原包同名的新包,并修正了空的postrm脚本并安装它。当我安装这个新包时,dpkg会尝试删除我的错误包,但会出现错误,然后它会尝试使用我新包中的postrm,并且不再出现错误。 - Reddy
1
在我的情况下,它是/var/lib/dpkg/info/blablabla.prerm - Jeroen Vermeulen - MageHost
@JeroenVermeulenBVBA 卸载的步骤是,首先运行blablabla.prerm,然后从软件包中删除文件,最后运行blablabla.postrm。该命令可以包含在任一脚本中,具体取决于它应该在删除文件之前还是之后运行。 - wangguoqin1001

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接