Come verificare se Ubuntu Desktop o Server è installato?


34

Ho un hosting condiviso. Ho accesso alla shell. Il sistema operativo è Ubuntu e voglio verificare se si tratta della versione del server o della versione desktop.

Quando eseguo l'accesso tramite shell, vengono visualizzate le seguenti informazioni:

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

Risposte:


20

Questa risposta non è così netta come alcune persone stanno distinguendo. È possibile eseguire l' ubuntu-standardinstallazione di un pacchetto e utilizzarlo come server. Puoi usare ubuntu-minimalcome server. Puoi prenderlo ubuntu-desktope romperlo in modo che non usi X ... O addirittura lasci X lì per l'amministrazione (eww). Puoi cambiare i pacchetti del kernel da -server a -generic in -rt ecc. Puoi cambiare il motd o anche semplicemente aggiornarlo da una versione in cui il motd non è lungo quanto quello nuovo (nessuno dei miei server è mai uscito con tutto quel guff - probabilmente perché sono aggiornati da vecchi LTS).

Immagino che le domande che tutti noi dovremmo porre sono: Perché è importante? Cosa stai cercando di imparare? Che differenza fa per te?

Se stai cercando di eseguire qualcosa di grafico, controlla ciò di cui hai effettivamente bisogno (X, x11vnc, ecc.). Se stai cercando di verificare che non ci sia un'interfaccia grafica, fai lo stesso!


+1. Perchè importa? Bene, considera ksplice. Il desktop è gratuito, il server non è ...;)
0xC0000022L

1
Bene, questa è una domanda più specifica: cosa controlla ksplice per decidere se è possibile utilizzare la versione desktop gratuita. Immagino che controllino la build del kernel desktop vs server.
poolie,

1
Perchè importa? Non ho l'autorità per sostituire il sistema, quindi è necessario sbloccarlo, a partire dal sapere che cosa era originariamente. Cosa stai cercando di imparare? Solo ciò che è stato richiesto: è stata un'installazione server o desktop. Che differenza ti fa? Se si trattava di un'installazione server ed è pieno di elementi X, dovremmo licenziare il nostro personale IT, ecc.
Jan Kyu Peblik il

@JanKyuPeblik Se ti viene consegnato un sistema guasto e non è ovviamente un desktop, dovresti chiedere alla persona che segnala l'errore . Sul serio. I computer non sono auto. Non è un elenco di specifiche di valori operativi e tolleranze. È tutto configurabile. Il punto qui - applicato ai tuoi pensieri - è che la persona che gestisce il sistema avrebbe potuto facilmente prendere un server e configurarlo come desktop. Se lo trasformi in un server, hai fatto del male. La distinzione tecnica tra i due al momento dell'installazione non è rilevante per un problema. E quale distinzione c'era nel 2010 è ora notevolmente più snella.
Oli

Ne sono uscito solo "la storia è stupida".
Jan Kyu Peblik,

34
dpkg -l ubuntu-desktop 

ti dirà se sono installati i componenti desktop suggeriti.

uname -a

ti dirà se viene utilizzato il server o il kernel generico.

"Desktop o server" non è una cosa binaria: è possibile avere alcuni componenti desktop installati su una macchina originariamente installata come server, ecc.

Devi decidere quale pacchetto vuoi usare come distinzione chiave tra "server" o "desktop". Forse xserver-xorgè una buona scelta, anche se anche alcuni server lo avranno per le dipendenze dei pacchetti o per supportare i desktop remoti.


2
dpkg -i ubuntu-desktop non fa quello che descrivi per me.
8128

2
Scusa, volevo dire dpkg -l. (Aggiornato.)
poolie

2
È possibile avere un desktop perfettamente funzionante senza il pacchetto ubuntu-desktop. Questo è solo un metapacchetto per garantire che un certo set standard di applicazioni di supporto come pannelli di controllo, elementi specifici di Debian ecc. Sia installato insieme al desktop. Se rimuovi uno di questi, Ubuntu-Desktop sarà effettivamente "rimosso" ma avrai comunque un desktop. Sarebbe molto meglio invece verificare il pacchetto xserver-xorg-core. Sebbene l'esistenza di quel pacchetto non garantisca il suo utilizzo, non c'è motivo di installarlo su un computer non desktop.
thomasrutter,

Sì, il fatto che non ci sia una linea netta tra desktop e server è stato ampiamente discusso dalla maggior parte delle risposte, inclusa la mia. Ma ubuntu-desktopè un test ragionevole per sapere se hai un desktop Ubuntu. Se si installa dal CD desktop / ISO, si avrà questo pacchetto.
poolie

15

può essere verificato digitando cat /etc/motd. L'output sarà diverso sul server e diverso sull'edizione desktop.

Desktop:

Ubuntu 10.10

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

Server:

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  

Vale anche la pena ricordare che questo file è facilmente modificabile da sudo, cosa che viene fatta molto spesso, perché è il messaggio che l'utente vede quando accede tramite ssh.


2
Questo per lo più ti dice se landscape-clientè installato. Ciò può accadere sui server, ma in realtà non è essenzialmente connesso al fatto che tu stia utilizzando il sistema operativo del server o meno.
poolie

5

Questo potrebbe non essere il modo più veloce o più puro di dirlo, ma esegui:

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

Se il pacchetto di immagini linux attualmente installato contiene al suo interno la parola "server", allora stai eseguendo il server Ubuntu.

Ad esempio, l'attuale pacchetto del kernel più recente per il desktop Ubuntu 10.10:

linux-image-2.6.35-22-generic

E server:

linux-image-2.6.35-22-server

