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