Rocky Linux 9.4 与 CentOS 7.9 虽然都基于 Red Hat Enterprise Linux (RHEL) 生态,但由于底层架构、软件包管理器版本以及系统初始化方式的巨大差异,两者在命令使用上存在显著区别。
以下是核心差异的详细对比分析:
1. 软件包管理工具 (最核心的区别)
这是日常操作中最明显的变化。CentOS 7 使用 YUM (Yellowdog Updater, Modified),而 Rocky Linux 9 默认使用 DNF (Dandified YUM)。
- 语法差异:
- 安装/更新/删除:
- CentOS 7:
yum install <package> - Rocky 9:
dnf install <package>(虽然yum命令通常作为 DNF 的软链接存在,但推荐使用dnf)
- CentOS 7:
- 搜索:
- CentOS 7:
yum search keyword - Rocky 9:
dnf search keyword
- CentOS 7:
- 清理缓存:
- CentOS 7:
yum clean all - Rocky 9:
dnf clean all
- CentOS 7:
- 自动确认参数:
- CentOS 7:
yum -y install ... - Rocky 9:
dnf install ... -y(参数位置通常在命令后)
- CentOS 7:
- 依赖树查看:
- CentOS 7:
yum deplist - Rocky 9:
dnf repoquery --requires(旧版deplist在 DNF 中已废弃或行为不同)
- CentOS 7:
- 安装/更新/删除:
注意:在 Rocky 9 中,如果直接输入
yum,通常会提示你切换到dnf,因为 DNF 解决了 YUM 的性能和依赖解析问题。
2. 网络配置命令
两者的网络管理方式完全不同。CentOS 7 倾向于手动编辑配置文件或使用 ifconfig,而 Rocky 9 强制使用现代化的 NetworkManager 命令行工具。
| 功能 | CentOS 7.9 | Rocky Linux 9.4 |
|---|---|---|
| 查看 IP | ip addr 或 ifconfig |
ip addr (推荐)nmcli device show |
| 修改 IP/网关 | 编辑 /etc/sysconfig/network-scripts/ifcfg-eth0重启服务: systemctl restart network |
推荐: nmcli connection modify "名称" ipv4.addresses ...快捷: nmtui (文本界面)应用: nmcli connection up "名称" |
| 查看路由 | route -n |
ip route 或 nmcli connection show |
| DNS 配置 | 编辑 /etc/resolv.conf |
编辑 /etc/resolv.conf (仅临时)永久修改需通过 nmcli |
| 防火墙状态 | service iptables status |
firewall-cmd --state |
3. 系统初始化与服务管理
-
Init 系统:
- CentOS 7: 使用 Systemd (较早期版本),服务控制命令为
systemctl。 - Rocky 9: 同样使用 Systemd,但版本更新,且部分服务名称或依赖逻辑有变化。
- 通用命令:
systemctl start/stop/status/restart <service>在两者中基本一致。 - 自启设置:
systemctl enable/disable <service>在两者中一致。
- CentOS 7: 使用 Systemd (较早期版本),服务控制命令为
-
用户管理:
- 基础命令 (
useradd,passwd,usermod) 基本一致。 - Sudo 配置:Rocky 9 对 sudo 的安全策略更严格,且默认可能未开启某些组权限。
- 基础命令 (
4. 文件系统与存储
- 文件系统类型:
- CentOS 7: 默认通常是 XFS (v5.x) 或 ext4。
- Rocky 9: 默认是 XFS (v6.x),支持在线扩容和更高级的特性。
- LVM 管理:
- 命令 (
pvcreate,vgextend,lvextend) 基本一致,但 Rocky 9 对 LVM Thin Provisioning 的支持更好。
- 命令 (
- 挂载点:
- 两者都使用
mount和/etc/fstab,但 Rocky 9 更倾向于使用 UUID 进行标识,且对加密卷(LUKS)的处理流程更标准化。
- 两者都使用
5. 安全与审计 (SELinux & Firewall)
- SELinux:
- 两者默认都是 Enforcing 模式。
- 检查状态:
getenforce(通用)。 - 临时关闭:
setenforce 0(通用)。 - 区别:Rocky 9 的策略集更严格,某些在 CentOS 7 能运行的脚本可能在 Rocky 9 中被 SELinux 拦截,需要调整上下文 (
chcon) 或策略模块。
- 防火墙:
- CentOS 7: 默认使用 iptables (legacy) 或 firewalld (较新版本开始引入)。
- Rocky 9: 默认且强制使用 Firewalld。
- 命令差异:
- CentOS 7 (若用 iptables):
iptables -L -n - Rocky 9:
firewall-cmd --list-all(必须掌握此命令)
- CentOS 7 (若用 iptables):
6. 其他关键差异点
| 特性 | CentOS 7.9 | Rocky Linux 9.4 |
|---|---|---|
| 内核版本 | 3.10.x | 5.14.x (较新,硬件支持更好) |
| Python 版本 | Python 2.7 (默认), Python 3.6+ | Python 3.9 (默认), 无 Python 2 |
| SSH 协议 | SSH 1/2 (兼容旧客户端) | 仅支持 SSH 2 (丢弃了不安全的 SSH 1) |
| 容器技术 | Docker (原生) / Podman (需安装) | Podman (默认集成,无需守护进程) / Docker |
| 时间同步 | ntpdate / chronyd |
chronyd (默认且唯一推荐) |
迁移与适配建议
如果你正在从 CentOS 7 迁移到 Rocky 9,请注意以下几点:
- 脚本兼容性:任何包含
yum的 Shell 脚本都需要替换为dnf。同时,由于 Python 2 被移除,所有依赖 Python 2 的系统脚本将失效,必须重写为 Python 3。 - 网络配置自动化:不要尝试在 Rocky 9 上使用
ifcfg-eth0文件来配置网络,应学习使用nmcli或nmtui。 - 防火墙规则:CentOS 7 中开放的端口如果是通过
iptables规则添加的,在 Rocky 9 中不会生效,必须转换为firewall-cmd规则。 - 容器环境:如果之前习惯运行
docker run,在 Rocky 9 上建议直接使用podman run,或者安装 docker-ce 并启动 docker 服务(但不如 Podman 原生)。
总结:Rocky Linux 9.4 代表了 RHEL 9 的现代标准,命令风格更加统一(全 systemd + 全 dnf + 全 firewall-cmd),安全性更高,但对旧有习惯(特别是 Python 2 和传统网络脚本)的兼容性较差。迁移时需要重点适应 DNF 和 NMCLI 这两个新工具。
CLOUD云枢