如何以编程方式确定系统是台式机还是服务器?

Ali*_*xel 12 server package-management bash

有没有办法区分 Ubuntu Server 和 Ubuntu Desktop?

我有一个用于设置轻量级 Web 服务器的 Bash 脚本(无耻插件),我注意到当我在自己的计算机上运行这个脚本时,我的 Ubuntu(桌面)安装变得一团糟 - 我很漂亮确定罪魁祸首是以下代码行:

echo -e "\e[1;32mDave, I'm removing the bloatware.\e[0m"

for halBox_package in apache2 bind9 nscd php portmap rsyslog samba sendmail; do
    if [[ -f /etc/init.d/$halBox_package ]]; then
        ( service $halBox_package stop ) > /dev/null
    fi

    ( apt-get -qq -y remove --purge "$halBox_package*" ) > /dev/null 2>&1
done
Run Code Online (Sandbox Code Playgroud)

我想做的是检测脚本是否以服务器风格运行,因此我可以决定是否清除这些包。如果无法区分口味,您能告诉我 Ubuntu 桌面需要哪个包才能正常工作吗?

Rin*_*ind 9

命令

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

结果:

所需=未知/安装/删除/清除/保留
| 状态=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ 名称 版本 架构描述
+++-==============-==============-============-====== ============================
ii ubuntu-desktop 1.287 i386 Ubuntu 桌面系统

 - 项目清单

警告

如果有人在不使用 ubuntu-desktop 的情况下安装桌面,它将无法工作。但这是谁做的?

文档

  • 在 12.04 之前,Ubuntu 服务器默认安装服务器优化的内核。从 12.04 开始,Ubuntu Desktop 和 Ubuntu Server 之间的内核没有区别,因为 linux-image-server 已合并到 linux-image-generic。