У меня есть общий хостинг. У меня есть доступ к оболочке. Операционная система - 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
Этот ответ не такой резкий, как делают некоторые люди. Вы можете выполнить установку пакета ubuntu-standard
и использовать его в качестве сервера. Вы можете использовать ubuntu-minimal
в качестве сервера. Вы можете взять ubuntu-desktop
и сломать его, чтобы он не использовал X ... Или даже оставить X там для администрирования (eww). Вы можете изменить пакеты ядра с -server на -generic на -rt и т. Д. Вы можете изменить motd или даже просто обновить версию, в которой motd не так длинен, как новая (ни один из моих серверов никогда не выходил) со всей этой болтовней - вероятно, потому что они обновлены с более старых LTS).
Я думаю, что все мы должны задавать вопросы: Почему это важно? Чему ты пытаешься научиться? Какая разница для вас?
Если вы пытаетесь запустить что-то графическое, проверьте, что вам действительно нужно (X, x11vnc и т. Д.). Если вы пытаетесь проверить, что нет графического интерфейса, сделайте то же самое!
это можно проверить, набрав 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.
dpkg -l ubuntu-desktop
сообщит вам, установлены ли предлагаемые компоненты рабочего стола.
uname -a
сообщит вам, используется ли сервер или общее ядро.
«Рабочий стол или сервер» не является бинарным - можно установить некоторые компоненты рабочего стола на машину, изначально установленную в качестве сервера, и т. Д.
Вы должны решить, какой пакет вы хотите использовать в качестве ключевое различие между «сервером» или «настольным компьютером». Может быть, xserver-xorg
- хороший выбор, хотя даже некоторые серверы будут иметь это для зависимостей пакетов или для поддержки удаленных рабочих столов.
Это может быть не самым быстрым или чистым способом определения, но запустите:
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
по умолчанию для серверной версии.
Нет никакой ясно определен, просто сформулированный ответ для этого вопроса.
Возможно загрузить настольные функции в сервер и удалить их из рабочего стола. Основная проблема - то, какие пакеты являются частью функциональности сервера и получат дополнительный период поддержки и обновлений.
Лучший ответ (по моему скромному мнению), может быть найден в вопросе о Панели запуска (с 2008):
каково различие между сервером и настольным выпуском?
Вы должны помнить, что между выпусками Desktop и Server нет принципиальной разницы.
Вполне вероятно, однако, что у вашего хостинг-провайдера нет всех графических элементов, таких как GNOME, на вершине стека, потому что они не нужны. Установленные пакеты делают его сервером.
Возможно, вас заинтересует скрипт ubuntu-maintenance-check
( ссылка ), который сообщает вам цикл обслуживания каждого установленного пакета - те, которые имеют более длительный период, являются серверными пакетами.
Я запускаю обнаружение в большой сети и пытаюсь отличить его от LINUX, установленного как рабочая станция, по сравнению с сервером (потому что мы будем относиться к ним по-разному).
Я надеялся на атрибут или файл, в котором вместо Ubuntu был Ubuntu-Server.
Я нахожу некоторые интересные файлы в / var / log / installer:
media-info говорит «Ubuntu-Server» для сервера и просто «Ubuntu» для рабочего стола. syslog показывает ту же информацию для «cdrom»
Оба они полезны, и я могу использовать их вместе с информацией об оборудовании. Это должно сказать вам, по крайней мере, какая версия была установлена первоначально.
Ни одно из вышеперечисленных решений не помогло мне. Иногда в системе нет 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
Здесь «почти» задавался тот же вопрос: Знать сервер или дистрибутив 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
типичные сервисы:
Мое приложение зависит от распространения сервера
blockquote>Даже если запускать его бессмысленно серверное приложение в настольной версии, не должно быть никаких проблем с установкой всех зависимых добавьте приложение для настольной версии и сделайте так, чтобы оно работало.
Можете ли вы объяснить, почему это зависит от дистрибутива сервера?
Проверьте существующие каталоги в домашнем каталоге. В настольной версии вы можете увидеть такие папки, как «Музыка», «Загрузки», «Рабочий стол».