去年我开始尝试使用 Linux,努力学习技术基础,同时也表明我强烈支持开源软件的整个理念。无论如何,我花最多时间研究的两个发行版是 Arch Linux 和 Ubuntu。我知道它们非常不同,但我今天的问题与包管理系统有关。
在 Arch Linux 中,如果您想要删除某个软件包及其所有依赖项,您可以运行命令pacman -Rs [packagename]
。要查看作为依赖项安装且不再被其他程序需要的软件包,您可以运行pacman -Qdt
。
现在在 Ubuntu 或任何其他基于 APT 的软件包系统中,您都可以使用类似的命令删除软件包,apt-get remove [packagename]
然后apt-get autoremove
删除不再需要的依赖项。
我似乎遇到的问题是,在 Arch Linux 中运行类似的命令pacman -Rs gnome
将删除 gnome 和随之安装的所有依赖项,并pacman -Qdt
允许我确保没有剩余任何内容,但在 Ubuntu 中apt-get remove gnome
只会删除元包,然后运行不会apt-get autoremove
返回任何内容。
pacman -Rs
我想知道如何在基于 APT 的包系统上实现类型删除。
答案1
你之所以没有删除你期望的内容,是因为gnome
元包不是唯一依赖于所有 gnome 桌面的元包(如果你使用 Ubuntu GNOME Remix),而是依赖于ubuntu-desktop
它的变体ubuntu-gnome-desktop
。你正在查看的是aptitude
高级包管理器提供的内容。apt-get
很简单,它需要手动完成大多数工作。你不能指望它能完成 pacman 的所有功能,特别是在 Ubuntu 中,那里有专门为安装风格而创建的元包。
你需要的是:
aptitude search ~i~sgnome
这将查找从 gnome 部分安装的软件包。你可能需要依赖某些已安装软件包的软件包:
aptitude search '~R(?and(?name(gnome), ~i))'