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?
server
bash
package-management
Alix Axel
la source
la source
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.lsb_release
n'est tout simplement pas assez fiable.( apt-get -qq -y remove --purge "^$halBox_package*" )
fonctionner à la fois sur les versions serveur et bureau.Réponses:
Commander
Résultat:
Cela ne fonctionnera pas si quelqu'un installe le bureau sans utiliser ubuntu-desktop. Mais qui fait ça?
la source
$?
sera1
sidpkg -l
ne parvient pas à énumérer quoi que ce soit,0
sinon. Engrep desktop
ce qui concerne cela correspondra toujours, soit le paquet ou le message disant qu'il n'a pas été trouvé.dpkg
page 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( dpkg -s "ubuntu-desktop" && Ubuntu_Flavor="desktop" ) > /dev/null 2>&1
fonctionne très bien, merci!