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

Baz*_*... 2 server ssh .desktop

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

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

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

lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.5 LTS
Release:    12.04
Codename:   precise
Run Code Online (Sandbox Code Playgroud)

第二个命令

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

与此完全不重复

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

car*_*cal 5

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

这是我用于脚本的函数。基本上它会检查是否安装了 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-普通
  • 侏儒外壳

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


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

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

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