Wie überprüfe ich, ob Ubuntu Desktop oder Server installiert ist?


34

Ich habe ein Shared Hosting. Ich habe Zugriff auf Shell. Das Betriebssystem ist Ubuntu, und ich möchte überprüfen, ob es sich um die Serverversion oder die Desktopversion handelt.

Wenn ich mich über die Shell anmelde, werden folgende Informationen angezeigt:

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

Antworten:


20

Diese Antwort ist nicht so scharf und trocken, wie manche Leute es ausmachen. Sie können eine ubuntu-standardPaketinstallation durchführen und diese als Server verwenden. Sie können ubuntu-minimalals Server verwenden. Sie können es nehmen ubuntu-desktopund brechen, damit es kein X verwendet ... oder X für die Verwaltung stehen lassen (eww). Sie können die Kernelpakete von -server zu -generic zu -rt usw. ändern. Sie können die motd ändern oder sogar nur ein Upgrade von einer Version durchführen, bei der die motd nicht so lang ist wie die neue (keiner meiner Server ist jemals herausgekommen) mit all dem Zeug - wahrscheinlich, weil sie von älteren LTSs aufgerüstet wurden).

Ich denke, die Fragen, die wir uns alle stellen sollten, sind: Warum ist das wichtig? Was versuchst du zu lernen? Welchen Unterschied macht es für Sie?

Wenn Sie versuchen, etwas Grafisches auszuführen, prüfen Sie, was Sie tatsächlich benötigen (X, x11vnc usw.). Wenn Sie überprüfen möchten, ob es keine grafische Oberfläche gibt, gehen Sie genauso vor!


+1. Warum es wichtig ist? Betrachten wir ksplice. Desktop ist kostenlos, Server nicht ...;)
0xC0000022L

1
Nun, das ist eine spezifischere Frage: Was prüft ksplice, um zu entscheiden, ob Sie die kostenlose Desktop-Version verwenden können? Ich würde vermuten, dass sie für den Desktop vs Server-Kernel Build überprüfen.
Poolie

1
Warum spielt es eine Rolle? Ich bin nicht befugt, das System zu ersetzen. Daher muss ich zunächst die Clusterprüfung aufheben, um zu wissen, was es ursprünglich war. Was versuchst du zu lernen? Es wurde nur gefragt, ob es sich um eine Server- oder Desktop-Installation handelt. Was macht es für dich aus? Wenn es sich um eine Serverinstallation handelt und es voll mit X-Dingen ist, sollten wir unsere IT-Mitarbeiter usw. entlassen.
Jan Kyu Peblik

@JanKyuPeblik Wenn Sie ein defektes System erhalten und es sich offensichtlich nicht um einen Desktop handelt, sollten Sie die Person fragen, die den Fehler meldet . Ernst. Computer sind keine Autos. Es ist keine Spezifikationsliste von Betriebswerten und Toleranzen. Es ist alles konfigurierbar. Der Punkt hier - bezogen auf Ihre Überlegungen - ist, dass die Person, die das System aushändigt, leicht einen Server hätte nehmen und ihn als Desktop konfigurieren können. Wenn Sie es wieder in einen Server verwandeln, haben Sie Schaden angerichtet. Die technische Unterscheidung zwischen den beiden bei der Installation ist für ein Problem nicht relevant. Und was für eine Unterscheidung es 2010 gab, ist jetzt erheblich schwächer.
Oli

Alles, was ich dabei herausbekam, war "Geschichte ist dumm".
Jan Kyu Peblik

34
dpkg -l ubuntu-desktop 

wird Ihnen mitteilen, ob die vorgeschlagenen Desktop-Komponenten installiert sind.

uname -a

zeigt an, ob der Server oder der generische Kernel verwendet wird.

"Desktop oder Server" ist keine Binärsache - es ist möglich, einige Desktop-Komponenten auf einem Computer zu installieren, der ursprünglich als Server installiert war, usw.

Sie müssen sich entscheiden, welches Paket Sie als Hauptunterscheidung zwischen "Server" oder "Desktop" verwenden möchten. Vielleicht xserver-xorgist es eine gute Wahl, auch wenn einige Server dies für Paketabhängigkeiten oder zur Unterstützung von Remote-Desktops haben.


2
dpkg -i ubuntu-desktop tut nicht das, was du für mich beschreibst.
8128

2
Entschuldigung, ich meinte dpkg -l. (Aktualisiert.)
Poolie

