在使用dpkg安装当前软件包之前,如何卸载另一个软件包?

时间:2018-07-25 02:55:22

标签: apt deb dpkg cydia

我需要在安装当前软件包之前先卸载另一个软件包,我尝试将dpkg --remove com.foo.foo.another放入preinst文件中,该文件不起作用,它会引发错误dpkg: error: dpkg status database is locked by another process。我该如何实现?谢谢!

1 个答案:

答案 0 :(得分:1)

您不能那样做。 Dpkg会在安装的整个过程中锁定其数据库-您的所有脚本都无法执行安装或卸载软件包之类的操作。

我有类似的问题。我想在安装应用程序期间手动安装debian软件包。我的应用程序有一个守护进程,它是我在安装过程中启动的。为了解决守护程序中的问题,我等到dpkg释放了锁,然后安装了软件包。由于它是与postinst脚本分离的守护进程,所以在守护进程中完成此操作非常重要,因此dpkg可以很高兴地完成安装。

您可能需要做类似的事情。