¿Hay alguna manera de distinguir entre Ubuntu Server y Ubuntu Desktop?
Tengo una secuencia de comandos Bash ( conector descarado ) que utilizo para configurar servidores web ligeros, y me di cuenta de que cuando ejecuto esta secuencia de comandos en mi propia computadora, mi instalación de Ubuntu (escritorio) se estropea - estoy bastante Seguro que el culpable son las siguientes líneas de código:
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
Lo que me gustaría hacer es detectar si la secuencia de comandos se ejecuta en un servidor o no, para poder decidir si purgar esos paquetes o no. Si no es posible distinguir los sabores, ¿puede decirme qué paquete es necesario para que Ubuntu Desktop funcione correctamente?
server
bash
package-management
Alix Axel
fuente
fuente
DISTRIB_ID=Ubuntu DISTRIB_RELEASE=12.10 DISTRIB_CODENAME=quantal DISTRIB_DESCRIPTION="Ubuntu 12.10"
. Nada que pueda usar para saber si es Servidor o Escritorio.lsb_release
no es lo suficientemente confiable.( apt-get -qq -y remove --purge "^$halBox_package*" )
funcionar en los sabores de Servidor y Escritorio.Respuestas:
Mando
Resultado:
No funcionará si alguien instala el escritorio sin usar ubuntu-desktop. ¿Pero quién hace eso?
fuente
$?
será1
sidpkg -l
no se enumera nada, de lo0
contrario. En cuanto agrep desktop
que siempre coincidirá, ya sea el paquete o el mensaje que dice que no se ha encontrado.dpkg
página de manual, pero aparentemente esto parece funcionar. Si alguien instala el escritorio sin ubuntu-desktop, debe ser lo suficientemente inteligente como para solucionar los problemas que causará mi script, ¡así que todo está bien! : P( dpkg -s "ubuntu-desktop" && Ubuntu_Flavor="desktop" ) > /dev/null 2>&1
funciona muy bien, gracias!