"Quase" a mesma pergunta foi feita aqui:
Conheça o servidor ou desktop Ubuntu Distribution
Gostaria de postar minha resposta aqui também, pois há algumas dicas novas de como verificar se você está em uma edição para desktop ou servidor.
Conforme mencionado nas postagens anteriores, não é fácil determinar se você usa uma edição para desktop ou servidor, pois todo o pacote pode ser instalado ou removido.
Se você estiver em um ambiente consistente e previsível, não deve ser muito difícil determinar se a área de trabalho ou o servidor.
Eu uso apenas o servidor ubuntu-desktop (vanilla) ou ubuntu. Para mim dpkg -l ubuntu-desktop
, é um método muito confiável para determinar se é um desktop ou servidor.
Conforme mencionado na postagem vinculada, não é fácil determinar se você usa uma edição para desktop ou servidor, porque todos os pacotes podem ser instalados ou removidos.
Aqui está a minha função que uso nos meus scripts. Basicamente, verifica se o xserver-common ou o xwayland estão instalados. Se um deles estiver instalado, significa que é um sistema de desktop.
#!/usr/bin/env bash
check_if_desktop (){
IS_DESKTOP="false"
displayManager=(
'xserver-common' # X Window System (X.Org) infrastructure
'xwayland' # Xwayland X server
)
for i in "${displayManager[@]}"; do
dpkg-query --show --showformat='${Status}\n' $i 2> /dev/null | grep "install ok installed" &> /dev/null
if [[ $? -eq 0 ]]; then
IS_DESKTOP="true"
fi
done
}
Aqui estão algumas outras coisas para verificar:
Por padrão, a edição do servidor usa o clássico /etc/network/interfaces
, enquanto a edição da área de trabalho opera com o Network Manager, portanto, verifique se o Network Manager está instalado
dpkg -l network-manager
Ou execute o comando nmcli (a ferramenta de linha de comando do NM) se você receber uma mensagem como esta:
The program 'nmcli' is currently not installed. You can install it by typing:
sudo apt-get install network-manager
a probabilidade é alta de você estar em uma edição de servidor. Mas lembre-se, você pode modificar um servidor para operar com o NM.
Use o comando a seguir para determinar se os componentes da área de trabalho estão instalados
dpkg -l ubuntu-desktop
Em um servidor, você receberá uma mensagem como esta:
dpkg-query: no packages found matching ubuntu-desktop
Em uma área de trabalho, você receberá uma mensagem informando qual versão está instalada
Verifique se há outros pacotes normalmente encontrados em uma área de trabalho:
dpkg -l unity (gnome, mate and so one) # Desktop environments
dpkg -l compiz (E17, fluxbox and so one) # Window manager
dpkg -l xorg # X window server
ou use:
dpkg-query --show --showformat='${Status}\n' *packagename* 2> /dev/null | grep "install ok installed"
verifique se o servidor X está em execução:
ps -e | grep X
sudo netstat -lp | grep -i Xorg
Verifique os serviços disponíveis apenas em uma área de trabalho:
Depende da sua versão do Ubuntu, como verificar os serviços:
sudo service *servicename* status # on SysVinit
sudo status *servicename* # on Upstart
systemctl status *servicename*.service # on systemd
serviços típicos são:
- lightdm
- x11-common
- gnome-shell
e alguns outros que estão associados a determinados derivativos
Meu aplicativo depende da distribuição do servidor
Mesmo que não faça sentido executar um aplicativo de servidor em uma edição para desktop, não deve haver nenhum problema com a instalação de todas as dependências do seu aplicativo na edição para desktop e fazê-lo funcionar.
Você pode explicar isso porque isso depende da distribuição do servidor?