"Presque" la même question a été posée ici:
Connaître le serveur ou le bureau de distribution Ubuntu
Je voudrais également poster ma réponse ici, car elle contient quelques nouvelles astuces pour vérifier si vous êtes sur une édition de bureau ou de serveur.
Comme mentionné dans les articles précédents, 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.
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.
J'utilise uniquement ubuntu-desktop (vanilla) ou ubuntu server. Pour moi, 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 mentionné dans la publication liée, 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 ma fonction que j'utilise pour mes scripts. Fondamentalement, il vérifie si xserver-common ou xwayland sont installés. Si l'un d'eux est installé, cela signifie que 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 autres choses à vérifier:
Par défaut, l'édition serveur utilise la version 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 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
la probabilité est élevée que vous soyez sur une édition serveur. 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 obtiendrez un message comme celui-ci:
dpkg-query: no packages found matching ubuntu-desktop
Sur un bureau, vous recevrez un message vous indiquant quelle version est installée
Recherchez les autres packages qui se trouvent généralement sur un 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érifiez si le serveur X fonctionne:
ps -e | grep X
sudo netstat -lp | grep -i Xorg
Recherchez les services uniquement disponibles sur un ordinateur de bureau:
Cela dépend de votre version d'Ubuntu comment vérifier les services:
sudo service *servicename* status # on SysVinit
sudo status *servicename* # on Upstart
systemctl status *servicename*.service # on systemd
les services typiques sont:
- lightdm
- x11-commun
- gnome-shell
et quelques autres associés à certains dérivés
Mon application dépend de la distribution du serveur
Même si cela n'a aucun sens d'exécuter une application serveur sur une édition de bureau, il ne devrait y avoir aucun problème à 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 distribution du serveur?