¿Cómo verificar si Ubuntu Desktop o Server está instalado?

34

Tengo un hosting compartido. Tengo acceso a shell. El sistema operativo es Ubuntu, y quiero verificar si es la versión del servidor o la versión de escritorio.

Cuando inicio sesión a través de Shell, muestra la siguiente información:

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
fuente

Respuestas:

20

Esta respuesta no es tan corta y seca como algunas personas están haciendo. Puede ubuntu-standardinstalar un paquete y usarlo como servidor. Puedes usarlo ubuntu-minimalcomo servidor. Puede tomarlo ubuntu-desktopy romperlo para que no use X ... O incluso dejar X allí para la administración (eww). Puede cambiar los paquetes del kernel de -server a -generic a -rt, etc. Puede cambiar el motd o incluso simplemente actualizar desde una versión donde el motd no es tan larga como la nueva (ninguno de mis servidores ha salido nunca) con todo ese error, probablemente porque se actualizaron de LTS anteriores).

Creo que las preguntas que todos deberíamos hacernos son: ¿Por qué es importante? ¿Qué intentas aprender? ¿Qué diferencia te hace a ti?

Si está intentando ejecutar algo gráfico, verifique lo que realmente necesita (X, x11vnc, etc.). Si está intentando comprobar que no hay una interfaz gráfica, ¡haga lo mismo!

Oli
fuente
+1. ¿Por qué es importante? Bueno, considera ksplice. El escritorio es gratuito, el servidor no es ...;)
0xC0000022L
1
Bueno, esa es una pregunta más específica: ¿qué comprueba ksplice para decidir si puede usar la versión de escritorio gratuita? Supongo que verifican la compilación del kernel de escritorio vs servidor.
Poolie
1
¿Por qué eso importa? No tengo autoridad para reemplazar el sistema, así que necesito desbloquearlo, comenzando por saber qué era originalmente. ¿Qué intentas aprender? Solo lo que se solicitó: fue un servidor o una instalación de escritorio. ¿Qué diferencia te hace? Si se trata de una instalación de servidor y está llena de cosas X, deberíamos despedir a nuestro personal de TI, etc.
Jan Kyu Peblik
@ JanKyuPeblik Si se le entrega un sistema dañado y obviamente no es un escritorio, debe preguntarle a la persona que informa la falla . Seriamente. Las computadoras no son autos. No es una lista de especificaciones de valores operativos y tolerancias. Todo es configurable. El punto aquí, aplicado a sus pensamientos, es que la persona que entrega el sistema podría fácilmente haber tomado un servidor y configurarlo para que sea un escritorio. Si lo vuelves a convertir en un servidor, has hecho daño. La distinción técnica entre los dos en el momento de la instalación no es relevante para un problema. Y qué distinción hubo en 2010 ahora es considerablemente más leve.
Oli
Todo lo que saqué de eso fue "la historia es estúpida".
Jan Kyu Peblik
34
dpkg -l ubuntu-desktop 

le dirá si los componentes de escritorio sugeridos están instalados.

uname -a

le dirá si se está utilizando el servidor o el núcleo genérico.

"Escritorio o servidor" no es algo binario: es posible tener algunos componentes de escritorio instalados en una máquina instalada originalmente como servidor, etc.

Debe decidir qué paquete desea utilizar como distinción clave entre "servidor" o "escritorio". Quizás xserver-xorgsea ​​una buena opción, aunque incluso algunos servidores lo tendrán para dependencias de paquetes o para soportar escritorios remotos.

billar
fuente
2
dpkg -i ubuntu-desktop no hace lo que me describes.
8128
2
Lo siento, quise decir dpkg -l. (Actualizado.)
poolie
2
Es posible tener un escritorio que funcione perfectamente sin el paquete ubuntu-desktop. Eso es solo un metapaquete para garantizar que se instale un cierto conjunto estándar de aplicaciones de soporte, como paneles de control, elementos específicos de Debian, etc. junto con su escritorio. Si elimina cualquiera de estos, ubuntu-desktop será efectivamente "eliminado" también, pero aún tendrá un escritorio. Sería mucho mejor buscar el paquete xserver-xorg-core en su lugar. Aunque, la existencia de ese paquete no garantiza que se esté utilizando, no hay una buena razón para tenerlo instalado en una máquina que no sea de escritorio.
thomasrutter
Sí, el hecho de que no haya una línea nítida entre el escritorio y el servidor ha sido ampliamente discutido por la mayoría de las respuestas, incluida la mía. Pero ubuntu-desktopes una prueba razonable para saber si tiene un escritorio Ubuntu. Si instala desde el CD / ISO de escritorio, tendrá este paquete.
Poolie
15

se puede verificar escribiendo cat /etc/motd. El resultado será diferente en el servidor y diferente en la edición de escritorio.

Escritorio:

Ubuntu 10.10

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

Servidor:

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  

También vale la pena mencionar que este archivo es fácilmente editable por sudo, lo que se hace con mucha frecuencia, porque es el mensaje que el usuario ve cuando inicia sesión a través de ssh.

Pawełkowy
fuente
2
Esto le dice principalmente si landscape-clientestá instalado. Puede suceder que eso sea cierto en los servidores, pero en realidad no está esencialmente conectado a si está utilizando el sistema operativo del servidor o no.
poolie
5

Puede que esta no sea la forma más rápida o más pura de decirlo, pero ejecute:

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

Si el paquete linux-image instalado actualmente contiene la palabra "servidor", entonces está ejecutando el servidor Ubuntu.

Por ejemplo, el último paquete de kernel actual para el escritorio Ubuntu 10.10:

linux-image-2.6.35-22-generic

