Comment vérifier si Ubuntu Desktop ou Server est installé?

34

J'ai un hébergement partagé. J'ai accès au shell. Le système d'exploitation est Ubuntu, et je veux vérifier s'il s'agit de la version serveur ou de la version bureau.

Lorsque je me connecte via le shell, il affiche les informations suivantes:

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
Naveed
la source

Réponses:

20

Cette réponse n'est pas aussi simple que certaines personnes le pensent. Vous pouvez faire une ubuntu-standardinstallation de package et l'utiliser comme serveur. Vous pouvez utiliser ubuntu-minimalcomme serveur. Vous pouvez le prendre ubuntu-desktopet le casser pour qu'il n'utilise pas X ... Ou même laisser X là pour l'administration (eww). Vous pouvez changer les paquets du noyau de -server en -generic en -rt etc. Vous pouvez changer le motd ou même simplement mettre à niveau à partir d'une version où le motd n'est pas aussi long que le nouveau (aucun de mes serveurs n'est jamais sorti avec tout ce guff - probablement parce qu'ils sont mis à niveau à partir d'anciens LTS).

Je suppose que les questions que nous devrions tous poser sont les suivantes: pourquoi est-ce important? Qu'essayez-vous d'apprendre? Quelle différence cela fait-il pour vous?

Si vous essayez d'exécuter quelque chose de graphique, vérifiez ce dont vous avez réellement besoin (X, x11vnc, etc.). Si vous essayez de vérifier qu'il n'y a pas d'interface graphique, faites de même!

Oli
la source
+1. Pourquoi c'est important? Eh bien, considérez ksplice. Le bureau est gratuit, le serveur n'est pas ...;)
0xC0000022L
1
Eh bien, c'est une question plus spécifique: que vérifie ksplice pour décider si vous pouvez utiliser la version de bureau gratuite. Je suppose qu'ils vérifient la construction du noyau bureau vs serveur.
poolie
1
Pourquoi est-ce important? Je n'ai pas le pouvoir de remplacer le système, donc je dois le déclasser, en commençant par savoir ce qu'il était à l'origine. Qu'essayez-vous d'apprendre? Seulement ce qui était demandé: était-ce une installation sur un serveur ou un ordinateur de bureau. Quelle différence cela vous fait-il? Si c'était une installation de serveur et qu'il est plein de trucs X, nous devrions licencier nos informaticiens, etc.
Jan Kyu Peblik
@JanKyuPeblik Si un système défectueux vous est remis et qu'il ne s'agit évidemment pas d'un ordinateur de bureau, vous devez demander à la personne signalant la panne . Sérieusement. Les ordinateurs ne sont pas des voitures. Ce n'est pas une liste de spécifications de valeurs de fonctionnement et de tolérances. Tout est configurable. Le point ici - appliqué à vos pensées - est que la personne qui manipule le système aurait facilement pu prendre un serveur et le configurer comme un ordinateur de bureau. Si vous le reconvertissez en serveur, vous avez fait du mal. La distinction technique entre les deux au moment de l'installation n'est pas pertinente pour un problème. Et quelle distinction il y avait en 2010 est maintenant beaucoup plus léger.
Oli
Tout ce que j'ai pu en tirer, c'est "l'histoire est stupide".
Jan Kyu Peblik
34
dpkg -l ubuntu-desktop 

vous indiquera si les composants de bureau suggérés sont installés.

uname -a

vous indiquera si le serveur ou le noyau générique est utilisé.

"Bureau ou serveur" n'est pas une chose binaire - il est possible d'avoir certains composants de bureau installés sur une machine installée à l'origine en tant que serveur, etc.

Vous devez décider quel package vous souhaitez utiliser comme distinction clé entre «serveur» ou «bureau». C'est peut xserver-xorg- être un bon choix, même si certains serveurs en auront pour les dépendances de packages ou pour prendre en charge des bureaux distants.

