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


34

Eu tenho uma hospedagem compartilhada. Eu tenho acesso ao shell. O sistema operacional é o Ubuntu e quero verificar se é a versão do servidor ou da área de trabalho.

Quando eu faço logon no 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

Respostas:


20

Esta resposta não é tão cortada e seca como algumas pessoas estão dando uns amassos. Você pode ubuntu-standardinstalar um pacote e usá-lo como servidor. Você pode usar ubuntu-minimalcomo um servidor. Você pode pegá ubuntu-desktop-lo e quebrá-lo para que ele não use o X ... Ou até deixar o X lá para administração (eww). Você pode alterar os pacotes do kernel de -server para -generic para -rt etc. Você pode alterar o motd ou até mesmo atualizar de uma versão em que o motd não seja tão longo quanto o novo (nenhum dos meus servidores já saiu com toda essa bobagem - provavelmente porque eles foram atualizados de LTSes mais antigos).

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

Se você estiver 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!


+1. Por que isso importa? Bem, considere o ksplice. O ambiente de trabalho é gratuito, o servidor não é ...;)
0xC0000022L 8/08

11
Bem, essa é uma pergunta mais específica: o que o ksplice verifica para decidir se você pode usar a versão desktop gratuita. Eu acho que eles verificam a compilação do kernel do desktop versus servidor.
poolieby

11
Por que isso Importa? Não tenho autoridade para substituir o sistema, por isso preciso desclassificá-lo, começando por saber o que era originalmente. O que você está tentando aprender? Apenas o que foi solicitado: foi uma instalação de servidor ou desktop. Que diferença isso faz para você? Se fosse instalar um servidor e é cheio de coisas X, devemos disparar nossos TI pessoas, etc ..
Jan Kyu Peblik

@JanKyuPeblik Se você tiver um sistema com defeito e obviamente não for um desktop, pergunte à pessoa que está relatando a falha . A sério. Computadores não são carros. Não é uma lista específica de valores e tolerâncias operacionais. É tudo configurável. O ponto aqui - aplicado aos seus pensamentos - é que a pessoa que entregou o sistema poderia facilmente pegar um servidor e configurá-lo para ser um desktop. Se você transformá-lo novamente em um servidor, você causou danos. A distinção técnica entre os dois no momento da instalação não é relevante para um problema. E que distinção houve em 2010 é agora consideravelmente mais leve.
Oli

Tudo o que consegui foi "a história é estúpida".
Jan Kyu Peblik

34
dpkg -l ubuntu-desktop 

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

uname -a

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

"Desktop ou servidor" não é algo binário - é possível ter alguns componentes de desktop instalados em uma máquina originalmente instalada como servidor, etc.

Você precisa decidir qual pacote deseja usar como a distinção principal entre "servidor" ou "área de trabalho". Talvez xserver-xorgseja uma boa escolha, embora até alguns servidores o tenham para dependências de pacotes ou para oferecer suporte a áreas de trabalho remotas.


2
dpkg -i ubuntu-desktop não faz o que você descreve para mim.
8128

2
Desculpe, eu quis dizer dpkg -l. (Atualizado)
poolie

2
É possível ter uma área de trabalho perfeitamente funcionando sem o pacote ubuntu-desktop. Isso é apenas um metapacote para garantir que um certo conjunto padrão de aplicativos de suporte, como painéis de controle, itens específicos do Debian, etc, sejam instalados junto com a área de trabalho. Se você remover qualquer um desses, o ubuntu-desktop também será "removido" efetivamente, mas você ainda terá um desktop. Seria muito melhor verificar o pacote xserver-xorg-core. Embora a existência desse pacote não garanta a sua utilização, não há um bom motivo para instalá-lo em uma máquina que não seja de desktop.
thomasrutter

Sim, o fato de não haver uma linha precisa entre desktop e servidor foi amplamente discutido pela maioria das respostas, incluindo a minha. Mas ubuntu-desktopé um teste razoável para saber se você tem o desktop Ubuntu. Se você instalar a partir do CD / ISO da área de trabalho, terá este pacote.
poolieby

15

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 mencionar que esse arquivo é facilmente editável pelo sudo, o que é feito com muita frequência, porque é a mensagem que o usuário vê quando faz logon via ssh.


2
Isso diz principalmente se você landscape-clientestá instalado. Pode ser que isso aconteça nos servidores, mas não está realmente essencialmente conectado ao fato de você estar usando o SO do servidor ou não.
poolieby

5

Esta pode não ser a maneira mais rápida ou pura de saber, mas execute:

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

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

Por exemplo, o pacote atual mais recente do kernel para a área de trabalho 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 a área de trabalho Ubuntu e linux-image-servero padrão para a edição do servidor.


4
Você pode executar o kernel do servidor em uma instalação da área de trabalho, assim como o kernel da área de trabalho em um servidor. Esta não é uma resposta definitiva de forma alguma.
Oli

@Oli: como você já apontou, há não parece ser uma resposta definitiva;)
0xC0000022L

4

Não há uma resposta claramente definida e simplesmente redigida para esta pergunta.

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

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

qual é a diferença entre server e desktop edition?

https://answers.launchpad.net/ubuntu/+question/40114


Você pode resumir o resultado da pergunta do Launchpad aqui?
Peter Mortensen

2

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

No entanto, é altamente 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 são o que o torna um servidor.

Você pode estar interessado no ubuntu-maintenance-checkscript ( 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 servidores.


Aparentemente, a partir do 12.04, todos os pacotes suportados obtêm a mesma vida útil, sem discriminar entre servidor e desktop.
poolieby

2

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

Eu estava esperando o atributo ou arquivo que tinha o Ubuntu-Server em vez do Ubuntu.

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

media-info diz "Ubuntu-Server" para o servidor e apenas "Ubuntu" para desktop. O syslog mostra as mesmas informações para o "cdrom"

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


1

"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?


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 tenha alterado, etc. Não sei ao certo por que a resposta dada acima foi a resposta "correta". Aqui está o que eu 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

Usar -f com $ {Status} é bom e eu vou usá-lo. Mas não use bash com sintaxe sh e funções inexistentes, como 'err'.
Tomáš Nesrovnal
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.