相关文章推荐
冷静的豌豆  ·  C# ...·  2 年前    · 
帅气的鼠标  ·  cv2.imread 中文路径-掘金·  2 年前    · 
咆哮的青蛙  ·  ASP.NET MVC Web 应用程序 ...·  2 年前    · 
首发于 龙蜥社区

关于 CentOS 迁移龙蜥操作系统,这里有一份详细指南,请查收!

编者按: CentOS 8 已于 2021 年年底正式停止维护,龙蜥社区已上线 「CentOS 停服专区」 ,为受 CentOS 停服影响的用户提供迁移方案及长期稳定支持。龙蜥操作系统(Anolis OS)8 全面兼容 CentOS 8 软件生态,且兼容其它主流 Linux 发行版,是完全开源、中立且开放的发行版。
为方便广大 CentOS 用户平滑迁移到龙蜥操作系统(Anolis OS),降低用户迁移成本,现整理如下迁移手册及迁移注意事项!
作者:徐春梅,龙蜥社区 Anolis 迁移 SIG 负责人。

一、迁移原理与注意事项

Anolis OS 8 在做出差异性开发同时,在生态上和依赖管理上保持跟 CentOS 8.x 兼容,所以 CentOS 8.x 迁移 Anolis OS 8 最新版本实现上,工具充分利用了兼容的特性,提供了一键式迁移脚本。

CentOS 8.x 迁移使用龙蜥操作系统(Anolis OS)发行版相关的包替代 CentOS 发行版,通过 yum distro-sync 重装当前系统中所有的系统软件包。

软件重装的过程并不会修改当前系统基础配置,所以系统配置、业务配置、业务数据都不会被清除,迁移完成后这些数据无需重新设置。

使用迁移脚本前需要 注意如下事项:

  • 迁移过程涉及软件包重装,是不可逆过程,迁移前务必做好备份。
  • 迁移过程涉及到访问 Anolis OS 的官方 repo,需要确保待迁移环境网络能够正常访问 Anolis OS repo。
  • 需要使用 root 用户执行,当前只支持 CentOS8.x 系统的迁移,不支持 CentOS stream 系统迁移。
  • 迁移过程依赖于 yum/dnf,确保这两个组件能够正常运行。
  • 迁移脚本提供了Anolis OS repo 访问加速的功能,如果访问 Anolis OS 官方 repo 速度较慢,可以通过 -s 选项进行加速访问。
  • Anolis OS 不提供 i686 架构的软件包,如您系统上安装了 CentOS 的 i686 架构的软件包,则无法正常迁移。

二、部署迁移工具

下载迁移脚本:

wget https://gitee.com/anolis/centos2anolis/raw/master/centos2anolis.py

安装迁移脚本运行依赖:

yum -y install python3

三、迁移执行

python3 centos2anolis.py

迁移完成后,系统会提示如下信息,表示迁移成功,重启即可进入龙蜥操作系统(Anolis OS)。

centos2anolis.py 提供了 -V 选项,用于记录迁移前后的软件包信息,您可以根据需要判断是否添加选项。添加 -V 选项,迁移完成后会在 /var/tmp 目录下生成迁移前后的 rpm 信息,命名格式为:

# 迁移前 
$(hostname)-rpms-list-before.log 
$(hostname)-rpms-verified-before.log 
# 迁移后 
$(hostname)-rpms-list-after.log 
$(hostname)-rpms-verified-after.log

四、迁移后配置检查

CentOS 在 2021 年 12 月 31 号停止维护,相应的 CentOS 源在 2022 年 1 月 31 号从官网删除,导致 CentOS 实例无法正常使用 repo,阿里云官方给出了切换使用 CentOS Vault 源的指导(链接见文末)。

如果您按照该指导切换使用 CentOS Vault 源或者自行配置使用 Vault 源,然后实施迁移 Anolis OS,迁移完成后,需要检查当前系统中是否残留 CentOS Vault 源。

通过命令 yum repolist 检查:

# yum repolist
Invalid configuration value: failovermethod=priority in /etc/yum.repos.d/CentOS-Linux-epel.repo; 配置:ID 为 "failovermethod" 的 OptionBinding 不存在
Repository PowerTools is listed more than once in the configuration
Repository AppStream is listed more than once in the configuration
仓库 id      仓库名称
AppStream    AnolisOS-8 - AppStream
BaseOS       AnolisOS-8 - BaseOS
Extras       AnolisOS-8 - Extras
PowerTools   AnolisOS-8 - PowerTools
base         CentOS-8.5.2111 - Base - mirrors.aliyun.com
epel         Extra Packages for Enterprise Linux 8 - x86_64
extras       CentOS-8.5.2111 - Extras - mirrors.aliyun.com

如上述结果所示,“CentOS-8.5.2111 - Base - mirrors.aliyun.com” 就是残留的 CentOS repo,需要删除 ,否则会出现 Anolis OS 和 CentOS 源共存的问题,一旦执行 yum update 可能会错误地安装 CentOS 的包。

删除 CentOS 源的方法和步骤如下:

1.查找提供 CentOS repo 的配置文件

# grep -rn "CentOS-8.5.2111" /etc/yum.repos.d/*.repo
/etc/yum.repos.d/Centos-vault-8.5.2111.repo:14:name=CentOS-8.5.2111 - Base - mirrors.aliyun.com
/etc/yum.repos.d/Centos-vault-8.5.2111.repo:24:name=CentOS-8.5.2111 - Extras - mirrors.aliyun.com
/etc/yum.repos.d/Centos-vault-8.5.2111.repo:34:name=CentOS-8.5.2111 - Plus - mirrors.aliyun.com
/etc/yum.repos.d/Centos-vault-8.5.2111.repo:43:name=CentOS-8.5.2111 - PowerTools - mirrors.aliyun.com
/etc/yum.repos.d/Centos-vault-8.5.2111.repo:53:name=CentOS-8.5.2111 - AppStream - mirrors.aliyun.com

2.重命名步骤 1 找到的配置文件

mv /etc/yum.repos.d/Centos-vault-8.5.2111.repo /etc/yum.repos.d/Centos-vault-8.5.2111.repo.bak

五、迁移后验证

查看 OS 版本:

# cat /etc/os-release
NAME="Anolis OS"
VERSION="8.4"
ID="anolis"