Y servidor:

linux-image-2.6.35-22-server

Para un paquete más genérico que debería ser el mismo en diferentes versiones de Ubuntu, linux-image-generices el paquete predeterminado para el escritorio de Ubuntu y linux-image-serveres el predeterminado para la edición del servidor.

ayan4m1
fuente
44
Puede ejecutar el núcleo del servidor en una instalación de escritorio al igual que puede ejecutar el núcleo del escritorio en un servidor. Esta no es una respuesta definitiva de ninguna manera.
Oli
@Oli: como ya señaló, parece que no hay una respuesta definitiva;)
0xC0000022L
4

No hay una respuesta clara y simple para esta pregunta.

Es posible cargar las funciones del escritorio en el servidor y eliminarlas del escritorio. El problema raíz es qué paquetes son parte de la funcionalidad del servidor y obtendrán un período adicional de soporte y actualizaciones.

La mejor respuesta (en mi humilde opinión) se puede encontrar en una pregunta de Launchpad (de 2008):

¿Cuál es la diferencia entre el servidor y la edición de escritorio?

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

david6
fuente
¿Puedes resumir el resultado de la pregunta de Launchpad aquí?
Peter Mortensen
2

Debe recordar que no hay una diferencia fundamental entre las ediciones Desktop y Server.

Sin embargo, es muy probable que su proveedor de alojamiento no tenga todas las piezas gráficas, como GNOME en la parte superior de la pila, porque no las necesita. Los paquetes instalados es lo que lo hace un servidor.

Puede que le interese el ubuntu-maintenance-checkscript ( enlace ) que le indica el ciclo de mantenimiento de cada paquete instalado; los que tienen un período más largo son paquetes de servidor.

8128
fuente
Aparentemente, a partir del 12.04 en adelante, todos los paquetes compatibles obtienen la misma vida útil de soporte sin discriminar entre servidor y escritorio.
Poolie
2

Estoy ejecutando el descubrimiento en una red grande y estoy tratando de distinguirme de LINUX instalado como una estación de trabajo versus un servidor (porque los trataremos de manera diferente).

Esperaba el atributo o archivo que tenía Ubuntu-Server en lugar de Ubuntu.

Encuentro algunos archivos interesantes en / var / log / installer:

media-info dice "Ubuntu-Server" para el servidor y solo "Ubuntu" para escritorio. syslog muestra la misma información para el "cdrom"

Ambos son útiles y puedo usarlos junto con información de hardware. Esto debería decirle al menos qué versión se instaló originalmente.

Sean Perdew
fuente
1

"Casi" se ha hecho la misma pregunta aquí: Conozca el servidor de distribución de Ubuntu o el escritorio

Me gustaría publicar mi respuesta aquí también porque tiene algunos consejos nuevos sobre cómo verificar si estás en una edición de escritorio o servidor.

Como se mencionó en publicaciones anteriores, no es fácil determinar si usa una edición de escritorio o servidor porque todos los paquetes pueden instalarse o eliminarse.

Si se encuentra en un entorno consistente y predecible, no debería ser muy difícil determinar si el escritorio o el servidor.

Solo uso ubuntu-desktop (vanilla) o ubuntu server. Para mí dpkg -l ubuntu-desktop, es un método muy confiable para determinar si es un escritorio o un servidor.

Como se menciona en la publicación vinculada, no es fácil determinar si usa una edición de escritorio o servidor porque todos los paquetes pueden instalarse o eliminarse.

Aquí está mi función que uso para mis scripts. Básicamente verifica si xserver-common o xwayland están instalados. Si uno de ellos está instalado, significa que es un sistema de escritorio.

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

Aquí hay algunas otras cosas para verificar:

Por defecto, la edición del servidor usa el clásico /etc/network/interfaces, mientras que la edición de escritorio funciona con Network Manager, así que verifique si Network Manager está instalado

dpkg -l network-manager

O ejecute el comando nmcli (la herramienta de línea de comando para NM) si recibe un mensaje como este:

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

la probabilidad de que esté en una edición de servidor es alta. Pero tenga en cuenta que puede modificar un servidor para que funcione con NM.


Use el siguiente comando para determinar si los componentes de escritorio están instalados

dpkg -l ubuntu-desktop

En un servidor, recibirá un mensaje como este:

dpkg-query: no packages found matching ubuntu-desktop

En un escritorio, recibirá un mensaje que le indica qué versión está instalada


Busque otros paquetes que normalmente se encuentran en un escritorio:

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

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

compruebe si el servidor X se está ejecutando:

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

Verifique los servicios que solo están disponibles en una computadora de escritorio:

Depende de su versión de Ubuntu cómo verificar los servicios:

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

Los servicios típicos son:

  • lightdm
  • x11-común
  • gnome-shell

y algunos otros que están asociados con ciertos derivados


Mi aplicación depende de la distribución del servidor.

Incluso si no tiene sentido ejecutar una aplicación de servidor en una edición de escritorio, no debería haber ningún problema con la instalación de todas las dependencias para su aplicación en la edición de escritorio y hacer que funcione.

¿Puedes explicar esto por qué depende de la distribución del servidor?

lince
fuente
0

Ninguna de las soluciones anteriores funcionó muy bien para mí. A veces, un sistema no tiene un motd, o tal vez el administrador lo cambió, etc. Ni siquiera estoy seguro de por qué la respuesta dada anteriormente fue la respuesta "correcta". Esto es lo que terminé usando.

#!/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
fuente
Usar -f con $ {Status} es bueno y lo usaré. Pero no use bash con sintaxis sh y funciones inexistentes como 'err'.
Tomáš Nesrovnal