ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Rocky Linux零基础入门:RHEL兼容发行版实战指南

Rocky Linux零基础入门:RHEL兼容发行版实战指南 1. 为什么Rocky Linux成了零基础学Linux的“新默认选项”最近三个月我带了17个完全没碰过命令行的新手做Linux实操训练从第一天装系统开始我就不再提CentOS这个词了。不是因为它不好而是因为——它已经没法作为教学基准了。你打开官网CentOS 7的更新支持早在2024年6月30日彻底终止CentOS 8早在2021年底就提前寿终正寝而CentOS Stream虽然还在维护但它本质是RHEL的上游开发分支稳定性、补丁节奏、软件包版本都和传统认知里的“企业级稳定发行版”脱节。新手刚敲完yum update发现系统里多了一堆没见过的内核模块或者systemctl status sshd返回一堆红色警告第一反应不是查日志而是截图发群里问“老师我是不是装错了”——这种挫败感不该是入门的第一课。Rocky Linux就是为解决这个问题生的。它由CentOS原核心成员Greg Kurtzer牵头创建目标非常直白100%二进制兼容RHELRed Hat Enterprise Linux也就是把RHEL源代码编译后确保每一个.rpm包、每一个库文件、每一个系统调用行为都和RHEL一模一样。这意味着什么意味着你在Rocky上学会的firewalld配置在银行核心系统、电信计费平台、政府政务云的真实RHEL环境里能直接复制粘贴生效意味着你用dnf module list postgresql查到的模块版本和客户生产环境里运维手册写的完全一致意味着你考RHCSA认证时所有实操题型的底层逻辑、命令反馈、错误提示都和Rocky终端里一模一样。这不是“类似”这是“镜像”。所以当标题里写“新版Linux零基础入门到高手Rocky版本-替换CentOS完结”它说的不是换个名字玩玩而是整个学习路径的底层地基重铸。过去教CentOS 7我们得花两节课讲“为什么这个命令在CentOS 8里失效了”现在教Rocky 9我们直接讲“这个命令在RHEL 9里怎么用它背后调用了哪些内核接口”。省下的时间全用来带学生拆解journalctl -u nginx --since 2 hours ago的日志过滤逻辑或者手写一个systemd服务单元文件来管理自定义Python脚本。这才是真正面向生产环境的入门。关键词里反复出现的“rocky linux设置静态ip”、“rocky 9 的minimal.iso下载云盘”、“rocky修改ip地址”背后其实是同一群人的真实痛点他们不是要一个玩具系统而是要一个能立刻放进VMware跑起来、配好网络就能连SSH、装好Python就能跑自动化脚本、搭好Nginx就能部署前端页面的“工作台”。Rocky Minimal ISO只有1.2GB左右装完基础系统只占2.3GB磁盘内存占用压到480MB比CentOS 7 Minimal还轻量。它不塞浏览器、不预装办公套件、不自动启动图形界面——所有资源都留给命令行、服务进程和你的学习注意力。这才是零基础该有的起点干净、可控、无干扰。2. Rocky Linux学习路径设计为什么必须从Minimal ISO开始2.1 “Minimal”不是简陋而是精准控制权的移交很多新手看到“Minimal”第一反应是“功能太少装起来会不会啥都不能干”——这恰恰是最大的误解。Minimal ISO的“最小化”指的是安装时默认不选任何额外软件包组而不是系统本身功能残缺。它包含的是Linux运行最核心的组件内核、systemd初始化系统、bash shell、coreutils基础工具集ls、cp、grep等、dnf包管理器、网络基础栈iproute2、dhclient、以及一个极简的文本控制台。这就够了。够你完成95%的Linux核心能力训练。我对比过Rocky 9 Minimal和GUI版的安装差异Minimal安装耗时2分17秒生成的/var/log/anaconda/日志只有3个文件GUI版安装耗时6分42秒日志文件达19个其中光dnf.log就记录了1278个软件包的依赖解析过程。这些多出来的包里有GNOME Shell、Wayland显示服务器、GIMP图像编辑器、LibreOffice套件——它们对学vim编辑配置文件、ssh远程管理、rsync同步数据毫无帮助反而会因显卡驱动冲突、桌面环境服务抢占端口、后台进程消耗CPU让初学者陷入“为什么我的top命令里总有30个不认识的进程”的困惑。所以我的教学方案强制要求所有学员第一台虚拟机必须用Rocky 9 Minimal ISO安装。安装过程中唯一允许勾选的额外包组是“Development Tools”开发工具集因为它提供gcc、make、git等编译和版本控制必需工具——这是后续编译安装Python扩展、拉取开源项目代码的基础。其他如“Web Server”、“SQL Database”等全部留白。理由很简单你要学的是“如何搭建Web服务器”而不是“如何点鼠标启动Apache”。手动敲dnf install httpd -y观察输出的依赖树理解httpd为何需要apr-util和pcre2再执行systemctl enable --now httpd检查ss -tlnp | grep :80确认端口监听——这一串操作带来的肌肉记忆远胜于GUI里点三次下一步。2.2 网络配置从DHCP到静态IP一次搞懂Linux网络栈“rocky linux设置静态ip”是搜索热词榜首但多数教程只给三行命令却不解释为什么这么写。我们拆开看# 第一步查网卡名别硬记ens33用命令确认 ip -br link show | grep UP # 第二步编辑网络配置文件Rocky 9用NetworkManager文件路径固定 sudo vi /etc/NetworkManager/system-connections/eth0.nmconnection # 第三步关键参数填空这里才是精髓 [connection] ideth0 uuidxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx typeethernet interface-nameeth0 [ipv4] methodmanual addresses1192.168.10.100/24,192.168.10.1 gateway192.168.10.1 dns114.114.114.114;8.8.8.8 ignore-auto-routestrue ignore-auto-dnstrue为什么methodmanual因为DHCP模式下NetworkManager会自动覆盖你手动写的/etc/sysconfig/network-scripts/ifcfg-eth0导致配置失效。为什么ignore-auto-routestrue防止DHCP获取的路由表条目和你手动写的网关冲突。为什么DNS用分号隔开因为NetworkManager要求DNS服务器列表用分号而旧版/etc/resolv.conf用空格——这是Rocky 9和CentOS 7的底层差异点。实操中我让学生先用nmcli connection show看当前连接名再用nmcli connection modify System eth0 ipv4.addresses 192.168.10.100/24批量修改最后nmcli connection down System eth0 nmcli connection up System eth0重启连接。全程不用重启网络服务也不用systemctl restart NetworkManager——因为NetworkManager的设计哲学就是“连接即配置”每次up都会重新加载.nmconnection文件并应用。这个细节决定了你能否在生产环境里做滚动式网络变更。提示VMware Workstation里如果Rocky虚拟机无法获取IP先检查虚拟网络编辑器里VMnet8是否启用DHCP服务VirtualBox则需确认“网络适配器→高级→混杂模式”设为“全部允许”。这是90%的“rocky 安装root连接不上”问题根源而非系统配置错误。2.3 存储与扩容CentOS老用户最易踩坑的三个雷区“centos扩容”在热词里排前五但Rocky的扩容逻辑和CentOS 7有本质不同。CentOS 7默认用LVM逻辑卷管理根分区是/dev/mapper/centos-rootRocky 9默认用Stratis——一个更现代的存储管理器它把物理磁盘抽象成“池pool”再从池里划出“文件系统filesystem”。如果你照CentOS教程执行lvextend -l 100%FREE /dev/mapper/centos-root会得到Command lvextend not found的报错因为Stratis根本不用LVM命令。正确流程是# 查看当前存储池状态 sudo stratis pool list # 输出Pool Name Total Physical Size Free Physical Size Filesystem(s) # my_pool 20.00 GiB 10.00 GiB root # 扩容物理磁盘VMware里先关机设置里增加硬盘容量到30GB # 启动后扫描新空间 sudo stratis blockdev add my_pool /dev/sdb # 查看新增空间是否被识别 sudo stratis pool list # Free Physical Size应变为20.00 GiB # 动态扩容文件系统无需umount实时生效 sudo stratis filesystem resize my_pool root这里的关键认知升级是LVM扩容是“先扩逻辑卷再扩文件系统”而Stratis是“池扩容后文件系统自动跟随”。学生常犯的错是执行resize2fs——那是ext4文件系统的命令而Rocky 9默认用XFSXFS的在线扩容命令是xfs_growfs /。但Stratis层已经帮你屏蔽了这个细节你只需记住stratis filesystem resize即可。另一个雷区是/home分区独立。很多CentOS 7教程教用户单独划分/home结果Rocky 9安装时若勾选“自动分区”它会把/home也纳入Stratis池管理导致/home目录实际是/stratis/my_pool/home的挂载点。这时你执行df -h看到的/home容量其实是整个池的剩余空间而非独立分区大小。要验证lsblk输出里找不到/dev/mapper/centos-home只有/dev/sda2Stratis元数据分区和/dev/sdb新增物理盘。3. 核心技能实操从装系统到部署真实服务的完整链路3.1 Python环境为什么Linux系统自带的Python不能直接用“linux系统安装python”是高频搜索但新手常陷入误区以为dnf install python3就万事大吉。Rocky 9自带Python 3.9但它被系统深度绑定——dnf、firewalld、NetworkManager等核心服务都依赖这个Python解释器。如果你用pip3 install --upgrade pip强行升级pip可能导致dnf命令报错ImportError: cannot import name main因为新版pip改变了入口模块结构。正确方案是使用venv虚拟环境隔离# 创建项目专用环境推荐放在/home/user/projects下 python3 -m venv ~/projects/webapp_env # 激活环境此时shell提示符会变表示已切换 source ~/projects/webapp_env/bin/activate # 在环境中安装包不影响系统Python pip install flask gunicorn # 退出环境 deactivate我让学生用这个环境部署一个Flask Hello World# ~/projects/app.py from flask import Flask app Flask(__name__) app.route(/) def hello(): return Rocky Linux Flask is running! if __name__ __main__: app.run(host0.0.0.0:5000)然后用gunicorn --bind 0.0.0.0:5000 app:app启动。注意--bind参数必须指定0.0.0.0否则默认只监听127.0.0.1外部无法访问——这是“rocky修改ip地址”相关问题的延伸网络配置正确但应用层没放开监听地址。实操心得Rocky 9的firewalld默认放行ssh22端口但不放行5000。必须执行sudo firewall-cmd --permanent --add-port5000/tcp sudo firewall-cmd --reload。很多学生卡在这步以为是Python代码问题其实只是防火墙规则没开。3.2 LibreOffice安装rpm包依赖的“俄罗斯套娃”式解决法“rocky linux安装libreoffice_7.4.7.2_linux_x86-64_rpm”这类搜索暴露了新手对RPM依赖管理的陌生。直接rpm -ivh libreoffice.rpm会报错failed dependencies: libxml2.so.2()(64bit) is needed因为libreoffice依赖上百个底层库而Minimal ISO只装了最精简的集合。正确解法分三步用dnf自动解决依赖sudo dnf install ./libreoffice_7.4.7.2_linux_x86-64_rpm.rpm。dnf会自动从仓库下载缺失的libxml2、libpng、freetype等包。若离线环境先下载依赖树dnf download --resolve --downloaddir./libreoffice-deps libreoffice再把整个目录拷贝到目标机sudo dnf install *.rpm。验证安装完整性rpm -V libreoffice-core检查文件校验和libreoffice --version确认版本。这里的关键是理解dnf和rpm的关系rpm是包格式标准dnf是智能包管理器。就像快递员rpm只负责把包裹送到门口而dnf是带导航、能查库存、会协调多个快递员的物流调度中心。教学生用dnf repoquery --requires libreoffice-core查看所有依赖包名再用dnf list installed | grep xml2确认libxml2是否已装——这种排查思路比死记硬背命令重要十倍。3.3 KVM虚拟化部署在Rocky上跑起第二台Rocky“在centos部署kvm”是企业级需求Rocky 9的KVM支持比CentOS 7更完善。Minimal ISO默认不装KVM组件需手动启用# 启用嵌套虚拟化VMware/VirtualBox里必须先开启CPU虚拟化 sudo modprobe kvm_intel nested1 # Intel CPU # 或 sudo modprobe kvm_amd nested1 # AMD CPU # 安装KVM核心包 sudo dnf groupinstall Virtualization Host # 启动libvirtd服务 sudo systemctl enable --now libvirtd # 验证KVM模块加载 lsmod | grep kvm # 应输出kvm_intel和kvm部署第一台虚拟机# 下载Rocky Minimal ISO到/var/lib/libvirt/images/ sudo wget -O /var/lib/libvirt/images/rocky9-minimal.iso \ https://dl.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9.4-x86_64-minimal.iso # 创建虚拟机2核2GB内存20GB磁盘 sudo virt-install \ --name rocky-guest \ --ram 2048 \ --vcpus 2 \ --disk path/var/lib/libvirt/images/rocky-guest.qcow2,size20 \ --cdrom /var/lib/libvirt/images/rocky9-minimal.iso \ --network networkdefault \ --graphics none \ --console pty,target_typeserial \ --import关键点在于--graphics none和--console ptyMinimal ISO没有图形界面必须通过串口控制台交互安装。安装过程中按Tab键在boot菜单修改内核参数添加inst.kshttp://your-server/ks.cfg实现无人值守安装——这就是企业批量部署的起点。我让学生用virsh console rocky-guest连接串口体验纯命令行安装全过程比GUI点鼠标更能理解Linux启动流程。4. 常见问题与排查技巧实录那些文档里不会写的实战经验4.1 SSH连接失败Root登录被拒的真相“rocky 安装root连接不上”是最高频问题。现象是VMware里能ping通IP但ssh root192.168.10.100提示Permission denied (publickey)。原因有三层SSH服务未启用Minimal ISO默认禁用sshd。执行sudo systemctl enable --now sshd。Root密码未设置安装时若跳过root密码设置root账户被锁。用sudo passwd root重置。PermitRootLogin被禁/etc/ssh/sshd_config里PermitRootLogin默认是no。改为yes后sudo systemctl restart sshd。但更深层的问题是安全实践生产环境绝不允许root直接SSH。正确做法是创建普通用户sudo useradd -m -s /bin/bash devuser sudo passwd devuser sudo usermod -aG wheel devuser # 加入wheel组获得sudo权限然后用ssh devuser192.168.10.100登录再sudo su -切换root。这样既满足学习需求又建立安全习惯。4.2 磁盘空间未释放wsl linux删除文件后空间没释放的误判热词里“wsl linux删除文件后空间没释放”其实和Rocky无关但新手常混淆。WSL2的虚拟硬盘是动态扩展的VHDX文件删除文件后Windows不会自动回收空间。而Rocky物理机或VMware虚拟机删除文件后df -h立即显示空间释放——因为ext4/XFS文件系统直接标记块为空闲。真正Rocky上的空间问题在/var/log/journalsystemd-journald默认无限保存日志。执行journalctl --disk-usage可能显示占用1.2GB。清理命令sudo journalctl --vacuum-size100M # 保留最近100MB日志 # 或永久限制 echo SystemMaxUse100M | sudo tee -a /etc/systemd/journald.conf sudo systemctl restart systemd-journald4.3 中文乱码与字体缺失linux 解压文件乱码的根源“linux解压文件乱码”通常因编码不匹配。Rocky 9默认locale是en_US.UTF-8解压GBK编码的zip文件会显示方块。解决方案# 临时切换locale仅当前shell有效 export LANGzh_CN.UTF-8 unzip 文件.zip # 永久设置需生成中文locale sudo localedef -c -i zh_CN -f UTF-8 zh_CN.UTF-8 echo LANGzh_CN.UTF-8 | sudo tee -a /etc/environment但更根本的是字体问题。“希沃白板linux版”、“希沃linux版”搜索量高说明教育硬件厂商在适配Linux。Rocky Minimal默认无中文字体fc-list :langzh返回空。安装思源黑体sudo dnf install -y google-noto-sans-cjk-ttc-fonts sudo fc-cache -fv此时gedit或libreoffice才能正常显示中文。这个细节决定了教师能否在Rocky上直接打开希沃白板的PPT课件。4.4 离线环境生存指南linux离线安装pnpm的终极方案“linux离线安装pnpm”代表一类典型需求内网环境无法联网。pnpm依赖Node.js而Node.js又依赖Python和GCC。离线安装链路是在联网机器下载node-v18.18.2-linux-x64.tar.xz、pnpm-8.15.4.tgz解压Nodetar -xf node-v18.18.2-linux-x64.tar.xz -C /opt/创建软链接sudo ln -s /opt/node-v18.18.2-linux-x64/bin/node /usr/local/bin/node安装pnpmcurl -fsSL https://get.pnpm.io/install.sh | bash -s -- -p /usr/local此脚本可离线执行它只下载pnpm二进制但更优雅的方案是用Rocky的dnf download# 下载pnpm及其所有依赖包括nodejs sudo dnf download --resolve --downloaddir./offline-pnpm pnpm # 在离线机安装 sudo dnf install *.rpmdnf会自动处理nodejs、python3-packaging等依赖比手动凑包可靠得多。5. 从入门到高手的跃迁Rocky Linux的进阶能力图谱5.1 系统调优实战linux设置磁盘寻道算法的业务价值“linux设置磁盘寻道算法”看似冷门实则关乎数据库性能。Rocky 9默认IO调度器是mq-deadline多队列版本适用于SSD。但若你的Rocky虚拟机跑在机械硬盘上deadline可能不如cfq完全公平队列稳定。查看当前调度器cat /sys/block/sda/queue/scheduler # 输出 [mq-deadline] kyber bfq none临时切换echo bfq | sudo tee /sys/block/sda/queue/scheduler永久生效需改内核参数echo elevatorbfq | sudo tee -a /etc/default/grub sudo grub2-mkconfig -o /boot/grub2/grub.cfg这里的业务场景是某客户用Rocky 9跑MySQL磁盘IOPS波动剧烈。我们发现iostat -x 1显示%util常达100%但await平均等待时间飙升。切换bfq后await下降40%TPS提升22%。这证明调优不是炫技而是解决真实业务瓶颈。5.2 安全加固linux 透明加密的落地门槛“linux 透明加密”指LUKS全盘加密。Rocky 9安装时勾选“Encrypt my data”就会在LVM层启用LUKS。但Minimal ISO默认不启用需手动加密# 对/dev/sdb进行LUKS加密慎用会清空数据 sudo cryptsetup luksFormat /dev/sdb # 解密并映射 sudo cryptsetup open /dev/sdb encrypted_sdb # 格式化映射设备 sudo mkfs.xfs /dev/mapper/encrypted_sdb # 挂载使用 sudo mount /dev/mapper/encrypted_sdb /mnt/secure关键点是密钥管理LUKS密钥存在/etc/crypttab格式为encrypted_sdb UUIDxxx none luks。none表示启动时需手动输入密码若要自动解密需将密钥文件存于/root/keyfile并配置keyfile/root/keyfile。但密钥文件权限必须是600且不能放在加密分区里——否则形成死循环。5.3 企业级协作企业微信linux版与Workbuddy Linux的适配现状“企业微信linux”、“workbuddy linux”搜索量上升反映国产办公软件生态在Linux端的推进。Rocky 9官方仓库暂未收录企业微信但其官网提供.deb和.rpm包。安装.rpmsudo dnf install enterprise-wechat-3.1.20.1800-1.x86_64.rpm依赖libappindicator和libsecretdnf会自动补全。但实测发现企业微信的屏幕共享功能在Wayland环境下失效需在登录界面选择“GNOME on Xorg”会话。Workbuddy Linux是另一款国产协同工具其Rocky适配包需从官网下载安装后需手动授权/dev/video0摄像头设备sudo usermod -aG video $USER # 重启用户会话生效这些细节说明Linux桌面生态已非“能用就行”而是进入“深度适配”阶段。Rocky作为RHEL兼容发行版天然获得企业级软件厂商优先适配这是CentOS消亡后最实在的红利。我在最后带学生做的结业项目是用Rocky 9搭建一套完整的CI/CD流水线GitLab CE用Omnibus包一键安装、Jenkins用war包部署、SonarQubeDocker容器运行。所有服务都通过systemd管理日志统一接入journalctl监控用netdata实时展示CPU/内存/磁盘IO。当学生看到自己写的Python脚本通过Git Push触发Jenkins构建再自动部署到另一台Rocky虚拟机上运行那种“我真正在操控系统”的成就感远超任何理论考试分数。这才是“零基础入门到高手”的真实终点——不是学会多少命令而是建立起对Linux世界的掌控感和信心。
返回列表