我正在使用Ubuntu伙伴17.10。发布说明没有提到任何关于Wayland的内容,而且我一直认为这个系统使用的是Xorg显示服务器。
不过,今天我照常跑
sudo apt update && sudo apt full-upgrade并注意到产出包括:
The following packages will be upgraded:
libwayland-client0 libwayland-cursor0 libwayland-server0 [...]我想,这很奇怪。我的系统到底在使用Wayland吗?
作为拜德指挥官在聊天中提出的建议,我查找正在运行的进程(使用pgrep Xorg和pstree),并找到了Xorg,但没有找到Wayland。所以我很确定Wayland没有跑。我找了Wayland包裹:
dpkg -l | grep [Ww]ayland
ii kwayland-data 4:5.38.0-0ubuntu1 all Qt library wrapper for Wayland libraries - data files
ii kwayland-integration:amd64 4:5.10.5-0ubuntu1 amd64 kwayland runtime integration plugins
ii libkf5waylandclient5:amd64 4:5.38.0-0ubuntu1 amd64 Qt library wrapper for Wayland libraries
ii libqt5waylandclient5:amd64 5.9.1-2 amd64 QtWayland client library
ii libqt5waylandcompositor5:amd64 5.9.1-2 amd64 QtWayland compositor library
ii libwayland-client0:amd64 1.14.0-1ubuntu0.1 amd64 wayland compositor infrastructure - client library
ii libwayland-cursor0:amd64 1.14.0-1ubuntu0.1 amd64 wayland compositor infrastructure - cursor library
ii libwayland-egl1-mesa:amd64 17.2.8-0ubuntu0~17.10.1 amd64 implementation of the Wayland EGL platform -- runtime
ii libwayland-server0:amd64 1.14.0-1ubuntu0.1 amd64 wayland compositor infrastructure - server library
ii qtwayland5:amd64 5.9.1-2 amd64 QtWayland platform plugin为什么我有这些包相关的Wayland,即使我没有使用Wayland?
发布于 2018-04-10 14:41:32
Thanks to 字节指挥官 和 伊利亚·卡根 making建议 在聊天,我发现这些包是作为依赖项安装的。
当建议模拟删除Wayland相关的包时.当我假装要删除所有与Wayland相关的包裹时.
apt remove '.*wayland.*' -s结果看上去像是末日,一个全屏幕终端的包被移除,包括整个ubuntu-mate-desktop元打包及其所有的附件,xorg包(哎呀!)和marco (MATE的默认窗口管理器)。
但是仅仅删除kwayland-data似乎只会移除kwayland-integration和libkf5waylandclient5.
因此,正如Eliah 建议,我试着问aptitude why,我有这些包,例如
$ aptitude why kwayland-data
i konsole Depends libkf5windowsystem5 (>= 4.96.0)
i A libkf5windowsystem5 Recommends kwayland-integration
i A kwayland-integration Depends libkf5waylandclient5 (>= 4:5.27.0+p16.10+git20161029.2052)
i A libkf5waylandclient5 Depends kwayland-data (= 4:5.38.0-0ubuntu1) 啊!这事儿可以理解。我安装Konsole是因为其他终端仿真器不支持CTL。
通过像一个持久化的幼儿一样一遍又一遍地询问aptitude why,可以了解为什么需要或已经安装了任何特定的包,例如:
$ aptitude why libwayland-egl1-mesa
i libwebkit2gtk-4.0-37 Depends libwayland-egl1-mesa (>= 10.0.2) | libwayland-egl1
$ aptitude why libwayland-cursor0
i libgtk-3-0 Depends libwayland-cursor0 (>= 1.9.91)
$ aptitude why libgtk-3-0
i mate-utils Depends libgtk-3-0 (>= 3.16.2)
$ aptitude why mate-utils
i ubuntu-mate-desktop Depends mate-utils模拟像libgtk-3-0这样的包的删除(注意不要实际删除它们.)揭示更多关于游戏中的依赖结构的信息。
我有这些包,因为其他包令人惊讶地依赖于它们。有些(比如kwayland-data )是我自己安装的一个非必需包的依赖项推荐的一个包的依赖项,可以安全地删除,但是其他的(比如libwayland-egl1-mesa )是我的系统所不可或缺的软件包的依赖项,删除它们将是灾难性的!使用APT的--simulate或-s标志和aptitude,我们可以安全地调查这些问题。
https://askubuntu.com/questions/1023676
复制相似问题