poolie
la source
2
dpkg -i ubuntu-desktop ne fait pas ce que vous décrivez pour moi.
8128
2
Désolé, je voulais dire dpkg -l. (Mise à jour.)
Poolie
2
Il est possible d'avoir un bureau parfaitement fonctionnel sans le package ubuntu-desktop. C'est juste un méta-paquet pour assurer qu'un certain ensemble standard d'applications de support telles que les panneaux de contrôle, les choses spécifiques à Debian, etc. sont installés avec votre bureau. Si vous supprimez l'un de ces éléments, ubuntu-desktop sera également "supprimé", mais vous aurez toujours un bureau. Il serait préférable de vérifier le package xserver-xorg-core à la place. Bien que l'existence de ce package ne garantisse pas son utilisation, il n'y a aucune bonne raison de l'installer sur une machine non-desktop.
thomasrutter
Oui, le fait qu'il n'y ait pas de frontière nette entre le bureau et le serveur a été largement discuté par la plupart des réponses, y compris la mienne. Mais ubuntu-desktopc'est un test raisonnable pour savoir si vous avez un bureau Ubuntu. Si vous installez à partir du CD / ISO de bureau, vous aurez ce package.
poolie
15

il peut être vérifié en tapant cat /etc/motd. La sortie sera différente sur le serveur et différente sur l'édition de bureau.

Bureau:

Ubuntu 10.10

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

Serveur:

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  

Il convient également de mentionner que ce fichier est facilement modifiable par sudo, ce qui est fait très souvent, car c'est le message que l'utilisateur voit lorsqu'il se connecte via ssh.

Pawełkowy
la source
2
Cela vous indique principalement s'il landscape-clientest installé. Cela peut être vrai sur les serveurs, mais ce n'est pas vraiment essentiellement lié à l'utilisation du système d'exploitation du serveur ou non.
poolie
5

Ce n'est peut-être pas le moyen le plus rapide ou le plus pur de le dire, mais exécutez:

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

Si le paquet linux-image actuellement installé contient le mot "serveur", alors vous exécutez le serveur Ubuntu.

Par exemple, le dernier package de noyau actuel pour le bureau Ubuntu 10.10:

linux-image-2.6.35-22-generic

Et serveur:

linux-image-2.6.35-22-server

Pour un package plus générique qui devrait être le même sur différentes versions d'Ubuntu, il linux-image-generics'agit du package par défaut pour le bureau Ubuntu et linux-image-serverpar défaut pour l'édition du serveur.

ayan4m1
la source
4
Vous pouvez exécuter le noyau du serveur sur une installation de bureau comme vous pouvez exécuter le noyau du bureau sur un serveur. Ce n'est pas une réponse définitive par tous les tronçons.
Oli
@Oli: comme vous l'avez déjà souligné, il ne semble pas y avoir de réponse définitive;)
0xC0000022L
4

Il n'y a pas de réponse clairement définie et simplement formulée pour cette question.

Il est possible de charger les fonctionnalités du bureau sur le serveur et de les supprimer du bureau. Le problème racine est de savoir quels packages font partie des fonctionnalités du serveur et obtiendront une période supplémentaire de support et de mises à jour.

La meilleure réponse (à mon humble avis) peut être trouvée dans une question Launchpad (à partir de 2008):

quelle est la différence entre l'édition serveur et desktop?

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

david6
la source
Pouvez-vous résumer le résultat de la question du Launchpad ici?
Peter Mortensen
2

Vous devez vous rappeler qu'il n'y a pas de différence fondamentale entre les éditions Desktop et Server.

Il est cependant fort probable que votre hébergeur n'ait pas tous les éléments graphiques, comme GNOME en haut de la pile, car il n'y en a pas besoin. Les packages installés sont ce qui en fait un serveur.

Vous pourriez être intéressé par un ubuntu-maintenance-checkscript ( lien ) qui vous indique le cycle de maintenance de chaque package installé - ceux qui ont une période plus longue sont des packages serveur.

8128
la source
Apparemment, à partir de la version 12.04, tous les packages pris en charge bénéficient de la même durée de vie sans prendre en compte le serveur et le bureau.
poolie
2

J'exécute Discovery sur un grand réseau et j'essaie de faire la distinction entre LINUX installé en tant que station de travail et serveur (car nous les traiterons différemment).

