我有一个共享主机。我可以访问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是一个不错的选择,尽管即使是某些服务器也会有包依赖项或支持远程桌面。
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 登录时看到的消息。
这可能不是最快或最纯粹的判断方式,而是运行:
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,也是服务器版本的默认包。
我正在一个大型网络上运行发现,我试图区分作为工作站安装的 LINUX 和作为服务器安装的 LINUX(因为我们会以不同的方式对待它们)。
我希望有一个包含 Ubuntu-Server 而不是 Ubuntu 的属性或文件。
我确实在 /var/log/installer 中找到了一些有趣的文件:
media-info 表示服务器为“Ubuntu-Server”,桌面则为“Ubuntu”。syslog 显示“cdrom”的相同信息
这两者都很有帮助,我可以将它们与硬件信息结合使用。这至少应该告诉您最初安装的版本。
“几乎”在这里问了同样的问题: 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)
典型的服务是:
以及与某些衍生品相关的其他一些
我的应用程序取决于服务器分布
即使在桌面版上运行服务器应用程序没有任何意义,在桌面版上安装应用程序的所有依赖项并使其正常工作也不会有任何问题。
您能否详细说明为什么它取决于服务器发行版?
| 归档时间: |
|
| 查看次数: |
114408 次 |
| 最近记录: |