我如何以编程方式确定系统是桌面还是服务器?

我如何以编程方式确定系统是桌面还是服务器?

有什么方法可以区分 Ubuntu Server 和 Ubuntu Desktop?

我有一个 Bash 脚本(无耻的插件) 我用它来设置轻量级 Web 服务器,我注意到,当我在自己的计算机上运行此脚本时,我的 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

我想做的是检测脚本是否以服务器版本运行,这样我就可以决定是否清除这些包。如果无法区分这些版本,您能告诉我哪个包是 Ubuntu 桌面正常运行所必需的吗?

答案1

命令

dpkg -l ubuntu-desktop 

结果:

期望=未知/安装/移除/清除/保留
| 状态=未/安装/Conf-文件/未打包/halF-conf/半安装/trig-aWait/Trig-pend
|/ 错误?=(无)/需要重新安装(状态,错误:大写=坏)
||/ 名称 版本 架构 描述
+++-==============-=============-=============-====================================
ii ubuntu-desktop 1.287 i386 Ubuntu 桌面系统

 - 项目清单

警告

如果有人不使用 ubuntu-desktop 来安装桌面,它将无法工作。但是谁会这样做呢?

文档

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

相关内容