了解 Ubuntu 发行版服务器或桌面版

了解 Ubuntu 发行版服务器或桌面版

我在谷歌搜索后提出问题,并尝试了多种解决方案,但需要一个具体的答案。

我已经使用 SSH 登录了另一台电脑,我需要知道操作系统发行版是服务器还是桌面。

我尝试了以下命令及其输出:

lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.5 LTS
Release:    12.04
Codename:   precise

第二命令

cat /proc/version

Linux version 3.5.0-61-generic (buildd@toyol) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #90-Ubuntu SMP Sun Apr 26 11:23:53 UTC 2015

与此完全不重复

如何检查 ubuntu 桌面版或服务器版是否已安装?

答案1

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

这是我用于脚本的函数。基本上,它会检查是否安装了 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,而桌面版本使用网络管理器运行,因此请检查是否安装了网络管理器

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

典型的服务有:

  • 光调制
  • x11-常见
  • gnome 外壳

还有一些与某些衍生品相关的


我的应用程序依赖于服务器分布

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

您能详细说明一下为什么它依赖于服务器发行版吗?

答案2

你应该尝试以下步骤 1:输入dpkg --list 此命令将显示所有已安装的软件包(会有很多)步骤 2:向上或向下滚动以查找任何 *-session 软件包,我相信它们是桌面的来源

祝你好运!

相关内容