Como verificar se o Ubuntu Desktop ou Server está instalado?

29

Eu tenho uma hospedagem compartilhada. Eu tenho acesso ao shell. O sistema operacional é Ubuntu e quero verificar se é a versão do servidor ou a versão para desktop.

Quando eu faço login através do shell, ele mostra as seguintes informações:

Linux [server-name] 2.6.32-24-generic #39-Ubuntu SMP Wed Jul 28 06:07:29 UTC 2010 i686 GNU/Linux
Ubuntu 10.04.1 LTS
    
por Naveed 10.11.2010 / 21:45

9 respostas

18

Esta resposta não é tão cortada e seca como algumas pessoas estão se saindo. Você pode fazer uma instalação do pacote ubuntu-standard e usá-lo como um servidor. Você pode usar ubuntu-minimal como um servidor. Você pode pegar ubuntu-desktop e quebrá-lo para não usar X ... Ou até mesmo deixar X lá para administração (eww). Você pode alterar os pacotes do kernel de -server para -genérico para -rt etc. Você pode alterar o motd ou até mesmo apenas atualizar de uma versão em que o motd não é tão longo quanto o novo (nenhum dos meus servidores já saiu com todo aquele guff - provavelmente porque eles são atualizados de LTSes antigos).

Acho que as perguntas que todos devemos fazer são: Por que isso importa? O que você está tentando aprender? Que diferença faz para você?

Se você está tentando executar algo gráfico, verifique o que você realmente precisa (X, x11vnc, etc). Se você está tentando verificar se não há uma interface gráfica, faça o mesmo!

    
por Oli 10.11.2010 / 23:19
30
dpkg -l ubuntu-desktop 

informará se os componentes sugeridos da área de trabalho estão instalados.

uname -a

dirá se o servidor ou o kernel genérico está sendo usado.

"Área de trabalho ou servidor" não é uma coisa binária - é possível ter alguns componentes da área de trabalho instalados em uma máquina originalmente instalada como um servidor, etc.

Você precisa decidir qual pacote deseja usar como a principal distinção entre "servidor" ou "área de trabalho". Talvez xserver-xorg seja uma boa escolha, embora até alguns servidores tenham isso para dependências de pacotes ou para suportar desktops remotos.

    
por poolie 10.11.2010 / 21:54
12

pode ser verificado digitando cat /etc/motd . A saída será diferente no servidor e diferente na edição para desktop.

Área de trabalho:

Ubuntu 10.10

Welcome to Ubuntu!
 * Documentation:  https://help.ubuntu.com/

Servidor:

Ubuntu 10.10

Welcome to Ubuntu!
 * Documentation:  https://help.ubuntu.com/

  System information as of Wed Nov 10 20:54:11 UTC 2010

  System load:  0.07               Processes:           78
  Usage of /:   30.4% of 14.76GB   Users logged in:     1
  Memory usage: 38%                IP address for eth0: XXXXXXXX
  Swap usage:   0%

  Graph this data and manage this system at https://landscape.canonical.com/
---------------------------------------------------------------------
At the moment, only the core of the system is installed. To tune the 
system to your needs, you can choose to install one or more          
predefined collections of software by running the following          
command:                                                             

   sudo tasksel --section server  

Também vale a pena mencionar que este arquivo é facilmente editável pelo sudo, o que é feito com muita frequência, porque é a mensagem que o usuário vê quando ele faz o login via ssh.

    
por Paweł Karpiński 10.11.2010 / 23:00
4

Essa pode não ser a maneira mais rápida ou mais fácil de saber, mas execute:

dpkg --get-selections | grep linux-image | grep -v deinstall

Se o pacote linux-image atualmente instalado contiver a palavra "server", você estará executando o servidor Ubuntu.

Por exemplo, o último pacote atual do kernel para a área de trabalho do Ubuntu 10.10:

linux-image-2.6.35-22-generic

e servidor:

linux-image-2.6.35-22-server

Para um pacote mais genérico que deve ser o mesmo em diferentes versões do Ubuntu, linux-image-generic é o pacote padrão para o desktop Ubuntu e linux-image-server é o padrão para a edição do servidor.

    
por ayan4m1 10.11.2010 / 21:50
4

Não há uma resposta claramente definida e simples para essa pergunta.