J'espérais un attribut ou un fichier qui avait Ubuntu-Server au lieu d'Ubuntu.

Je trouve des fichiers intéressants dans / var / log / installer:

media-info dit "Ubuntu-Server" pour le serveur et juste "Ubuntu" pour le bureau. syslog affiche les mêmes informations pour le "cdrom"

Ces deux éléments sont utiles et je peux les utiliser conjointement avec des informations sur le matériel. Cela devrait vous indiquer au moins quelle version a été installée à l'origine.

Sean Perdew
la source
1

"Presque" la même question a été posée ici: Connaître le serveur ou le bureau de distribution Ubuntu

Je voudrais également poster ma réponse ici, car elle contient quelques nouvelles astuces pour vérifier si vous êtes sur une édition de bureau ou de serveur.

Comme mentionné dans les articles précédents, il n'est pas facile de déterminer si vous utilisez une édition de bureau ou de serveur car tous les packages peuvent être installés ou supprimés.

Si vous êtes dans un environnement cohérent et prévisible, il ne devrait pas être très difficile de déterminer s'il s'agit d'un ordinateur de bureau ou d'un serveur.

J'utilise uniquement ubuntu-desktop (vanilla) ou ubuntu server. Pour moi, dpkg -l ubuntu-desktopc'est une méthode très fiable pour déterminer s'il s'agit d'un ordinateur de bureau ou d'un serveur.

Comme mentionné dans la publication liée, il n'est pas facile de déterminer si vous utilisez une édition de bureau ou de serveur car tous les packages peuvent être installés ou supprimés.

Voici ma fonction que j'utilise pour mes scripts. Fondamentalement, il vérifie si xserver-common ou xwayland sont installés. Si l'un d'eux est installé, cela signifie que c'est un système de bureau.

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

Voici quelques autres choses à vérifier:

Par défaut, l'édition serveur utilise la version classique /etc/network/interfaces, tandis que l'édition de bureau fonctionne avec Network Manager, vérifiez donc si Network Manager est installé

dpkg -l network-manager

Ou exécutez la commande nmcli (l'outil de ligne de commande pour NM) si vous obtenez un message comme celui-ci:

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

la probabilité est élevée que vous soyez sur une édition serveur. Mais gardez à l'esprit que vous pouvez modifier un serveur pour qu'il fonctionne avec NM.


Utilisez la commande suivante pour déterminer si les composants du bureau sont installés

dpkg -l ubuntu-desktop

Sur un serveur, vous obtiendrez un message comme celui-ci:

dpkg-query: no packages found matching ubuntu-desktop

Sur un bureau, vous recevrez un message vous indiquant quelle version est installée


Recherchez les autres packages qui se trouvent généralement sur un bureau:

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 utiliser:

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

vérifiez si le serveur X fonctionne:

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

Recherchez les services uniquement disponibles sur un ordinateur de bureau:

Cela dépend de votre version d'Ubuntu comment vérifier les services:

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

les services typiques sont:

  • lightdm
  • x11-commun
  • gnome-shell

et quelques autres associés à certains dérivés


Mon application dépend de la distribution du serveur

Même si cela n'a aucun sens d'exécuter une application serveur sur une édition de bureau, il ne devrait y avoir aucun problème à installer toutes les dépendances de votre application sur l'édition de bureau et à la faire fonctionner.

Pouvez-vous expliquer pourquoi cela dépend de la distribution du serveur?

caracal
la source
0

Aucune des solutions ci-dessus n'a très bien fonctionné pour moi. Parfois, un système n'a pas de motd, ou peut-être que l'administrateur l'a changé, etc. Je ne sais même pas pourquoi la réponse donnée ci-dessus était la "bonne" réponse. Voici ce que j'ai fini par utiliser.

#!/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
Clayton Dukes
la source
Utiliser -f avec $ {Status} est bon et je vais l'utiliser. Mais n'utilisez pas bash avec la syntaxe sh et des fonctions inexistantes telles que «err».
Tomáš Nesrovnal