Per un pacchetto più generico che dovrebbe essere lo stesso tra diverse versioni di Ubuntu, linux-image-genericè il pacchetto predefinito per il desktop Ubuntu ed linux-image-serverè quello predefinito per l'edizione del server.


4
È possibile eseguire il kernel del server su un'installazione desktop così come è possibile eseguire il kernel del desktop su un server. Questa non è una risposta definitiva da nessuna parte.
Oli

@Oli: come hai già sottolineato, non sembra esserci una risposta definitiva;)
0xC0000022L

4

Non esiste una risposta chiaramente definita, semplicemente formulata per questa domanda.

È possibile caricare le funzionalità del desktop sul server e rimuoverle dal desktop. Il problema principale è quali pacchetti fanno parte della funzionalità del server e riceveranno il periodo aggiuntivo di supporto e aggiornamenti.

La risposta migliore (IMHO) è disponibile in una domanda di Launchpad (dal 2008):

qual è la differenza tra server e desktop edition?

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


Puoi riassumere qui il risultato della domanda del Launchpad?
Peter Mortensen,

2

È necessario ricordare che non esiste alcuna differenza fondamentale tra le edizioni Desktop e Server.

È molto probabile tuttavia che il tuo provider di hosting non abbia tutti i pezzi grafici, come GNOME in cima allo stack, perché non ce n'è bisogno. I pacchetti installati sono ciò che lo rende un server.

Potresti essere interessato allo ubuntu-maintenance-checkscript ( link ) che ti dice il ciclo di manutenzione di ogni pacchetto installato - quelli che hanno un periodo più lungo sono pacchetti server.


Apparentemente dalla 12.04 in poi tutti i pacchetti supportati ottengono la stessa durata del supporto senza discriminare tra server e desktop.
poolie

2

Sto eseguendo il rilevamento su una rete di grandi dimensioni e sto cercando di distinguere da LINUX installato come workstation rispetto a un server (perché li tratteremo in modo diverso).

Speravo in un attributo o file che avesse Ubuntu-Server invece di Ubuntu.

Trovo alcuni file interessanti in / var / log / installer:

media-info dice "Ubuntu-Server" per il server e solo "Ubuntu" per desktop. syslog mostra le stesse informazioni per il "cdrom"

Entrambi sono utili e posso usarli insieme alle informazioni sull'hardware. Questo dovrebbe dirti almeno quale versione è stata installata originariamente.


1

"Quasi" la stessa domanda è stata posta qui: Conosci Ubuntu Distribution server o desktop

Vorrei pubblicare la mia risposta anche qui perché ha alcuni nuovi suggerimenti su come verificare se si è su un'edizione desktop o server.

Come menzionato nei post precedenti, non è facile determinare se si utilizza un'edizione desktop o server poiché è possibile installare o rimuovere tutti i pacchetti.

Se ci si trova in un ambiente coerente e prevedibile, non dovrebbe essere molto difficile determinare se desktop o server.

Uso solo Ubuntu-Desktop (vanilla) o Ubuntu Server. Per me dpkg -l ubuntu-desktopè un metodo molto affidabile per determinare se è un desktop o un server.

Come menzionato nel post collegato, non è facile determinare se si utilizza un'edizione desktop o server perché tutti i pacchetti possono essere installati o rimossi.

Ecco la mia funzione che uso per i miei script. Fondamentalmente controlla se xserver-common o xwayland sono installati. Se uno di questi è installato, significa che è un 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
}

Ecco alcune altre cose da controllare:

Per impostazione predefinita, l'edizione server utilizza la versione classica /etc/network/interfaces, mentre l'edizione desktop funziona con Network Manager, quindi controlla se Network Manager è installato

dpkg -l network-manager

Oppure esegui il comando nmcli (lo strumento da riga di comando per NM) se ricevi un messaggio come questo:

The program 'nmcli' is currently not installed. You can install it by typing:
sudo apt-get install network-manager

la probabilità è alta di essere su un'edizione server. Ma tieni presente che puoi modificare un server per operare con NM.


Utilizzare il comando seguente per determinare se sono installati componenti desktop

dpkg -l ubuntu-desktop

Su un server riceverai un messaggio come questo:

dpkg-query: no packages found matching ubuntu-desktop

Su un desktop riceverai un messaggio che ti dice quale versione è installata


Controlla altri pacchetti che si trovano in genere su un desktop:

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

o utilizzare:

 dpkg-query --show --showformat='${Status}\n' *packagename* 2> /dev/null | grep "install ok installed"

controlla se il server X è in esecuzione:

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

Controlla i servizi disponibili solo su un desktop:

Dipende dalla tua versione di Ubuntu come controllare i servizi:

sudo service *servicename* status # on SysVinit 
sudo status *servicename* # on Upstart
systemctl status *servicename*.service # on systemd

i servizi tipici sono:

  • lightdm
  • x11-common
  • gnome-shell

e alcuni altri associati a determinati derivati


La mia applicazione dipende dalla distribuzione del server

Anche se non ha senso eseguire un'applicazione server su un'edizione desktop, non dovrebbero esserci problemi con l'installazione di tutte le dipendenze per l'applicazione sull'edizione desktop e farla funzionare.

Puoi approfondire questo perché dipende dalla distribuzione del server?


0

Nessuna delle soluzioni sopra ha funzionato molto bene per me. A volte un sistema non ha un motd, o forse l'amministratore lo ha cambiato, ecc. Non sono nemmeno sicuro del perché la risposta fornita sopra sia stata la risposta "corretta". Ecco cosa ho finito per usare.

#!/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

Usare -f con $ {Status} è buono e lo userò. Ma non usare bash con sintassi sh e funzioni inesistenti come 'err'.
Tomáš Nesrovnal,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.