DNF/YUM 软件组是什么
软件组把一组相关包聚合到一个名字下,例如开发工具或桌面环境;用 group list 看清单、group install 一次装好,比逐个拼包名省事。编译源码的机器安装开发工具组是常规操作,但在最小化原则下,生产机不宜整套铺开。
基本信息
| 用途 | 按组安装常用软件集合 |
|---|---|
| 语法 | dnf group list / install / remove |
| 旧语法 | yum groupinstall、yum grouplist 仍可用 |
| 组内结构 | 区分必装包与可选包 |
典型使用场景
- 一次性装齐编译环境所需的工具链
- 新机器按角色成套安装软件
- 核对某个组到底包含哪些包
- 控制安装范围,只装必装项不含可选
- 卸载整套软件组做环境清理
- 迁移到 DNF 后沿用旧的组管理习惯
常用示例
常用示例
dnf group list # 列出各组与状态
sudo dnf group info 'Development Tools' | head -n 30 # 查看组内容
sudo dnf group install 'Development Tools' # 安装必装项
sudo dnf group install --with-optional 'Development Tools' # 含可选包
sudo yum groupinstall 'Development Tools' # 旧语法,仍可用
dnf history | head # 确认变更记录
sudo dnf group remove 'Development Tools' # 卸载整组用法对照
| 命令 | 作用 | 说明 |
|---|---|---|
| group list | 列出软件组 | 区分已安装与可用 |
| group info | 查看组内容 | 确认必装与可选包 |
| group install | 安装整组 | 默认只装必装项 |
| --with-optional | 包含可选包 | 安装量明显增加 |
| group remove | 卸载整组 | 注意共享依赖的处理 |
组名里带空格时必须加引号;不同发行版的组名并不通用,Ubuntu 系使用 tasksel 体系,脚本里不要硬编码组名。
卸载软件组会连带处理组内共享依赖,可能带走其它需要的东西:生产环境执行前先核对影响范围。
按最小化原则,生产机只应安装必要组件;开发工具组适合构建机与调试环境,不建议直接铺到线上。
组内包清单会随版本更新而变化:跨机器按组安装前先用 group info 对比具体包列表,可以避免环境之间出现意料之外的差异。
用 dnf history 能确认这次组安装实际装入了哪些包,卸载或排障时这份记录比组名更有参考价值。