如何检查是否安装了 Ubuntu Desktop 或 Server?

Nav*_*eed 45 server

我有一个共享主机。我可以访问shell。操作系统是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
Run Code Online (Sandbox Code Playgroud)

poo*_*lie 47

dpkg -l ubuntu-desktop 
Run Code Online (Sandbox Code Playgroud)

会告诉您是否安装了建议的桌面组件。

uname -a
Run Code Online (Sandbox Code Playgroud)

会告诉您是否正在使用服务器或通用内核。

“桌面或服务器”不是二进制的东西 - 可以在最初安装为服务器的机器上安装一些桌面组件,等等。

您必须决定要使用哪个包作为“服务器”或“桌面”之间的关键区别。也许xserver-xorg是一个不错的选择,尽管即使是某些服务器也会有包依赖项或支持远程桌面。

  • `dpkg -i ubuntu-desktop ` 不符合你对我的描述。 (2认同)
  • 抱歉,我的意思是`dpkg -l`。(更新。) (2认同)
  • 如果没有 ubuntu-desktop 包,也可以拥有一个完美工作的桌面。这只是一个元包,用于确保特定标准的支持应用程序集(例如控制面板、Debian 特定的东西等)与您的桌面一起安装。如果您删除其中任何一个,那么 ubuntu-desktop 也将被有效地“删除”,但您仍然拥有桌面。最好检查 xserver-xorg-core 包。尽管该软件包的存在并不能保证它会被使用,但没有充分的理由将它安装在非台式机上。 (2认同)

Oli*_*Oli 23

这个答案并不像某些人所说的那样干脆。您可以进行ubuntu-standard软件包安装并将其用作服务器。您可以ubuntu-minimal用作服务器。你可以拿走ubuntu-desktop和打破它,这样它就不会使用 X ......或者甚至将 X 留在那里进行管理(eww)。您可以将内核包从 -server 更改为 -generic 到 -rt 等。您可以更改 motd,甚至只是从 motd 不像新版本一样长的版本升级(我的服务器都没有出来带着所有这些胡言乱语 - 可能是因为它们是从旧的 LTS 升级而来的)。

我想我们所有人都应该问的问题是:为什么重要?你想学什么?它对你有什么不同?

如果您尝试运行图形程序,请检查您实际需要的内容(X、x11vnc 等)。如果您要检查是否没有图形界面,请执行相同操作!


Pra*_*weł 17

可以通过键入来检查它cat /etc/motd。输出在服务器上会有所不同,而在桌面版上会有所不同。

桌面:

Ubuntu 10.10

Welcome to Ubuntu!
 * Documentation:  https://help.ubuntu.com/
Run Code Online (Sandbox Code Playgroud)

服务器:

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  
Run Code Online (Sandbox Code Playgroud)

还值得一提的是,这个文件很容易被 sudo 编辑,这很常见,因为这是用户通过 ssh 登录时看到的消息。

  • 我正在运行 `Ubuntu 20.04.3 LTS`, /etc/motd.d 是一个文件夹。我的机器上不存在`/etc/motd`...只是说 (5认同)
  • 这主要是告诉您是否安装了“landscape-client”。这在服务器上可能是正确的,但它实际上与您是否使用服务器操作系统无关。 (2认同)

aya*_*4m1 7

这可能不是最快或最纯粹的判断方式,而是运行:

dpkg --get-selections | grep linux-image | grep -v deinstall
Run Code Online (Sandbox Code Playgroud)

如果当前安装的 linux-image 包中包含“服务器”一词,那么您正在运行 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,也是服务器版本的默认包。

  • 您可以在桌面安装上运行服务器内核,就像在服务器上运行桌面内核一样。无论如何,这都不是一个明确的答案。 (4认同)

Sea*_*dew 5

我正在一个大型网络上运行发现,我试图区分作为工作站安装的 LINUX 和作为服务器安装的 LINUX(因为我们会以不同的方式对待它们)。

我希望有一个包含 Ubuntu-Server 而不是 Ubuntu 的属性或文件。

我确实在 /var/log/installer 中找到了一些有趣的文件:

media-info 表示服务器为“Ubuntu-Server”,桌面则为“Ubuntu”。syslog 显示“cdrom”的相同信息

这两者都很有帮助,我可以将它们与硬件信息结合使用。这至少应该告诉您最初安装的版本。


car*_*cal 5

“几乎”在这里问了同样的问题: Know Ubuntu Distribution server or desktop

我也想在这里发布我的答案,因为它有一些新的提示如何检查您是在桌面版还是服务器版上。

正如在之前的帖子中提到的,要确定您使用的是桌面版还是服务器版并不容易,因为所有软件包都可以安装或删除。

如果您处于一致且可预测的环境中,那么确定是台式机还是服务器应该不是很困难。

我只使用 ubuntu-desktop (vanilla) 或 ubuntu 服务器。对我来说,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
}
Run Code Online (Sandbox Code Playgroud)

以下是其他一些需要检查的事项:

默认情况下,服务器版使用的是经典版/etc/network/interfaces,而桌面版使用的是网络管理器,因此请检查是否安装了网络管理器

dpkg -l network-manager
Run Code Online (Sandbox Code Playgroud)

或者,如果您收到如下消息,请运行命令 nmcli(NM 的命令行工具):

The program 'nmcli' is currently not installed. You can install it by typing:
sudo apt-get install network-manager
Run Code Online (Sandbox Code Playgroud)

您使用的是服务器版本的可能性很高。但请记住,您可以修改服务器以与 NM 一起运行。


使用以下命令确定是否安装了桌面组件

dpkg -l ubuntu-desktop
Run Code Online (Sandbox Code Playgroud)

在服务器上,您将收到如下消息:

dpkg-query: no packages found matching ubuntu-desktop
Run Code Online (Sandbox Code Playgroud)

在台式机上,您将收到一条消息,告诉您安装的是哪个版本


检查通常在桌面上找到的其他软件包:

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
Run Code Online (Sandbox Code Playgroud)

或使用:

 dpkg-query --show --showformat='${Status}\n' *packagename* 2> /dev/null | grep "install ok installed"
Run Code Online (Sandbox Code Playgroud)

检查 X 服务器是否正在运行:

ps -e | grep X
sudo netstat -lp | grep -i Xorg
Run Code Online (Sandbox Code Playgroud)

检查仅在桌面上可用的服务:

如何检查服务取决于您的 Ubuntu 版本:

sudo service *servicename* status # on SysVinit 
sudo status *servicename* # on Upstart
systemctl status *servicename*.service # on systemd
Run Code Online (Sandbox Code Playgroud)

典型的服务是:

  • 轻量级
  • x11-普通
  • 侏儒外壳

以及与某些衍生品相关的其他一些


我的应用程序取决于服务器分布

即使在桌面版上运行服务器应用程序没有任何意义,在桌面版上安装应用程序的所有依赖项并使其正常工作也不会有任何问题。

您能否详细说明为什么它取决于服务器发行版?