Rocky Linux 9.4与centos7.9的命令区别?

Rocky Linux 9.4 与 CentOS 7.9 虽然都源自 Red Hat Enterprise Linux (RHEL) 体系,但由于底层架构、软件版本和系统初始化方式的巨大差异,两者在命令使用上存在显著区别。

核心差异概览:

  • 内核与基础工具:CentOS 7 基于较旧的内核(3.10)和 GNU Coreutils 2.x;Rocky 9 基于较新的内核(5.14+)和 Coreutils 8.x。
  • 包管理器:CentOS 7 使用 yum;Rocky 9 默认使用 dnf(虽然 yum 是软链接,但行为不同)。
  • 网络管理:CentOS 7 依赖 network-scriptsifconfig;Rocky 9 强制使用 NetworkManagernmcli/ip
  • 系统初始化:CentOS 7 使用 systemd(兼容 SysVinit);Rocky 9 完全基于 systemd 且移除了许多旧服务脚本。
  • 安全机制:Rocky 9 默认开启 SELinux 更严格的策略,且不再支持 Python 2。

以下是具体的命令对比和使用场景说明:

1. 软件包管理 (Package Management)

这是最直观的区别。虽然 Rocky 9 保留了 yum 命令作为 dnf 的别名,但在某些高级功能或错误处理上,dnf 的行为更为现代。

功能 CentOS 7.9 (yum) Rocky Linux 9.4 (dnf) 备注
安装软件 yum install nginx dnf install nginx 推荐直接使用 dnf
更新系统 yum update dnf upgrade upgradeupdate 更智能,能处理依赖冲突
清理缓存 yum clean all dnf clean all 行为一致
搜索软件 yum search nginx dnf search nginx 结果排序逻辑略有不同
事务模拟 无原生支持 dnf distro-sync --downloadonly dnf 支持更多预检操作
历史操作 yum history dnf history dnf 显示更详细的时间线和资源占用

注意:在 Rocky 9 中,虽然输入 yum 也能工作,但它实际上是调用 dnf。如果脚本中硬编码了特定的 yum 行为(如某些旧版插件),可能会遇到兼容性警告。

2. 网络配置 (Network Configuration)

这是迁移中最容易出问题的地方。CentOS 7 默认使用传统的 network-scripts 包,而 Rocky 9 默认已移除该包,强制使用 NetworkManager

功能 CentOS 7.9 Rocky Linux 9.4 替代方案/注意事项
查看 IP ifconfig eth0 ip addr show eth0 ifconfig 在 RHEL 9 中通常不可用,需用 ip
修改 IP 编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 使用 nmcli 必须使用 nmclinmtui
重启网络 service network restart systemctl restart NetworkManager network 服务已废弃
防火墙 iptables / firewall-cmd firewalld (默认) 语法基本一致,但 iptables 需手动安装 iptables-services
持久化规则 编辑 iptables 文件 firewall-cmd --permanent firewalld 是动态管理的

示例:设置静态 IP

  • CentOS 7: 编辑 /etc/sysconfig/network-scripts/ifcfg-ens33 然后重启 network 服务。
  • Rocky 9:
    nmcli con mod "System ens33" ipv4.addresses 192.168.1.10/24
    nmcli con mod "System ens33" ipv4.gateway 192.168.1.1
    nmcli con mod "System ens33" ipv4.dns "8.8.8.8"
    nmcli con mod "System ens33" ipv4.method manual
    nmcli con up "System ens33"

3. 系统服务管理 (System Services)

Rocky 9 更加严格地遵循 systemd 规范,移除了许多旧的 SysVinit 兼容脚本。

功能 CentOS 7.9 Rocky Linux 9.4 备注
启动服务 service httpd start systemctl start httpd service 命令在 RHEL 9 中可能缺失或仅做简单转发
开机自启 chkconfig httpd on systemctl enable httpd chkconfig 在 Rocky 9 中已被标记为过时,建议改用 systemctl
查看状态 service httpd status systemctl status httpd 输出格式完全不同
日志查看 tail -f /var/log/messages journalctl -f 推荐使用 journalctlmessages 日志可能不存在

4. 用户与权限管理

  • Sudo 配置:Rocky 9 默认使用 visudo 编辑 /etc/sudoers,且对 sudo 的日志记录更严格。
  • Python 环境
    • CentOS 7: 默认自带 Python 2.7 (python) 和 Python 3.6 (python3)。
    • Rocky 9: 彻底移除了 Python 2。默认只有 Python 3.9 (python3)。如果你运行旧脚本调用了 python 命令,会直接报错 command not found,必须显式指定 python3 或安装兼容层。

5. 其他关键差异点

  1. 文件系统与磁盘管理

    • CentOS 7 常用 fdisk + mkfs.ext4
    • Rocky 9 默认文件系统是 XFS,且强烈建议使用 lsblk, df -h, btrfs (可选) 等现代工具。LVM 命令 (lvcreate, vgextend) 基本通用,但部分输出字段顺序变了。
  2. SSH 安全

    • Rocky 9 默认 SSH 配置更严格,例如禁止 root 直接登录(PermitRootLogin no),且默认禁用弱加密算法。CentOS 7 的配置相对宽松。
  3. 时间同步

    • CentOS 7: 默认使用 chronyd (NTP 客户端)。
    • Rocky 9: 同样使用 chronyd,但配置文件路径和行为有细微调整,且更倾向于与 NTP 服务器保持严格同步。

总结与建议

如果您正在从 CentOS 7.9 迁移到 Rocky Linux 9.4,请注意以下几点:

  1. 脚本改造:检查所有 Shell 脚本,将 python 替换为 python3,将 yum 视为 dnf,将 ifconfig 替换为 ip addr,将 service 替换为 systemctl
  2. 网络配置:不要尝试复制 /etc/sysconfig/network-scripts/ 下的配置文件,必须在 Rocky 9 上使用 nmcli 重新配置网络。
  3. 防火墙:确认是否仍在使用 iptables 规则,如果有,需要将其转换为 firewalld 规则,或者安装 iptables-services 并切换到传统模式(不推荐)。
  4. 文档查阅:参考官方文档时,务必确认是针对 RHEL 8/9 系列的,因为 RHEL 7 的很多旧文档在 Rocky 9 上已失效。

总体而言,Rocky Linux 9.4 的命令体系更加现代化、标准化,虽然学习曲线稍陡,但长期维护性和安全性远高于 CentOS 7.9。

未经允许不得转载:CLOUD技术博 » Rocky Linux 9.4与centos7.9的命令区别?