"La même question, ou presque, a été posée ici : Connaître la distribution Ubuntu serveur ou bureau
J'aimerais poster ma réponse ici aussi parce qu'elle contient quelques nouvelles indications sur la façon de vérifier si vous êtes sur une édition de bureau ou de serveur.
Comme indiqué dans les articles précédents, il n'est pas facile de déterminer si vous utilisez une édition de bureau ou une édition serveur, car tous les paquets peuvent être installés ou supprimés.
Si vous êtes dans un environnement cohérent et prévisible, il ne devrait pas être très difficile de déterminer s'il s'agit d'un ordinateur de bureau ou d'un serveur.
Je n'utilise que ubuntu-desktop (vanilla) ou ubuntu server. Pour moi, le dpkg -l ubuntu-desktop
c'est une méthode très fiable pour déterminer s'il s'agit d'un ordinateur de bureau ou d'un serveur.
Comme indiqué dans l'article en lien, il n'est pas facile de déterminer si vous utilisez une édition bureau ou serveur, car tous les paquets peuvent être installés ou supprimés.
Voici la fonction que j'utilise pour mes scripts. En gros, elle vérifie si xserver-common ou xwayland sont installés. Si l'un d'entre eux est installé, cela signifie qu'il s'agit d'un système de bureau.
#!/usr/bin/env bash
check_if_desktop (){
IS_DESKTOP="false"
displayManager=(
'xserver-common' # X Window System (X.Org) infrastructure
'xwayland' # Xwayland X server
)
for i in "${displayManager[@]}"; do
dpkg-query --show --showformat='${Status}\n' $i 2> /dev/null | grep "install ok installed" &> /dev/null
if [[ $? -eq 0 ]]; then
IS_DESKTOP="true"
fi
done
}
Voici quelques autres points à vérifier :
Par défaut, l'édition serveur utilise l'interface classique /etc/network/interfaces
L'édition de bureau fonctionne avec Network Manager, il faut donc vérifier si Network Manager est installé.
dpkg -l network-manager
Ou lancez la commande nmcli (l'outil en ligne de commande pour NM) si vous obtenez un message comme celui-ci :
The program 'nmcli' is currently not installed. You can install it by typing:
sudo apt-get install network-manager
il est fort probable que vous soyez sur une édition serveur. Mais n'oubliez pas que vous pouvez modifier un serveur pour qu'il fonctionne avec NM.
Utilisez la commande suivante pour déterminer si les composants du bureau sont installés
dpkg -l ubuntu-desktop
Sur un serveur, vous obtiendrez un message comme celui-ci :
dpkg-query: no packages found matching ubuntu-desktop
Sur un ordinateur de bureau, vous obtiendrez un message vous indiquant la version installée.
Vérifiez la présence d'autres paquets que l'on trouve généralement sur un ordinateur de bureau :
dpkg -l unity (gnome, mate and so one) # Desktop environments
dpkg -l compiz (E17, fluxbox and so one) # Window manager
dpkg -l xorg # X window server
ou de l'utiliser :
dpkg-query --show --showformat='${Status}\n' *packagename* 2> /dev/null | grep "install ok installed"
vérifier si le serveur X est en cours d'exécution :
ps -e | grep X
sudo netstat -lp | grep -i Xorg
Vérifier les services qui ne sont disponibles que sur un ordinateur de bureau :
La manière de vérifier les services dépend de votre version d'Ubuntu :
sudo service *servicename* status # on SysVinit
sudo status *servicename* # on Upstart
systemctl status *servicename*.service # on systemd
Les services typiques sont les suivants :
- lightdm
- x11-common
- gnome-Shell
et d'autres qui sont associés à certains produits dérivés
Mon application dépend de la distribution du serveur
Même s'il n'est pas logique d'exécuter une application serveur sur une édition de bureau, il ne devrait pas y avoir de problème pour installer toutes les dépendances de votre application sur l'édition de bureau et la faire fonctionner.
Pouvez-vous expliquer pourquoi cela dépend de la version du serveur ?