web-dev-qa-db-fra.com

Pourquoi ai-je installé des packages Wayland alors que mon système n'utilise pas Wayland?

J'utilise Ubuntu MATE 17.10. Les notes de mise à jour n'ont jamais rien dit à propos de Wayland, et j'ai toujours supposé que ce système utilisait le serveur d'affichage Xorg.

Cependant, aujourd'hui, j'ai couru comme d'habitude

Sudo apt update && Sudo apt full-upgrade

et remarqué que la sortie incluait:

The following packages will be upgraded:
  libwayland-client0 libwayland-cursor0 libwayland-server0 [...]

J'ai pensé que c'est étrange. Est-ce que mon système utilise Wayland après tout?

Comme suggéré par Byte Commander dans le chat , je cherchai les processus en cours d'exécution (en utilisant pgrep Xorg et pstree), et trouvai Xorg mais pas Wayland. Je suis donc à peu près sûr que Wayland ne fonctionne pas. J'ai cherché des forfaits 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

Pourquoi ces paquets sont-ils liés à Wayland alors que je n’utilise pas Wayland?

3
Zanna

Merci à Byte Commander et Eliah Kagan faire des suggestions sur le chat J'ai pu comprendre que ces paquets étaient installés en tant que dépendances.

Comme suggéré j'ai simulé la suppression des packages liés à Wayland ... Lorsque j'ai essayé de prétendre supprimer tous les packages liés à Wayland ...

apt remove '.*wayland.*' -s

le résultat semblait apocalyptique, avec un terminal plein écran plein de paquets en cours de suppression, y compris tout le métapaquet ubuntu-mate-desktop et tous ses éléments complémentaires, le paquet xorg (oops!) et marco (MATE gestionnaire de fenêtres par défaut).

Mais simplement enlever kwayland-data semblait ne supprimer que quelques autres paquets mystérieux kwayland-integration et libkf5waylandclient5...

Donc, comme Eliah Kagan suggéré J'ai essayé de demander aptitude why J'ai eu ces paquets, par exemple

$ 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) 

Ahh! Ça a du sens. J'ai installé Konsole car d'autres émulateurs de terminal ne supporte pas CTL .

En demandant aptitude why encore et encore, comme un tout-petit persistant, il est possible de savoir pourquoi un paquet particulier est requis ou a été installé, par exemple:

$ 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

La simulation de la suppression de paquets tels que libgtk-3-0 (veillez à ne pas les supprimer réellement ...) en révèle plus sur les structures de dépendance en jeu.

Conclusion

J'ai ces paquets parce que d'autres paquets en dépendent étonnamment. Certains, tels que kwayland-data, installés en tant que dépendance d'une dépendance d'un paquet recommandé par une dépendance d'un paquet non essentiel que j'ai installé moi-même, peuvent être supprimés en toute sécurité, mais d'autres, tels que libwayland-egl1-mesa sont des dépendances de paquets faisant partie intégrante de mon système, et les supprimer serait désastreux! Avec les drapeaux --simulate ou -s et aptitude de l'APT, nous pouvons enquêter en toute sécurité sur ces questions.

3
Zanna