2
Es ist möglich, einen perfekt funktionierenden Desktop ohne das Ubuntu-Desktop-Paket zu haben. Dies ist nur ein Metapaket, um sicherzustellen, dass bestimmte Standardanwendungen wie Kontrollfelder, Debian-spezifische Dinge usw. zusammen mit Ihrem Desktop installiert werden. Wenn Sie eines dieser Programme entfernen, wird auch ubuntu-desktop effektiv "entfernt", aber Sie haben immer noch einen Desktop. Es wäre viel besser, stattdessen nach dem Paket xserver-xorg-core zu suchen. Obwohl die Existenz dieses Pakets nicht garantiert, dass es verwendet wird, gibt es keinen guten Grund, es auf einem Nicht-Desktop-Computer zu installieren.
Thomasrutter

Ja, die Tatsache, dass es keine scharfe Grenze zwischen Desktop und Server gibt, wurde von den meisten Antworten ausführlich diskutiert, auch von meinen. Ist ubuntu-desktopaber ein vernünftiger Test ob du Ubuntu Desktop hast. Wenn Sie von der Desktop-CD / ISO installieren, erhalten Sie dieses Paket.
Poolie

15

es kann durch Eingabe überprüft werden cat /etc/motd. Die Ausgabe erfolgt auf dem Server anders als auf der Desktop-Edition.

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  

Erwähnenswert ist auch, dass diese Datei von sudo leicht bearbeitet werden kann, was sehr oft gemacht wird, da dies die Meldung ist, die der Benutzer sieht, wenn er sich über ssh anmeldet.


2
Dies sagt Ihnen meistens, ob landscape-clientinstalliert ist. Dies mag auf Servern der Fall sein, hängt jedoch nicht unbedingt davon ab, ob Sie das Serverbetriebssystem verwenden oder nicht.
Poolie

5

Dies ist möglicherweise nicht die schnellste oder reinste Methode, dies zu erkennen. Führen Sie jedoch Folgendes aus:

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

Wenn das aktuell installierte Linux-Image-Paket das Wort "Server" enthält, wird der Ubuntu-Server ausgeführt.

Zum Beispiel das aktuellste Kernelpaket für Ubuntu 10.10 Desktop:

linux-image-2.6.35-22-generic

Und Server:

linux-image-2.6.35-22-server

Bei einem allgemeineren Paket, das für verschiedene Versionen von Ubuntu gleich sein sollte, linux-image-generichandelt es sich um das Standardpaket für den Ubuntu-Desktop und linux-image-serverum das Standardpaket für die Server-Edition.


4
Sie können den Server-Kernel auf einer Desktop-Installation genauso ausführen wie den Desktop-Kernel auf einem Server. Dies ist keine endgültige Antwort.
Oli

@Oli: wie du schon erwähnt hast, scheint es keine definitive Antwort zu geben;)
0xC0000022L

4

Es gibt keine klar definierte, einfach formulierte Antwort auf diese Frage.

Es ist möglich, die Desktop-Funktionen auf den Server zu laden und sie vom Desktop zu entfernen. Das Hauptproblem ist, welche Pakete Teil der Serverfunktionalität sind und welche zusätzlichen Support- und Aktualisierungszeiten erhalten.

Die beste Antwort (IMHO) findet sich in einer Launchpad-Frage (ab 2008):

Was ist der Unterschied zwischen Server und Desktop Edition?

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


Können Sie das Ergebnis der Launchpad-Frage hier zusammenfassen?
Peter Mortensen

2

Sie müssen sich daran erinnern, dass es keinen grundlegenden Unterschied zwischen der Desktop- und der Server-Edition gibt.

Es ist jedoch sehr wahrscheinlich, dass Ihr Hosting-Anbieter nicht alle grafischen Elemente wie GNOME oben im Stapel hat, da diese nicht benötigt werden. Die installierten Pakete machen es zu einem Server.

Möglicherweise interessieren Sie sich für ein ubuntu-maintenance-checkSkript ( Link ), das den Wartungszyklus jedes installierten Pakets angibt. Bei den Paketen mit einem längeren Zeitraum handelt es sich um Serverpakete.


Anscheinend erhalten alle unterstützten Pakete ab 12.04 die gleiche Lebensdauer, ohne zwischen Server und Desktop zu unterscheiden.
Poolie

2

Ich führe Discovery in einem großen Netzwerk aus und versuche, LINUX, das als Arbeitsstation installiert ist, von einem Server zu unterscheiden (weil wir sie anders behandeln).

