![为什么我无法从 ubuntu 桌面完全删除 wayland 组件?](https://linux22.com/image/932742/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E6%97%A0%E6%B3%95%E4%BB%8E%20ubuntu%20%E6%A1%8C%E9%9D%A2%E5%AE%8C%E5%85%A8%E5%88%A0%E9%99%A4%20wayland%20%E7%BB%84%E4%BB%B6%EF%BC%9F.png)
UBuntu 20.10 正在运行gnome-session
。Xorg
我wayland
根本不使用。但是,当尝试删除可能不相关的组件时,我发现以下组件无法删除。
aptitude search '~i' -F '%p' | grep wayland
libwayland-客户端
0 libwayland-光标0
libwayland-egl1
libwayland-服务器0
xwayland
最后一个包xwayland
是需要的gnome-session
,这对我来说没有意义,因为xwayland
在当前桌面会话中应该是无用的。
前三个据称是的一部分wayland compositor infrastructure
,并被一些其他核心包(如)所要求libgtk-3-0
,这也没有意义,因为wayland
它(如果不应该是)是的替代品,并且在环境准备好Xorg
时不应该被标记为先决条件。x11
libwayland-server0
单独要求就更糟糕了gnome-shell
。
因此问题如下:真的有必要吗如何在桌面环境中保留这些软件包并根据当前指定的(反向)依赖项对其进行管理X11
?我该如何彻底清除所有这些不需要的包裹?
答案1
软件包开发人员决定哪些化合物是硬依赖项以及哪些化合物是可选的,并在他们的软件包中进行设置。
Ubuntu 的桌面环境依赖 Gnome Shell。该环境设计为在 Wayland 上运行,也可以在 Xorg 上运行。
是否真的有必要保留这些包并根据 X11 桌面环境中当前指定的(反向)依赖关系进行管理?
从技术上讲,很可能不会。你可以准备.deb
Gnome Shell 软件包,这些软件包不会表明对 Wayland 有硬依赖性。Ubuntu 开发人员默认也提供 Gnome Shell 的 Wayland 会话。
最后,可能没什么理由要担心。唯一的问题(如果这是一个问题的话)是未使用的软件包占用了额外的几兆磁盘空间。
如何删除这些不需要的包?这可能相当技术性。如前所述,这至少需要 Gnome Shell.deb
软件包不将这些 Wayland 软件包标记为硬依赖项。您仍然可以手动删除这些软件包安装的文件,但这需要您自行承担风险,并且会导致您系统上实际存在的内容与 APT 软件包系统认为的系统上存在的内容不一致。
答案2
这种依赖关系有多种可能性。
a) 从编写方式上看,它是你安装的软件所需的库
在这种情况下,您需要更改软件,使其不再需要该库。您可以通过获取软件的源代码并提出补丁来实现这一点。
b)这是一个软件通常不需要的库,但在软件构建时已配置为包含
在这种情况下,您可以更改构建配置 - 它包含在 Debian 包中,我将在下一个选项中介绍。
c) 它是一个库或其他依赖项,软件没有它也能运行,但即使如此,它也包含在 deb 依赖项中。
在这种情况下,您应该获取源 dpkg 和其配置并进行编辑。提出修改意见。
对于每个步骤都有很多东西需要学习,最好从如何为 Debian 打包。
如果是 c),您可能只需删除文件,系统仍能正常运行。您可以将它们移动到其他名称,然后尝试软件,看看它是否正常工作。不过,有时您可能会发现它稍后会随机崩溃,因此除非您真的需要节省空间,否则我不建议这样做。
改变其中任何一件事都需要付出相当大的努力,但另一方面,这是一个学习如何制作自己的 dpkg 包的过程,因此,如果您认为将来可能会这样做,那么这是一项值得的投资。