É possível carregar os recursos da área de trabalho no servidor e removê-los da área de trabalho. O problema raiz é quais pacotes fazem parte da funcionalidade do servidor e receberão o período adicional de suporte e atualizações.

A melhor resposta (IMHO) pode ser encontrada em uma pergunta do Launchpad (de 2008):

qual é a diferença entre edição de servidor e desktop?

link

    
por david6 24.11.2011 / 08:46
2

Você deve lembrar que não há diferença fundamental entre as edições Desktop e Server.

No entanto, é muito provável que o seu provedor de hospedagem não tenha todas as partes gráficas, como o GNOME no topo da pilha, porque não há necessidade delas. Os pacotes instalados é o que faz dele um servidor.

Você pode estar interessado no script ubuntu-maintenance-check ( link ) que informa o ciclo de manutenção de cada pacote instalado - aqueles que têm um período mais longo são pacotes de servidor.

    
por 8128 10.11.2010 / 22:02
2

Estou executando a descoberta em uma rede grande e estou tentando diferenciar do LINUX instalado como uma estação de trabalho em vez de um servidor (porque os trataremos de maneira diferente).

Eu estava esperando pelo atributo ou arquivo que tinha Ubuntu-Server ao invés do Ubuntu.

Eu acho alguns arquivos interessantes em / var / log / installer:

media-info diz "Ubuntu-Server" para o servidor e apenas "Ubuntu" para desktop. syslog mostra a mesma informação para o "cdrom"

Ambos são úteis e eu posso usá-los em conjunto com informações de hardware. Isso deve informar, pelo menos, qual versão foi instalada originalmente.

    
por Sean Perdew 13.08.2014 / 20:20
1

"Quase" a mesma pergunta foi feita aqui: Conheça o servidor ou área de trabalho do Ubuntu Distribution

Eu gostaria de postar minha resposta aqui também, pois ela tem algumas dicas novas sobre como verificar se você está em uma edição para desktop ou servidor.

Como mencionado em postagens anteriores, não é fácil determinar se você usa uma edição de desktop ou servidor porque todos os pacotes podem ser instalados ou removidos.

Se você estiver em um ambiente consistente e previsível, não será muito difícil determinar se o desktop ou o servidor.

Eu uso apenas o ubuntu-desktop (vanilla) ou o servidor ubuntu. Para mim, o dpkg -l ubuntu-desktop é um método muito confiável para determinar se é um desktop ou servidor.

Como mencionado no post vinculado, não é fácil determinar se você usa uma edição de desktop ou servidor porque todos os pacotes podem ser instalados ou removidos.

Aqui está minha função que uso para meus scripts. Basicamente, verifica se xserver-common ou xwayland estão instalados. Se um deles estiver instalado, significa que é um sistema 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 para desktop 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 para 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 que você esteja em uma edição do servidor. Mas lembre-se, você pode modificar um servidor para operar com NM.

Use o seguinte comando 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 um desktop, 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á sendo executado:

ps -e | grep X
sudo netstat -lp | grep -i Xorg

Verifique se há 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 certos derivados

My application depends on server distribution

Mesmo que não faça qualquer sentido executar um aplicativo de servidor em uma edição de desktop, não deve haver problemas com a instalação de todas as dependências do seu aplicativo na edição de desktop e fazê-lo funcionar.

Você pode explicar por que isso depende da distribuição do servidor?

    
por caracal 19.04.2016 / 23:05
0

Nenhuma das soluções acima funcionou muito bem para mim. Às vezes um sistema não tem um motd, ou talvez o administrador o altere, etc. Eu nem tenho certeza porque a resposta dada acima foi a resposta "correta". Aqui está o que acabei usando.

#!/bin/bash
__check_desktop() {
  if [ '(dpkg-query -W -f='${Status}' ubuntu-desktop 2>/dev/null | grep -c "ok installed")' -eq 1 ]; then
    err "Ubuntu Server is required, but it appears that you are running Ubuntu Desktop"
    exit 1
  fi
}

# Now just call the function:
__check_desktop
    
por Clayton Dukes 01.02.2016 / 16:06
-1

Uso de amostra do script motd:

#!/bin/bash
if uname -r | grep -qs "\-server"; then
        echo "Server"
else
        echo "Desktop"
fi
    
por Hítalo Silva 17.03.2015 / 19:47

Tags