Как проверить, установлен ли Ubuntu Desktop или Server?

У меня есть общий хостинг. У меня есть доступ к оболочке. Операционная система - Ubuntu, и я хочу проверить, является ли это версией сервера или версией для ПК.

Когда я вхожу через shell, он показывает следующую информацию:

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
34
задан 6 July 2017 в 15:18

10 ответов

Этот ответ не такой резкий, как делают некоторые люди. Вы можете выполнить установку пакета ubuntu-standard и использовать его в качестве сервера. Вы можете использовать ubuntu-minimal в качестве сервера. Вы можете взять ubuntu-desktop и сломать его, чтобы он не использовал X ... Или даже оставить X там для администрирования (eww). Вы можете изменить пакеты ядра с -server на -generic на -rt и т. Д. Вы можете изменить motd или даже просто обновить версию, в которой motd не так длинен, как новая (ни один из моих серверов никогда не выходил) со всей этой болтовней - вероятно, потому что они обновлены с более старых LTS).

Я думаю, что все мы должны задавать вопросы: Почему это важно? Чему ты пытаешься научиться? Какая разница для вас?

Если вы пытаетесь запустить что-то графическое, проверьте, что вам действительно нужно (X, x11vnc и т. Д.). Если вы пытаетесь проверить, что нет графического интерфейса, сделайте то же самое!

0
ответ дан 6 July 2017 в 15:18

это можно проверить, набрав cat /etc/motd. Вывод будет отличаться на сервере и будет отличаться на настольном издании.

Рабочий стол:

Ubuntu 10.10

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

Сервер:

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  

Также стоит отметить, что этот файл легко редактируется с помощью sudo, что делается очень часто, потому что это сообщение, которое пользователь видит, когда он входит через ssh.

0
ответ дан 6 July 2017 в 15:18
dpkg -l ubuntu-desktop 

сообщит вам, установлены ли предлагаемые компоненты рабочего стола.

uname -a

сообщит вам, используется ли сервер или общее ядро.

«Рабочий стол или сервер» не является бинарным - можно установить некоторые компоненты рабочего стола на машину, изначально установленную в качестве сервера, и т. Д.

Вы должны решить, какой пакет вы хотите использовать в качестве ключевое различие между «сервером» или «настольным компьютером». Может быть, xserver-xorg - хороший выбор, хотя даже некоторые серверы будут иметь это для зависимостей пакетов или для поддержки удаленных рабочих столов.

0
ответ дан 6 July 2017 в 15:18

Это может быть не самым быстрым или чистым способом определения, но запустите:

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

Если установленный в данный момент пакет linux-image содержит слово «server», значит, вы работаете в Ubuntu сервер.

Например, текущий последний пакет ядра для рабочего стола Ubuntu 10.10:

linux-image-2.6.35-22-generic

И сервер:

linux-image-2.6.35-22-server

Для более общий пакет, который должен быть одинаковым в разных версиях Ubuntu, linux-image-generic является пакетом по умолчанию для рабочего стола Ubuntu и linux-image-server по умолчанию для серверной версии.

0
ответ дан 6 July 2017 в 15:18

Нет никакой ясно определен, просто сформулированный ответ для этого вопроса.

Возможно загрузить настольные функции в сервер и удалить их из рабочего стола. Основная проблема - то, какие пакеты являются частью функциональности сервера и получат дополнительный период поддержки и обновлений.

Лучший ответ (по моему скромному мнению), может быть найден в вопросе о Панели запуска (с 2008):

каково различие между сервером и настольным выпуском?

https://answers.launchpad.net/ubuntu / + вопрос/40114

4
ответ дан 6 July 2017 в 15:18

Вы должны помнить, что между выпусками Desktop и Server нет принципиальной разницы.

Вполне вероятно, однако, что у вашего хостинг-провайдера нет всех графических элементов, таких как GNOME, на вершине стека, потому что они не нужны. Установленные пакеты делают его сервером.

Возможно, вас заинтересует скрипт ubuntu-maintenance-check ( ссылка ), который сообщает вам цикл обслуживания каждого установленного пакета - те, которые имеют более длительный период, являются серверными пакетами.

