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

ins*_*nia 21 apt

我刚刚安装了 MySQL-server 及其所有依赖项,以及其他必需品。但是当它去配置 mysql-server 时它没有这样做,并吐出一个错误。哪个错误在这里无关紧要,因为我设法将问题定位为 mysql-server 和 mysql-common 之间的依赖关系问题。需要删除Mysql-common。

但是当我去

apt-get purge remove mysql-common 
Run Code Online (Sandbox Code Playgroud)

它也自动想要删除与之关联的所有内容,包括所有 mysql 依赖项,甚至 apache2 和 php5..

那么需要在 apt-get 命令中添加什么参数来仅卸载一个软件包,而保持所有其他软件包完好无损。

ish*_*ish 27

apt-get不会让你这样做,因为这是包管理系统允许的潜在危险步骤。

只要你知道有可能的后果,使用dpkg--remove选项来做到这一点。例如:

sudo dpkg --remove mysql-common
Run Code Online (Sandbox Code Playgroud)

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

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

sudo dpkg --remove --force-depends mysql-common
Run Code Online (Sandbox Code Playgroud)