Ich hatte auf ein Attribut oder eine Datei gehofft, die Ubuntu-Server anstelle von Ubuntu hatte.

Ich finde einige interessante Dateien in / var / log / installer:

Medieninfo sagt "Ubuntu-Server" für den Server und nur "Ubuntu" für den Desktop. Syslog zeigt die gleichen Informationen für die "CD-ROM"

Beide sind hilfreich und ich kann sie in Verbindung mit Hardwareinformationen verwenden. Dies sollte Ihnen zumindest mitteilen, welche Version ursprünglich installiert wurde.


1

"Fast" die gleiche Frage wurde hier gestellt: Kennen Ubuntu Distribution Server oder Desktop

Ich möchte meine Antwort auch hier posten, da es ein paar neue Hinweise gibt, wie Sie überprüfen können, ob Sie sich auf einem Desktop oder auf einem Server befinden.

Wie bereits in früheren Beiträgen erwähnt, ist es nicht einfach festzustellen, ob Sie eine Desktop- oder Server-Edition verwenden, da alle Pakete installiert oder entfernt werden können.

Wenn Sie sich in einer konsistenten und vorhersehbaren Umgebung befinden, sollte es nicht sehr schwierig sein, festzustellen, ob Desktop oder Server vorhanden sind.

Ich benutze nur Ubuntu-Desktop (Vanille) oder Ubuntu-Server. Für mich ist dpkg -l ubuntu-desktopdies eine sehr zuverlässige Methode, um festzustellen, ob es sich um einen Desktop oder einen Server handelt.

Wie in dem verlinkten Beitrag erwähnt, ist es nicht einfach festzustellen, ob Sie eine Desktop- oder Server-Edition verwenden, da alle Pakete installiert oder entfernt werden können.

Hier ist meine Funktion, die ich für meine Skripte benutze. Grundsätzlich wird geprüft, ob xserver-common oder xwayland installiert sind. Wenn einer von ihnen installiert ist, handelt es sich um ein Desktop-System.

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

Hier sind ein paar andere Dinge zu überprüfen:

Standardmäßig verwendet die Server-Edition den Klassiker /etc/network/interfaces, während die Desktop-Edition mit Network Manager ausgeführt wird. Überprüfen Sie daher, ob Network Manager installiert ist

dpkg -l network-manager

Oder führen Sie den Befehl nmcli (das Befehlszeilentool für NM) aus, wenn Sie eine Meldung wie die folgende erhalten:

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

Die Wahrscheinlichkeit ist hoch, dass Sie sich auf einer Server-Edition befinden. Beachten Sie jedoch, dass Sie einen Server für den Betrieb mit NM ändern können.


Verwenden Sie den folgenden Befehl, um festzustellen, ob Desktopkomponenten installiert sind

dpkg -l ubuntu-desktop

Auf einem Server erhalten Sie eine Nachricht wie diese:

dpkg-query: no packages found matching ubuntu-desktop

Auf einem Desktop erhalten Sie eine Meldung, die Sie darüber informiert, welche Version installiert ist


Suchen Sie nach anderen Paketen, die normalerweise auf einem Desktop gefunden werden:

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

oder benutze:

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

Überprüfen Sie, ob der X-Server ausgeführt wird:

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

Suchen Sie nach Diensten, die nur auf einem Desktop verfügbar sind:

Es hängt von Ihrer Ubuntu-Version ab, wie Sie die Dienste überprüfen:

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

Typische Leistungen sind:

  • lightdm
  • x11-common
  • Gnomschale

und einige andere, die mit bestimmten Derivaten verbunden sind


Meine Anwendung hängt von der Serververteilung ab

Auch wenn es keinen Sinn macht, eine Serveranwendung auf einer Desktop-Edition auszuführen, sollte es keine Probleme geben, alle Abhängigkeiten für Ihre Anwendung auf der Desktop-Edition zu installieren und funktionsfähig zu machen.

Können Sie näher erläutern, warum dies von der Serverdistribution abhängt?


0

Keine der oben genannten Lösungen hat für mich sehr gut funktioniert. Manchmal hat ein System keine Motd, oder der Administrator hat sie geändert usw. Ich bin mir nicht mal sicher, warum die oben angegebene Antwort die "richtige" Antwort war. Folgendes habe ich letztendlich verwendet.

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

-F mit $ {Status} zu benutzen ist gut und ich werde es benutzen. Verwenden Sie bash jedoch nicht mit sh-Syntax und nicht vorhandenen Funktionen wie 'err'.
Tomáš Nesrovnal
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.