Comment puis-je déterminer par programme si un système est un ordinateur de bureau ou un serveur?

12

Existe-t-il un moyen de distinguer Ubuntu Server et Ubuntu Desktop?

J'ai un script Bash ( plug sans vergogne ) que j'utilise pour configurer des serveurs Web légers, et j'ai remarqué que lorsque j'exécute ce script sur mon propre ordinateur, mon installation Ubuntu (Desktop) est tout foirée - je suis jolie assurez-vous que les coupables sont les lignes de code suivantes:

echo -e "\e[1;32mDave, I'm removing the bloatware.\e[0m"

for halBox_package in apache2 bind9 nscd php portmap rsyslog samba sendmail; do
    if [[ -f /etc/init.d/$halBox_package ]]; then
        ( service $halBox_package stop ) > /dev/null
    fi

    ( apt-get -qq -y remove --purge "$halBox_package*" ) > /dev/null 2>&1
done

Ce que je voudrais faire, c'est de détecter si le script est exécuté dans une version serveur ou non, afin que je puisse décider de purger ces packages ou non. S'il n'est pas possible de distinguer les saveurs, pouvez-vous me dire quel package est nécessaire pour que Ubuntu Desktop fonctionne correctement?

Alix Axel
la source
@Rinzwind: DISTRIB_ID=Ubuntu DISTRIB_RELEASE=12.10 DISTRIB_CODENAME=quantal DISTRIB_DESCRIPTION="Ubuntu 12.10". Rien que je puisse utiliser pour dire s'il s'agit du serveur ou du bureau.
Alix Axel
Fondamentalement, il y a peu de différence entre Ubuntu Server et Ubuntu. La différence est principalement le fait que la version Desktop est livrée avec une interface graphique, mais vous pouvez installer une interface graphique sur le serveur ubuntu CLI. En outre, vous pouvez installer des packages de serveur sur la version GUI d'Ubuntu Desktop. Je ne suis pas sûr qu'il existe un moyen sûr et net de déterminer le support d'installation du bureau par rapport au serveur.
Thomas Ward
@Rinzwind: Il s'agit d'une installation de serveur. J'ai également 3 autres VPS dans 2 fournisseurs différents avec des éditions serveur et aucun d'entre eux n'affiche la chaîne "serveur". Je suppose que la lecture lsb_releasen'est tout simplement pas assez fiable.
Alix Axel
@TheLordofTime: Oui, je sais qu'ils sont à peu près les mêmes. Mais je pensais qu'il y avait peut-être au moins un ensemble crucial qui ferait la différence entre les deux.
Alix Axel
À titre de note de suivi, le problème était l'expression régulière du package, la modifiant pour ( apt-get -qq -y remove --purge "^$halBox_package*" )fonctionner à la fois sur les versions serveur et bureau.
Alix Axel

Réponses:

9

Commander

dpkg -l ubuntu-desktop 

Résultat:

Souhaité = Inconnu / Installer / Supprimer / Purger / Maintenir
| Status = Not / Inst / Conf-files / Unpacked / halF-conf / Half-inst / trig-aWait / Trig-pend
| / Err? = (Aucun) / Reinst-required (Statut, Err: majuscule = mauvais)
|| / Nom Version Architecture Description
+++ - ============== - ============ - ============ - ===== ============================
ii ubuntu-desktop 1.287 i386 Le système de bureau Ubuntu

 - Élément de liste

Caveat

Cela ne fonctionnera pas si quelqu'un installe le bureau sans utiliser ubuntu-desktop. Mais qui fait ça?

Documentation

  • Avant le 12.04, le serveur Ubuntu installe par défaut un noyau optimisé pour le serveur. Depuis le 12.04, il n'y a aucune différence de noyau entre Ubuntu Desktop et Ubuntu Server puisque linux-image-server est fusionné en linux-image-generic.
Rinzwind
la source
BTW, $?sera 1si dpkg -lne parvient pas à énumérer quoi que ce soit, 0sinon. En grep desktopce qui concerne cela correspondra toujours, soit le paquet ou le message disant qu'il n'a pas été trouvé.
Alix Axel
1
Ok c'est mon dernier montage j'espère! Pouvez-vous également nettoyer les commentaires? >: D
Rinzwind
Je lis juste la dpkgpage de manuel, mais apparemment, cela semble fonctionner. Si quelqu'un installe un bureau sans ubuntu-desktop, il devrait être assez avisé pour résoudre les problèmes que mon script causera, donc tout va bien! : P
Alix Axel
( dpkg -s "ubuntu-desktop" && Ubuntu_Flavor="desktop" ) > /dev/null 2>&1fonctionne très bien, merci!
Alix Axel