it-swarm.com.de

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

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 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
30
Naveed

Diese Antwort ist nicht so scharf und trocken, wie manche Leute es ausmachen. Sie können ein ubuntu-standard -Paket installieren und dieses als Server verwenden. Sie können ubuntu-minimal als Server verwenden. Sie können ubuntu-desktop nehmen und es 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 wie die neue ist (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 dich?

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!

19
Oli
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 ist xserver-xorg eine gute Wahl, obwohl selbst einige Server diese für Paketabhängigkeiten oder zur Unterstützung von Remote-Desktops haben.

33
poolie

sie können dies überprüfen, indem Sie cat /etc/motd eingeben. 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 häufig gemacht wird, da dies die Meldung ist, die der Benutzer sieht, wenn er sich über ssh anmeldet.

14
Pawełkowy

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 den Word- "Server" enthält, führen Sie den Ubuntu-Server aus.

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

Für ein allgemeineres Paket, das für verschiedene Versionen von Ubuntu gleich sein sollte, ist linux-image-generic das Standardpaket für den Ubuntu-Desktop und linux-image-server das Standardpaket für die Server-Edition.

5
ayan4m1

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 Aktualisierungszeiträume erhalten.

Die beste Antwort (IMHO) finden Sie in einer Launchpad-Frage (ab 2008):

Was ist der Unterschied zwischen Server und Desktop Edition?

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

4
david6

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 das ubuntu-maintenance-check -Skript ( link ), das den Wartungszyklus jedes installierten Pakets angibt. Bei den Paketen mit einem längeren Zeitraum handelt es sich um Serverpakete.

2
8128

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.

2
Sean Perdew

"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 (Vanilla) oder Ubuntu-Server. Für mich ist der dpkg -l ubuntu-desktop eine sehr zuverlässige Methode, um festzustellen, ob es sich um einen Desktop oder 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 klassischen /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
  • gnome-Shell

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?

1
caracal

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 war die "richtige" Antwort. 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
0
Clayton Dukes