CentOS 7正式停服那天我服务器上还有几十台生产机器没迁移完。算下来从接到通知到全部切换前后折腾了三个多月踩过的坑比走过的路还多。这期间我最终选定的替代方案就是Rocky Linux也是今天这篇内容的主角。这篇内容不是那种泛泛而谈的Linux科普而是围绕“新版Linux零基础入门到高手、Rocky版本、替换CentOS”这三件事展开的实战记录。我会从“为什么选Rocky而不是别的发行版”讲起再到镜像下载、虚拟机安装、常用命令、软件部署、磁盘扩容、CentOS平滑迁移最后附上我实际遇到的常见问题排查表。无论你是刚接触Linux的小白还是正在给公司服务器找CentOS替代方案的老运维这篇内容应该都能给你省下不少时间。1. 为什么是RockyCentOS落幕后的替代逻辑1.1 CentOS停止维护到底意味着什么先说实话很多朋友对这个事儿的严重程度估计不足。CentOS 8在2021年12月31日就停止维护了CentOS 7也在2024年6月30日画上句号。停维护意味着什么意味着不再有安全补丁、不再修复已知漏洞、不再更新软件包仓库。对服务器来说这等同于裸奔一旦出现高危漏洞被利用系统在互联网上就是一座不设防的城。还有一点容易被忽略CentOS 7用的是Linux 3.10内核很多新硬件驱动、新文件系统特性、容器相关的cgroup v2支持都不完整。你就算能忍受安全风险硬件兼容性和新软件依赖也会越来越让你头疼。继续用CentOS 7本质上是在用一辆零件停产的老车跑长途不是不能跑是随时可能撂挑子。CentOS Stream虽然是官方续作但它是滚动发行版位于Fedora和RHEL之间更新节奏跟稳定服务器完全不是一个路子。生产环境要的是“稳”不是“新”这是原则问题。1.2 Rocky与CentOS、RHEL的血缘关系Rocky Linux的诞生背景很多人知道个大概CentOS项目调整方向之后CentOS创始人Gregory Kurtzer发起成立了Rocky Enterprise Software FoundationRESF目标是做一个“1:1 bug-for-bug兼容”的RHEL替代品。这话什么意思就是说Rocky的源码直接来自RHEL重新发布的开源源码经过社区构建、测试最终产物在二进制层面和RHEL保持兼容。你在RHEL上装过的软件、跑过的脚本、做过的配置迁移到Rocky上基本不用改。这对从CentOS迁移过来的用户尤其友好因为CentOS本身就是RHEL的重编译版现在只是换了个社区来维护这条链路而已。Rocky的版本号也继承自RHEL。比如Rocky 8对应RHEL 8Rocky 9对应RHEL 9生命周期同样长达十年。对服务器这种长周期运行的场景来说一个能明确告诉你“到哪一年之前都有安全更新”的系统才值得你把核心业务放上去。1.3 替代方案横向对比Rocky、AlmaLinux、Debian、Ubuntu LTS我当初替换CentOS时候选方案其实不止Rocky一个。AlmaLinux是CloudLinux公司发起的也是RHEL兼容路线跟Rocky功能几乎一样Debian和Ubuntu LTS则是另一个体系包管理用apt配置路径和命令习惯跟CentOS/RHEL系差别不小。我最终选Rocky三个原因第一血缘最正。Rocky的发起人是CentOS的创始人社区驱动的模式也更符合CentOS早期的精神。第二迁移成本最低。从CentOS切到RockySSH命令、systemd服务管理、firewalld防火墙、SELinux策略、dnf包管理全部零学习成本。第三生态认账。很多商业软件和白皮书都明确把RHEL系列为支持对象Rocky因为二进制兼容软件安装基本无痛。当然AlmaLinux也很好选谁更多是个人偏好。但如果你只是想找一个“和CentOS长得几乎一样”的系统Rocky是那个最顺手的选项。2. 动手前的基础准备镜像下载与虚拟机环境2.1 Rocky Linux镜像从哪里下很多新手卡在下载这一步因为官网有时候慢得让人崩溃。Rocky官方地址是rockylinux.org点下载之后能看到不同架构的镜像绝大多数情况下选x86_64就行。嫌官网慢的话国内镜像站是非常好的选择。清华TUNA、阿里云、中科大USTC都有Rocky的同步镜像下载速度基本跑满带宽。文件名会带Minimal、DVD、Boot等字样这里建议新手不要犹豫直接下载Minimal版它只包含一个最小化系统没有图形界面强迫你从命令行开始学这才是服务器该有的样子。文件下载完记得校验一下SHA256校验值镜像站都会提供对应的checksum文件。别嫌这一步啰嗦下载过程文件损坏的概率虽然低但真遇到了安装到一半报错才叫绝望我在帮同事排查安装问题时真遇过这种案例。2.2 虚拟机安装流程与分区规划安装方式我强烈推荐虚拟机VMware Workstation或VirtualBox都行不折腾物理机硬件兼容性问题。虚拟机配置参考2核CPU、4GB内存、40GB虚拟磁盘这个配置跑Rocky桌面或最小安装都够用后续学KVM虚拟化也勉强能撑起来。ISO挂载后开机选择“Install Rocky Linux 9.x”语言建议选英文。国内很多教程让选中文但你要知道服务器运维文档、日志、报错信息基本都是英文的早点适应对你只有好处。磁盘分区这里划个重点。默认的自动分区能用但不推荐给生产环境用。我建议手动分区至少分三个区/boot分1GB存放内核和引导文件swap分2-4GB作为内存溢出时的兜底其余空间全部给/。如果未来有计划跑数据库或容器再单独分一个/data挂载点把数据和系统隔离将来重装系统数据不丢。分区方案看着简单背后逻辑是系统盘和数据盘解耦、引导文件独立管理。内核升级出问题时单独挂载/boot恢复起来会省很多事。2.3 安装完成后的环境初始化清单装完系统进入命令行后千万别急着部署业务先做几件事把底子打好。第一件事创建普通用户。root权限太危险一条rm -rf /误操作就能毁掉整个系统。日常操作用一个普通账号需要管理员权限时sudo提权这是Linux世界的黄金法则。第二件事配置网络。Minimal版装完默认是DHCP自动获取IP服务器需要固定IP。用nmcli命令设置静态IP是Rocky系的标准做法操作简单后面我会专门展开讲。第三件事启用EPEL和CRB仓库。EPEL是Extra Packages for Enterprise Linux的缩写里面有大量RHEL基础源里没有的软件包CRB在Rocky 9里叫CRBCodeReady Builder提供编译器和开发库很多第三方软件依赖它。不启用这两个仓库你装软件时会频繁遇到“No package found”的报错。3. 从零上手Linux常用命令与人机交互3.1 目录与文件操作先搞懂你在哪儿Linux新手最容易迷惑的就是命令行界面。没有鼠标双击所有操作靠敲命令但一旦习惯效率是图形界面没法比的。先学四个命令pwd查看当前路径ls列出目录内容cd切换目录mkdir创建目录。把Linux目录结构过一遍/etc放配置文件/var放日志和动态数据/home放普通用户家目录/tmp放临时文件/usr放系统软件。这个结构初看有点反直觉但用久了你会发现它非常优雅配置、数据、程序、日志各归其位出了问题按图索骥就能找到。文件操作方面cp复制、mv移动/重命名、rm删除。这里专门警告一下rm是危险操作没有回收站删了就没了。建议习惯性用rm -i或者干脆先mv到一个.trash目录暂存等确认无误再清理。3.2 用户与权限管理Linux多用户模型的精髓Linux是多用户操作系统权限模型是它的核心安全屏障。每个文件都有属主owner、属组group、其他用户others三组权限每组又分读r、写w、执行x三种权限。实操中最常见的场景是新来一个同事要开账号用useradd和passwd就能搞定。某个文件需要让别人读用chmod修改权限。比如chmod 755给文件所有者完整权限、组和其他人读和执行的权限数字7421rwx541rx这套数字记法用熟了之后会非常高效。sudo配置也建议早点掌握。用visudo编辑/etc/sudoers文件给指定用户添加sudo权限注意不要直接扔root密码而是让用户用自己的密码提权安全性高得多。3.3 进程与服务管理systemd统领全局CentOS 7之后RHEL系全面转向systemdRocky也不例外。它统一了服务的启动、停止、重启、开机自启等操作这也是服务端的核心技能。systemctl是systemd的主力命令start、stop、restart、enable、disable、status是六个最常用的子命令。比如想让Nginx随系统启动一条systemctl enable nginx就搞定。查看运行状态用systemctl status nginx能看到服务是否active、监听了哪些端口、最近日志是什么排查问题时这个是第一眼要看的东西。进程管理方面top按CPU或内存排序看实时进程ps aux查看当前所有进程快照free -h看内存使用df -h看磁盘占用。四个命令组合起来服务器出任何性能问题你都有基本的诊断能力。3.4 网络配置实战给Rocky设置静态IP热词里“rocky linux设置静态ip”搜索量很靠前说明这是碰壁重灾区。Rocky 9用的网络管理工具是NetworkManager命令行配置静态IP建议用nmcli。查看当前网卡名称通常是ens33、ens160或eth0记住这个名字。然后执行nmcli con mod ens160 ipv4.addresses 192.168.1.100/24 nmcli con mod ens160 ipv4.gateway 192.168.1.1 nmcli con mod ens160 ipv4.dns 8.8.8.8 114.114.114.114 nmcli con mod ens160 ipv4.method manual nmcli con up ens160完事后用ip addr验证IP是否生效再ping一下网关和公网IP测连通性。这里有个新手常犯的错误想着直接去改/etc/sysconfig/network-scripts/ifcfg-ens160文件改完然后systemctl restart network。Rocky 9里网卡配置虽然还是这个文件但NetworkManager接管后直接改文件不一定生效而且restart network这个服务已经被废弃了。标准做法就是上面那套nmcli命令改完用nmcli con up重载连接。3.5 软件包管理dnf是yum的进化版RHEL系从8代开始软件包管理器从yum换成了dnfRocky 9只用dnf。但别担心常用的命令格式几乎一样如果输入yum它也会自动链接到dnf执行。最常用的几组命令# 搜索软件包 dnf search nginx # 安装 dnf install nginx -y # 卸载 dnf remove nginx # 更新全部软件 dnf update # 查看已安装 dnf list installed | grep nginx # 查看某个文件属于哪个包 dnf provides /etc/nginx/nginx.confdnf最大的优点是自动解决依赖关系。你装一个软件它会把所有依赖包自动装好这比老式Linux手动rpm安装的效率高太多了。当然dnf偶尔也会出现依赖冲突常见原因就是epel和CRB仓库没启用完整后面我会讲到。4. 服务器环境实操装Python、办公软件与扩容4.1 基于dnf安装Python并配置虚拟环境服务器上装Python是高频需求。热词里“linux系统安装python”搜索量不低这里写个标准流程。Rocky 9默认源里自带Python 3.9直接装dnf install python3 -y python3 --version系统自带的Python我不太建议直接拿来跑项目更规范的做法是给每个项目建一个虚拟环境隔离依赖版本。用venv创建python3 -m venv /opt/myproject/venv source /opt/myproject/venv/bin/activate pip install --upgrade pip激活虚拟环境后pip安装的包都会落在项目目录里不会污染系统Python。以后项目不要了直接删目录干干净净。另外提醒一下不要用Python直接去改系统管理的Python环境更不要用dnf去装pip包。系统Python是为操作系统内部工具服务的你乱装包可能导致yum/dnf本身跑不起来这个坑我踩过一次排查了两个小时才发现是pip包冲突。4.2 LibreOffice的安装思路热词里有“rocky linux安装libreoffice_7.4.7.2_linux_x86-64_rpm”这其实是很多办公场景下服务器要做的事——给Linux装一套Office套件处理文档。LibreOffice在EPEL源里就有最简单的方式是dnf安装dnf install libreoffice -y但如果你在特殊网络环境只能拿到rpm包离线安装那就用rpm或dnf localinstalldnf localinstall ./libreoffice*.rpm -ydnf localinstall比rpm -ivh好用的地方在于它同样会自动解析依赖关系但前提是你本地要有完整的依赖包集合否则依然会报缺依赖。少依赖文件时可以去rpmfind.net或官方下载地址补齐麻烦归麻烦但在内网隔离环境下这是唯一办法。还有一个思路是解包解压版本的LibreOffice.tar.gz把解压后的目录放进/opt再到/usr/bin下做个软链接。这种方式适合不想污染系统包管理的场景缺点是更新要手动搞。4.3 磁盘扩容实战虚拟机加盘后的完整流程服务器跑一阵子磁盘不够了是常态。热词里“centos扩容”排得挺靠前Rocky下思路完全一样这里给一套我自己的操作流程。虚拟机关机在虚拟机设置里给磁盘加空间或者加一块新盘。开机后先看磁盘情况lsblk df -h如果是给现有分区扩展以LVM为例核心步骤是扩展分区、扩展物理卷、扩展逻辑卷、扩展文件系统。先对新加的磁盘分区fdisk /dev/sdb # n 新建分区 # p 主分区 # w 保存然后加入现有卷组、扩展逻辑卷、扩展文件系统# 创建物理卷 pvcreate /dev/sdb1 # 查看卷组名通常是centos或rocky vgs # 扩展到卷组 vgextend rocky /dev/sdb1 # 扩展逻辑卷比如lv名是root lvextend -l 100%FREE /dev/mapper/rocky-root # 扩展文件系统xfs用xfs_growfs xfs_growfs /这里有个关键点文件系统类型不同最后一步的命令不同。xfs用xfs_growfsext4用resize2fs。用错了会报错对不上号时先用df -h看文件系统类型再决定。4.4 SSH远程连接与常见连不上问题服务器部署完了日常运维靠SSH远程。Linux服务器默认开着sshd服务端口22。本地用Windows的话可以用PowerShell自带的ssh命令也可以装个FinalShell或Xshell体验更顺手。配置SSH密钥登录是个好习惯比密码登录安全得多。流程是本地生成密钥对公钥传到服务器authorized_keys文件里然后关闭密码登录ssh-keygen -t ed25519 ssh-copy-id userserver_ip改/etc/ssh/sshd_config把PasswordAuthentication设为no然后systemctl restart sshd。连不上服务器是新手最常见的问题我遇到的排查顺序基本是这样先确认网络通不通ping服务器IP再确认端口通不通用telnet或nc扫一下22端口接着看sshd服务是否运行systemctl status sshd最后看防火墙firewall-cmd --list-all检查22端口是否放行。八成以上“连不上”的问题不是防火墙没放行就是服务没起来按这个顺序查最省时间。5. 从CentOS迁移到Rocky一条完整的升级路径5.1 迁移前的检查清单从CentOS迁到Rocky最关键的不是技术是准备工作。我见过太多人上来就执行迁移脚本结果中途失败系统处于半死不活的状态数据还差点丢了。迁移前必须做四件事。第一确认系统版本CentOS 7先升到7.9CentOS 8先升到8.5以上版本太老的话脚本可能要报错。第二备份数据数据库做全量备份配置文件打tar包网站代码拷一份多备份一份到其他机器上。第三停掉不相关的服务减少迁移过程中的干扰因素。第四做虚拟机快照这一步做成习惯了迁移失败直接回滚省得担惊受怕。5.2 使用migrate2rocky脚本完成迁移Red Hat官方提供了migrate2rocky脚本Rocky社区也维护着一份。两者核心逻辑一样替换软件源、重新安装受CentOS签名影响的RPM包、升级系统版本。建议直接从Rocky官方仓库拉取脚本# 下载迁移脚本 curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh # 给脚本加执行权限 chmod x migrate2rocky.sh # 执行迁移-r参数表示转换到Rocky bash migrate2rocky.sh -r脚本会解压仓库、替换rpm签名、清理旧缓存、执行dnf distro-sync。整个过程取决于系统里装了多少包通常在20-60分钟之间。期间不要中断终端不要重启系统。如果脚本中途失败看输出日志常见原因是某几个包的依赖解析失败或者网络中断。多数情况重新执行一次脚本就能过如果反复失败去查/var/log/migrate2rocky日志。迁移成功后重启系统你就能看到登录界面显示Rocky Linux的版本信息了。我自己在生产环境迁过几台整体还是比较顺的但务必记住重启前确认快照完好。5.3 迁移后验证与回滚预案重启之后别急着跑业务先做几项验证。第一确认发行版信息cat /etc/redhat-release # 应该显示 Rocky Linux release 9.x第二确认软件源dnf repolist输出里应该有Rocky官方仓库说明源切换成功。第三确认关键服务状态把数据库、Web服务、业务进程全部手动拉起来跑一遍基本功能测试。第四确认内核版本uname -r。如果有问题需要回滚就回到虚拟机的快照点。快照这个动作无论如何强调都不过分它是你迁移失败时唯一的后悔药。6. 常见问题与排查技巧实录这一节把所有实际运维中遇到的高频问题整理成表格按出现概率排序方便大家直接对号入座。问题现象可能原因处理方法SSH连接拒绝sshd未启动或防火墙未放行22端口systemctl start sshdfirewall-cmd --add-port22/tcp --permanent firewall-cmd --reload安装软件提示No package foundEPEL或CRB仓库未启用dnf install epel-releasednf config-manager --set-enabled crb虚拟机扩容后df -h无变化新分区未加入LVM或文件系统未扩展执行pvcreate、vgextend、lvextend、xfs_growfs完整链root密码忘记进不去系统无人值守恢复模式重启按e进入GRUB单用户模式修改密码rd.breakWSL里删除文件但Windows空间不释放vhdx虚拟磁盘没压缩wsl --shutdown后用diskpart/vhdx工具compact解压zip包中文文件名乱码字符集不匹配unzip -O gbk文件名.zip或用7z工具指定编码dnf update下载速度慢源在国外更换国内清华/阿里镜像源LibreOffice启动报缺.so依赖依赖库不全根据报错文件名搜索rpm包补齐或重装libreoffice另外有几个我在实操中总结的小技巧顺手分享出来。第一个是配置好防火墙后立即测试别等业务上线才发现端口没开。firewall-cmd --reload之后用nmap或nc对本机端口扫一遍确认无误再收工。第二个是养成看日志的习惯。系统日志在/var/log/messagesdnf日志在/var/log/dnf.log服务错误在journalctl -u 服务名。出问题先看日志比瞎猜高效十倍。第三个是改系统配置前先做备份。cp /etc/xxx /etc/xxx.bak这个习惯救过我太多次很多系统文件改完就直接坏有备份一步恢复。7. Linux学习路径建议从入门到高手的路线图热词里“linux面试题”和“linux提权”搜索量也很大说明不少朋友是冲着求职和提升去的。这里顺带给一套相对合理的学习路径。入门阶段掌握文件操作、用户权限、vim编辑器、网络配置、软件安装、服务管理这六块就能应对基本的服务器维护工作了。进阶阶段学习Shell脚本编程、文本处理三剑客grep/awk/sed、日志分析、性能监控把这些练熟后你就能自动化和排查问题了。再往上学习容器化、KVM虚拟化、Ansible自动化运维、数据库管理已经具备架构师级别的能力了。学Linux没有捷径但有一个高效的方法给自己搭一台服务器把博客系统、个人网盘、代码仓库这些真实服务部署上去遇到问题解决问题三个月下来比看十本书都强。很多人买了书就吃灰其实最快的入门路径就是从最小化安装系统然后把日常操作全部在命令行里完成不用鼠标不用图形界面。头一周很不适应第二周开始顺手一个月后你会发现回去用图形界面反而别扭了。不要太迷信什么“零基础入门到精通”真正的精通都是踩坑踩出来的。今天这篇内容里写的每一个坑都是我实际掉进去又爬出来的你可以少走这些弯路但该你踩的坑一个都不会少。这句话不是劝退是想告诉你学Linux这个过程本身就是最有价值的成长。