Existe alguma maneira de distinguir entre o Ubuntu Server e o Ubuntu Desktop?
Eu tenho um script Bash ( plugue sem vergonha ) que eu uso para configurar servidores Web leves, e notei que quando executo esse script no meu próprio computador, minha instalação do Ubuntu (Desktop) fica toda bagunçada - estou bem verifique se o culpado são as seguintes linhas 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
O que eu gostaria de fazer é detectar se o script está sendo executado em um sabor de servidor ou não, para que eu possa decidir se deseja remover esses pacotes ou não. Se não for possível diferenciar os sabores, você pode me dizer qual pacote é necessário para o Ubuntu Desktop funcionar corretamente?
server
bash
package-management
Alix Axel
fonte
fonte
DISTRIB_ID=Ubuntu DISTRIB_RELEASE=12.10 DISTRIB_CODENAME=quantal DISTRIB_DESCRIPTION="Ubuntu 12.10"
. Nada que eu possa usar para dizer se é Servidor ou Desktop.lsb_release
não é confiável o suficiente.( apt-get -qq -y remove --purge "^$halBox_package*" )
trabalhar nos sabores Servidor e Área de Trabalho.Respostas:
Comando
Resultado:
Não funcionará se alguém instalar a área de trabalho sem usar o ubuntu-desktop. Mas quem faz isso?
fonte
$?
será1
sedpkg -l
não conseguir listar nada,0
caso contrário. Em relação agrep desktop
ele sempre corresponderá, o pacote ou a mensagem dizendo que não foi encontrado.dpkg
página de manual, mas aparentemente isso parece funcionar. Se alguém instala a área de trabalho sem o ubuntu-desktop, deve ser experiente o suficiente para corrigir os problemas que meu script causará, então está tudo bem! : P( dpkg -s "ubuntu-desktop" && Ubuntu_Flavor="desktop" ) > /dev/null 2>&1
funciona muito bem, obrigado!