apt 仅卸载某个包而不卸载其依赖

2017-11-28 13:34:44 +08:00
 cnt2ex

操作系统是 debian 9。

当初安装系统的时候没有选择图形界面,而是镜像安装完之后通过 apt install gnome 来自动安装对应的依赖。 最近突然发现很多依赖其实都没必要,于是想卸载一些东西。比如卸载 gnome-weather 之类的。但是这些是通过 gnome 依赖安装进来的,没法直接卸载。

其中依赖关系大概是 gnome -> gnome-weather, gnome-core 如果我直接卸载 gnome-weather 会导致 gnome 的依赖被破坏,而 apt 就会决定把 gnome 也会卸载掉,而卸载 gnome 就会把通过 gnome 安装进来的依赖 gnome-core 给卸载掉。但是我想保留 gnome-core 而卸载 gnome-weather。

所以现在我打算先卸载 gnome 然后保留 gnome 所有的依赖,再继续卸载 gnome-weather。其实就是想卸载一个包而不卸载其依赖。

网上找到的方法是 dpkg -r --force-all

但我现在还能想到的就是

  1. hold 所有 gnome 的依赖再卸载 gnome
  2. 将 gnome 的依赖全部标记为 manual 的。然后再卸载 gnome。

不过我都不知道以上的后果是什么,所以问问有没有人比较熟悉类似的操作的。

8873 次点击
所在节点    Linux
22 条回复
msg7086
2017-11-29 19:35:03 +08:00
apt-get 不会自动卸载依赖,所以「平时」是推荐用 apt/aptitude 的,因为「会」自动卸载依赖。
这里你的特殊要求,正好反过来用 apt-get 才能满足。

另外上面好多层楼把依赖关系搞反了,不知从哪里开始吐槽。
leux
2017-12-08 12:31:07 +08:00
安装时不要用 apt install gnome,可以试试 apt install gnome-core,前面那个会为你安装 gnome 全家桶。
更多包可以使用 https://www.debian.org/distrib/packages 搜索

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/410179

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX