Como posso determinar programaticamente se um sistema é um desktop ou um servidor?

12

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 eu executo este script no meu próprio computador, minha instalação do Ubuntu (Desktop) fica toda desarrumada - tenho certeza que 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 do Servidor ou não, para que eu possa decidir se limparei esses pacotes ou não. Se não é possível distinguir os sabores, você pode me dizer qual pacote é necessário para o Ubuntu Desktop funcionar corretamente?

    
por Alix Axel 14.04.2013 / 19:58

1 resposta

9

Comando

dpkg -l ubuntu-desktop 

Resultado:

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=================================
ii  ubuntu-desktop 1.287        i386         The Ubuntu desktop system

 - List item
  

Cave-at

Não funcionará se alguém instalar a área de trabalho sem usar o ubuntu-desktop. Mas quem faz isso?

  

Documentação

  • Antes de 12.04, o servidor Ubuntu instala um kernel otimizado para servidor por padrão. Desde 12.04, não há diferença no kernel entre o Ubuntu Desktop e o Ubuntu Server, já que o linux-image-server é mesclado no linux-image-generic.
por Rinzwind 14.04.2013 / 20:10