Administrator
Published on 2025-06-24 / 2 Visits
0
0

你装的Linux,到底装了什么?——系统组件选择与模块管理详解

适读对象:系统运维、DevOps 工程师、Linux 管理员、企业 IT 部署人员
涵盖核心:安装组件回溯 + 模块/软件组管理 + 模块启用/禁用策略 + 日志溯源


一、安装的时候,你到底装了什么?

在 Linux 安装过程中,尤其是基于 Red Hat 系(RHEL、CentOS、Rocky、AlmaLinux)的系统,安装界面中常出现这样的选项:

  • 最小化安装(Minimal Install)

  • 服务器(Server)

  • 工作站(Workstation)

  • 带 GUI 的服务器(Server with GUI)

  • 自定义组件选择(Custom)

背景原理:Kickstart 与软件组定义

这些“组件选择”本质上对应的是系统内定义好的 软件包组(Package Groups)模块(AppStream Modules),以实现功能预配置。例如:

安装类型

实际软件组名

最小化安装

Minimal Install

带 GUI 的服务器

Server with GUI

开发者工作站

Development Workstation

这些组在安装过程中通过 Kickstart 脚本调用并被记录在 /root/anaconda-ks.cfg 文件中。


二、如何确认你安装了哪些系统组件?

1. 查看安装时的自动化脚本(Kickstart)

cat /root/anaconda-ks.cfg

输出中通常包含如下字段:

%packages
@^server-product-environment
@standard
chrony
kexec-tools
%end
  • @^server-product-environment:表示安装了“服务器产品环境”

  • @standard:标准基础组件

  • chronykexec-tools:表示手动勾选了这些包

📌 “@” 表示软件组;“@^” 表示环境组(环境 + 组件集合)


2. 查看当前已安装的软件包组

dnf group list installed

你将看到诸如:

Installed Environment Groups:
   Server with GUI
Installed Groups:
   Standard
   Core


3. 查看已启用的模块(AppStream Modules)

dnf module list --enabled

例如你看到:

nodejs   16 [e]   common [d]   Node.js is a JavaScript runtime
php      8.0 [e]  common [d]   PHP scripting language

表示你系统启用了 nodejs:16php:8.0 模块,后续 dnf install nodejs 会自动绑定该版本。


三、如何后期安装额外组件?

安装组件有三种思路,具体选择根据目标不同:


A. 安装软件组(如开发工具)

dnf group list        # 查看所有组
dnf groupinstall "Development Tools"

典型组名包括:

  • "Development Tools"

  • "Server Platform Development"

  • "Graphical Administration Tools"


B. 启用并安装模块(AppStream 模块)

模块是为了解决一个软件的多版本共存(如 Python、PHP、Node.js)。

dnf module list                   # 查看可用模块
dnf module enable php:8.2        # 启用模块
dnf install php                  # 安装绑定版本

可一步完成:

dnf module install php:8.2


C. 安装特定组件包

如果你知道具体包名,可直接安装:

dnf install cockpit
dnf install net-tools

四、如何卸载某个模块或组件?

A. 卸载模块包(仅删除文件)

dnf remove php

B. 禁用模块(避免下次自动选中)

dnf module disable php

📌 模块禁用不会卸载已安装包,但会阻止后续 dnf install php 自动选择该版本。

C. 重置模块状态

dnf module reset php

恢复为未启用状态,可重新选择版本。


五、实战建议与最佳实践

场景

建议操作

安装完系统后不确定装了什么

查看 /root/anaconda-ks.cfg

想补装图形界面

dnf groupinstall "Server with GUI"

想安装某版本 PHP 或 Node.js

使用 dnf module install 指定版本

升级模块版本

module resetmodule enable → 安装

模块冲突 / 安装失败

查看 dnf module listreset 状态


总结

功能

推荐命令

查看安装时选择的组件

cat /root/anaconda-ks.cfg

查看已安装软件组

dnf group list installed

安装模块/组件

dnf module install NAME:VERSION

卸载模块包

dnf remove NAME

禁用/重置模块

dnf module disable/reset NAME

安装 GUI/开发环境

dnf groupinstall "Server with GUI"


写在最后:别让“系统装完”成为你探索的终点

很多企业运维在系统装好之后便默认“万事大吉”,但真正的系统能力还藏在 modulegroup 和组件管理之中。
系统组件,就像 LEGO 积木,装对了才能搭出稳固、好用、可维护的系统结构。

系统是活的,组件是灵魂。



Comment