[保姆级教程]解决Centos 8下无法更新的问题 (附无痕迁徙到Rocky Linux的方法)

1、问题描述

现在,Centos 8 这个项目已经停止运营了,取而代之的是一个叫做Centos Stream 8的项目,个中缘由及瓜葛说来话长,本文就不唠叨了,感兴趣的可以参考这篇文章:https://blog.csdn.net/taoofcode/article/details/120480889

一句话,许多老CentOS用户对此事感到不满意,于是CentOS的创始人就启动了一个名为 Rocky Linux 的新项目,该项目是RHEL的分支。


OK,事已至此,你面临两种选择:

  • 按照RedHat的官方安排,从Centos 8 迁徙到 Centos Stream 8
  • 不走官方路径,迁徙到和RHEL兼容的新系统 Rocky Linux 8

第一种方案: 迁徙到Stream

此方案比较简单,输入以下命令即可:

  1. wget 'http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/centos-gpg-keys-8-3.el8.noarch.rpm'
  2. rpm -i 'centos-gpg-keys-8-3.el8.noarch.rpm'
  3. dnf --disablerepo '*' --enablerepo=extras swap centos-linux-repos centos-stream-repos
  4. dnf distro-sync

这个办法是将Centos 8正常升级到CentOS Stream 8, 在更新完毕后记得要reboot重启一下,然后再输入cat /etc/redhat-release 会发现系统已经切换为CentOS Stream release 8版本了。


第二种方案:迁徙到Rocky Linux

这个方案稍微复杂一点,因为当下(2022年3月),Centos 8官方已经关闭了原来的仓库,以至于目前我们已经没有办法正常在Centos 8下面通过dnf update命令进行正常更新。矛盾的是,若要从Centos 8迁徙到Rocky Linux 8,又必须将系统update到最新状态,这时候就需要临时将Centos 8的仓库源改为RockyLinux的仓库源,然后再执行dnf update 命令,用这种方式迂回地将Centos 8更新后,再正常按照Rocky Linux官方提供的迁徙脚本按部就班即可。

  1. Rocky Linux的仓库镜像列表在这个网址,大家可以随便挑一个速度快的:
    https://mirrors.rockylinux.org/mirrormanager/mirrors
  2. 下面我们随便挑一个比如就选Alwyzon吧,在浏览器内输入网址:. http://mirror.alwyzon.net/rockylinux/

此处也可以选择山东大学的源,速度会快一些:http://mirrors.sdu.edu.cn/rocky/

  1. 找到Base和AppStream源的网址,这一步说白了就是在浏览器上找,直到出现os这层目录的时候,将浏览器上的网址复制下来备用。
    这是我找到的:
    http://mirror.alwyzon.net/rockylinux/8/BaseOS/x86_64/os/
    http://mirror.alwyzon.net/rockylinux/8/AppStream/x86_64/os/
  2. 修改文件 /etc/yum.repos.d/CentOS-Linux-BaseOS.repo
    (注意有些发行版这个文件名中间没有 -Linux- 这个字样,下同。)
    #mirrorlist 这一行注释掉(加#号)
    baseurl=http://mirror.alwyzon.net/rockylinux/8/BaseOS/x86_64/os/
    
  3. 修改文件 /etc/yum.repos.d/CentOS-Linux-AppStream.repo
    #mirrorlist 这一行注释掉(加#号)
    baseurl=http://mirror.alwyzon.net/rockylinux/8/AppStream/x86_64/os/
    
  4. 下载并安装GPG-KEY:
    wget http://mirror.alwyzon.net/rockylinux/RPM-GPG-KEY-rockyofficial
    rpm --import RPM-GPG-KEY-rockyofficial
  5. 接着重建cache并更新:
    dnf clean all
    dnf makecache
    dnf update -y
    
    更新完毕后,需要 reboot 一次
  6. 无痕迁徙到Rocky Linux:

    在正式迁徙到Rocky Linux之前,请一定要先执行上面的 dnf update 将原系统更新到最新状态,否则无法成功。

步骤:
10. dnf install epel-release
11. 下载官方迁徙脚本
curl https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh -o migrate2rocky.sh
12. 给脚本授权可执行权限
chmod u+x migrate2rocky.sh
13. 运行脚本
./migrate2rocky.sh -r
14. 重启系统
reboot
15. 查看系统版本:
cat /etc/redhat-release
或者:
hostnamectl
如果出现: Operating System: Rocky Linux 8.5 (Green Obsidian)
恭喜迁徙成功!

后记

  • Stream 和 Rocky 是二选一的事,这就是说假设你从Centos 8升级到Stream后,再想迁徙到Rocky就很困难了,因为Stream下面很多库都和Rocky不兼容(比如最基础的glibc这一类)。反之,迁徙到Rocky之后又想投奔到Stream也是件麻烦事儿,因此当我建议,当系统还是旧版Centos 8的时候就要在Stream或Rocky之间做出一个决断,免得跳来跳去自找麻烦。

猜你喜欢

转载自blog.csdn.net/rockage/article/details/123106932