Gibt es eine Möglichkeit, zwischen Ubuntu Server und Ubuntu Desktop zu unterscheiden?
Ich habe ein Bash-Skript ( shameless plug ), mit dem ich schlanke Webserver einrichte, und ich habe festgestellt, dass meine Ubuntu (Desktop) -Installation durcheinander gerät, wenn ich dieses Skript auf meinem eigenen Computer ausführe - ich bin hübsch Sicher, der Schuldige sind die folgenden Codezeilen:
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
Was ich tun möchte, ist zu erkennen, ob das Skript in einer Server-Variante ausgeführt wird oder nicht, damit ich entscheiden kann, ob diese Pakete gelöscht werden sollen oder nicht. Wenn es nicht möglich ist, die Geschmacksrichtungen zu unterscheiden, können Sie mir dann mitteilen, welches Paket für die ordnungsgemäße Funktion von Ubuntu Desktop erforderlich ist?
quelle
DISTRIB_ID=Ubuntu DISTRIB_RELEASE=12.10 DISTRIB_CODENAME=quantal DISTRIB_DESCRIPTION="Ubuntu 12.10"
. Nichts, woran ich erkennen kann, ob es sich um Server oder Desktop handelt.lsb_release
einfach nicht zuverlässig genug.( apt-get -qq -y remove --purge "^$halBox_package*" )
sowohl für Server- als auch für Desktop-Versionen funktioniert.Antworten:
Befehl
Ergebnis:
Es wird nicht funktionieren, wenn jemand den Desktop ohne Ubuntu-Desktop installiert. Aber wer macht das schon?
quelle
$?
wird es sein,1
wenndpkg -l
nichts aufgelistet wird ,0
ansonsten. Diesbezüglichgrep desktop
wird immer das Paket oder die Meldung angezeigt, dass es nicht gefunden wurde.dpkg
Manpage, aber anscheinend scheint das zu funktionieren. Wenn jemand Desktop ohne Ubuntu-Desktop installiert, sollte er geschickt genug sein, um die Probleme zu beheben, die mein Skript verursachen wird, also ist alles gut! : P( dpkg -s "ubuntu-desktop" && Ubuntu_Flavor="desktop" ) > /dev/null 2>&1
funktioniert super, danke!