0
ответ дан 6 July 2017 в 15:18

Я запускаю обнаружение в большой сети и пытаюсь отличить его от LINUX, установленного как рабочая станция, по сравнению с сервером (потому что мы будем относиться к ним по-разному).

Я надеялся на атрибут или файл, в котором вместо Ubuntu был Ubuntu-Server.

Я нахожу некоторые интересные файлы в / var / log / installer:

media-info говорит «Ubuntu-Server» для сервера и просто «Ubuntu» для рабочего стола. syslog показывает ту же информацию для «cdrom»

Оба они полезны, и я могу использовать их вместе с информацией об оборудовании. Это должно сказать вам, по крайней мере, какая версия была установлена ​​первоначально.

0
ответ дан 6 July 2017 в 15:18

Ни одно из вышеперечисленных решений не помогло мне. Иногда в системе нет motd, или, возможно, администратор изменил его и т. Д. Я даже не уверен , почему ответ, приведенный выше, был «правильным». Вот что я в итоге использовал.

#!/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
ответ дан 6 July 2017 в 15:18

Здесь «почти» задавался тот же вопрос: Знать сервер или дистрибутив Ubuntu Distribution

Я также хотел бы опубликовать здесь свой ответ, поскольку в нем есть несколько новых советов, как проверить, есть ли у вас настольная или серверная версия.

Как упоминалось в предыдущих статьях, нелегко определить, используете ли вы настольную или серверную версию, поскольку весь пакет можно установить или удалить.

Если вы находитесь в последовательной и предсказуемой среде, не должно быть очень сложно определить, является ли настольный компьютер или сервер.

Я использую только Ubuntu-Desktop (Vanilla) или Ubuntu Server. Для меня dpkg -l ubuntu-desktop это очень надежный способ определить, является ли это настольным компьютером или сервером.

Как упоминалось в связанном посте, нелегко определить, используете ли вы настольную или серверную версию, потому что все пакеты могут быть установлены или удалены.

Вот моя функция, которую я использую для своих сценариев. В основном он проверяет, установлены ли xserver-common или xwayland. Если один из них установлен, это означает, что это настольная система.

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

Вот еще несколько вещей, которые нужно проверить:

По умолчанию серверная версия использует классический /etc/network/interfaces, тогда как настольная версия работает с Network Manager, поэтому проверьте если установлен Network Manager

dpkg -l network-manager

Или запустите команду nmcli (инструмент командной строки для NM), если вы получите такое сообщение:

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

высока вероятность того, что вы находятся на серверной редакции. Но имейте в виду, что вы можете изменить сервер для работы с NM.


Используйте следующую команду, чтобы определить, установлены ли компоненты рабочего стола

dpkg -l ubuntu-desktop

На сервере вы получите следующее сообщение:

dpkg-query: no packages found matching ubuntu-desktop

На рабочем столе вы получит сообщение о том, какая версия установлена ​​


Проверьте другие пакеты, которые обычно находятся на рабочем столе:

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

или используйте:

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

проверить, работает ли X-сервер:

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

Проверить службы, доступные только на рабочем столе:

Как проверить версию Ubuntu, зависит от вашей версии сервисы:

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

типичные сервисы:

  • lightdm
  • x11-common
  • gnome-shell
[ 1135] и некоторые другие, связанные с определенными производными


Мое приложение зависит от распространения сервера

Даже если запускать его бессмысленно серверное приложение в настольной версии, не должно быть никаких проблем с установкой всех зависимых добавьте приложение для настольной версии и сделайте так, чтобы оно работало.

Можете ли вы объяснить, почему это зависит от дистрибутива сервера?

0
ответ дан 6 July 2017 в 15:18

Проверьте существующие каталоги в домашнем каталоге. В настольной версии вы можете увидеть такие папки, как «Музыка», «Загрузки», «Рабочий стол».

2
ответ дан 1 September 2020 в 22:02

Другие вопросы по тегам:

Похожие вопросы: