web-dev-qa-db-fra.com

Comment puis-je détecter si une interface graphique est installée sur le serveur Ubuntu?

J'utilise Ubuntu Server 14.04 LTS. Comment savoir si une interface utilisateur graphique est installée?

6
GoingMyWay

Regardez le répertoire /usr/share/xsessions/ pour voir si des sessions X sont disponibles sur votre Ubuntu:

$ ls /usr/share/xsessions/
openbox.desktop

qui dit que j'ai "openbox" sur ma machine, cela peut être "Unity", "Gnome" ou autre chose pour vous. Si vous n'obtenez rien, rien n'a été installé.


Étape supplémentaire:

Vous pouvez exécuter quelque chose comme ceci sur ce fichier pour voir si son binaire existe vraiment sur votre machine et s'il ne s'agit pas d'un fichier restant:

file $(grep -Po "(?<=^Exec=).*" /usr/share/xsessions/openbox.desktop)
  • grep -Po "(?<=^Exec=).* renvoie quelque chose de similaire à: /usr/bin/openbox
  • file vérifiera si cela existe vraiment.
7
Ravexina

vous pouvez également utiliser le gestionnaire de packages pour rechercher les packages installés. Essayez de rechercher les gestionnaires de fenêtres principaux ou le package de serveur X actuel.

Pour voir si des packages KDE sont installés (kde-baseapps est les méta-packages du minimum absolu pour une installation de KDE, j’ai kde-full, qui est une méta pour installer tout ce qui est intéressant. Si kde-baseapps-bin n’est pas installé, vous ne le ferez pas. KDE n’importe quel niveau), utilisez dpkg -l kde*

apt-cache search unity montre que unity8 est le principal shell ici, il ne s'affiche pas lorsque j'exécute dpkg -l unity* car je ne l'ai pas installé.

apt-cache search gnome montre que gnome est le shell principal à cet endroit. dpkg -l gnome* montre que je ne l'ai pas non plus.

Pour une configuration plus basique, vous pouvez essayer de rechercher le package qui fournit directement le serveur X: dpkg -l xorg ou dpkg -l xserver-xorg ou dpkg -l xserver* en général (j'ai xorg installé).

Si /usr/bin/X existe, vous disposez d'un serveur X et pouvez exécuter des applications graphiques en local. Il existe de très petits gestionnaires de fenêtres (twm, tinywm et autres) qui ne font pas grand chose, mais qui sont pratiques si vous avez parfois besoin de fonctions d'interface graphique (si vous n'avez pas de gestionnaire de fenêtres, vous ne pouvez pas redimensionner/maximiser ou réduire sur X et la fenêtre sera toujours alignée sur le coin supérieur gauche de l’écran).

Généralement, vous démarrez une interface graphique (si ce n’est pas configuré en tant que démon) sous Linux, avec les commandes startx ou xstartup. Il y a des variantes kdeinit est celle dont je me souviens pour kde, vous pouvez les rechercher (probablement dans/usr/bin ou/usr/sbin ou utiliser whereis).

Cependant, n'oubliez pas que vous n'avez pas besoin d'exécuter les applications X localement, vous pouvez les exécuter sur le réseau, à partir d'un terminal X distant (j'utilise le serveur x de cygwin sous Windows pour cela). Par exemple, j'avais Thunderbird installé sur mon serveur Linux hébergé sur la batterie de serveurs, sans X, simplement pour pouvoir le lancer à distance, pour déplacer d’énormes quantités d’e-mails entre les dossiers, et seul le trafic nécessaire pour mettre à jour l’écran X nécessaire doit quitter le serveur. . J'ai depuis découvert mutt, mais cela peut être fait.

Modifier:

J'ajouterais que bien que la plupart des paquets contenant une application X nécessitent des paquets équivalant à une attente d'installation de X et d'un gestionnaire de fenêtres, ils ne sont pas essentiels. Par exemple, je supporte un certain nombre de serveurs Linux, sans aucune interface graphique, sur lesquels j'ai installé qgit. C'est un outil graphique pour revoir la hiérarchie. Je peux transférer ma session X sur les serveurs et exécuter l'application sur les serveurs. Elle s'affiche sur mon bureau. Cependant, comme indiqué, vous ne trouverez aucun des éléments ci-dessus installés sur les serveurs (pas de X, pas de gestionnaires de fenêtres). Donc, gardez à l'esprit que le fait de ne pas avoir de configuration de serveur X sur un hôte ne signifie pas qu'il ne peut pas exécuter une interface graphique (il devrait simplement être distant).

2
sibaz