如何使用apt-get仅删除一个特定的软件包?


18

我刚安装了MySQL-server及其所有依赖项,以及其他必需品。但是当它配置mysql-server时却失败了,并吐出了一个错误。哪个错误与此处无关,因为我设法将问题定位为mysql-server和mysql-common之间的依赖项。需要删除Mysql-common。

但是当我去

apt-get purge remove mysql-common 

它会自动删除与其相关的所有内容,包括所有mysql依赖项,甚至apache2和php5。

因此,需要在apt-get命令中添加什么参数才能卸载ONLY ONE软件包,而保留所有其他软件包。

Answers:


21

apt-get不允许您这样做,因为这是软件包管理系统所允许的潜在危险步骤。

只要您知道可能会有后果,请使用dpkg带有该--remove选项的选项来进行。例如:

sudo dpkg --remove mysql-common

注意:在apache2, php5, mysql-server单独安装的12.04系统上,使用apt-get删除mysql-common不想删除apache2php5

失眠症的评论:如果您需要覆盖依赖系统的决定,则可以(非常小心并确保您知道自己在做什么)使用额外的--force-depends

sudo dpkg --remove --force-depends mysql-common

好的谢谢。许多其他人声称它有效。我的意思是很多人。但是,是的,在Ubuntu上会发生这种情况。但我实际上是在debian上。但是我问这里因为我是这里的用户,所以他们非常相似,包装系统是相同的..谢谢芽。
2012年

别担心 我不会离开你的。我总是接受 在我接受之后,人们通常只会忽略它,仍然存在问题。但我只是尝试过,它不会让我。有强制命令吗?
2012年

抱歉,没错-我认为您必须等待一段时间才能完成操作-15分钟,我想吗?如果有机会,请再试一次,不要着急。另外,我刚刚注意到您提到您正在使用Debian-请注意,涉及Debian的问题是题外话,因此通常是封闭的。请考虑将来在unix.stackexchange.com上问一些Debian特定的问题:)
ish

是的,我以为是..我直到需要时才真正提及它的主要原因。我的意思是他们的软件包管理器是相同的,Ubuntu刚刚被debian取代。但是好吧。15分钟的事情不起作用,因为我尝试的时间超过15分钟。但是我不能输入类似于“ dpkg -f --remove mysql-common”的内容吗?
2012年

如果Plain --remove发出警告并异常中止,那么可以通过强制使用-f。BTW --remove与相同-r
ish 2012年

0

如果有人想知道那里,2014 debian命令如下:

dpkg --force-all -r name_of_package

它改变了一点

有大量的--force-参数,因此,为了方便起见,最好通过以下方法检查它们:

dpkg --force-help

--force-all绝对不安全,为什么不建议--force-depends并提供适当的警告呢?
guntbert 2014年

删除其他软件包所需的软件包而不卸载另一个软件包永远是不安全的。--force-all只是一种快速而肮脏的方法
Michal Sapsa 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.