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