"Presque" la même question a été posée ici:
Connaître le serveur ou le bureau de distribution Ubuntu
Je voudrais poster ma réponse ici aussi car elle contient quelques nouvelles astuces pour vérifier si vous êtes sur une édition de bureau ou sur un serveur.
Comme mentionné dans de précédents articles, il est difficile de déterminer si vous utilisez une édition de bureau ou de serveur car tous les packages 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 poste de travail ou d'un serveur.
J'utilise uniquement ubuntu-desktop (vanilla) ou le serveur ubuntu. Pour moi, le dpkg -l ubuntu-desktop
est une méthode très fiable pour déterminer s’il s’agit d’un poste de travail ou d’un serveur.
Comme mentionné dans l'article lié, il n'est pas facile de déterminer si vous utilisez une édition de bureau ou de serveur car tous les packages peuvent être installés ou supprimés.
Voici la fonction que j'utilise pour mes scripts.
En gros, il vérifie si xserver-common ou xwayland sont installés. Si l’un d’eux est installé, c’est 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 points à vérifier:
Par défaut, l'édition du serveur utilise le classique /etc/network/interfaces
, tandis que l'édition de bureau fonctionne avec Network Manager. Vérifiez donc si Network Manager est installé
dpkg -l network-manager
Ou exécutez la commande nmcli (l'outil de ligne de commande pour NM)
si vous recevez un message comme celui-ci:
The program 'nmcli' is currently not installed. You can install it by typing:
sudo apt-get install network-manager
la probabilité que vous utilisiez une édition de serveur est élevée.
Mais gardez à l’esprit 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 recevrez un message comme celui-ci:
dpkg-query: no packages found matching ubuntu-desktop
Sur un bureau, vous recevrez un message vous indiquant la version installée
.
Recherchez les autres packages généralement présents sur le 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 utiliser:
dpkg-query --show --showformat='${Status}\n' *packagename* 2> /dev/null | grep "install ok installed"
vérifie si le serveur X est en cours d'exécution:
ps -e | grep X
sudo netstat -lp | grep -i Xorg
Recherchez des services uniquement disponibles sur un ordinateur de bureau:
La vérification des 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:
- lightdm
- x11-common
- gnome-shell
et quelques autres associés à certains dérivés
My application depends on server distribution
Même si cela n'a aucun sens d'exécuter une application serveur sur une édition de bureau, l'installation de toutes les dépendances de votre application sur l'édition de bureau ne devrait pas poser de problèmes et le faire fonctionner.
Pouvez-vous préciser pourquoi cela dépend de la distribution du serveur?