Oracle Linux 是 Oracle 开发的基于 RHEL 的 Linux 发行版。 它是 CentOS Linux 的最佳替代品之一。 本指南介绍了如何将 CentOS Linux 迁移到 Oracle Linux,使用 centos2ol
脚本。
CentOS 社区经理 Rich Bowen 之后 宣布 由于他们正在将重点从 CentOS Linux 转移到 CentOS Stream,开发人员和用户对此非常不满。
许多用户强烈谴责这一决定。 然而,决定已经做出,似乎没有回头路了。
由于 CentOS Stream 是滚动预览版(即开发),因此很多用户对其稳定性表示担忧。
目前,稳定且可行的基于 RHEL 的 CentOS 替代品是 AlmaLinux, 洛基 Linux 和 甲骨文. 如果您想将 CentOS Linux 迁移到 Oracle Linux,本教程将教您如何操作。
Centos2ol (CentOS To Oracle Linux) 脚本
Oracle 开发团队创建了一个脚本,名为 "centos2ol.sh"
将您的 CentOS 8、7 和 6 系统转换为 Oracle Linux。
Centos2ol 脚本主要有以下两个功能:
- 它将 CentOS 系统的 yum 配置切换为使用 Oracle Linux yum 服务器来更新一些核心软件包。
- 它安装最新的 Oracle Unbreakable Enterprise Kernel (UEK)。
就是这样! 您甚至不需要在切换后重新启动系统。 但是,如果您想利用 UEK,请重新启动系统并登录到 Oracle Linux 内核。
一个警告:
我用这个脚本将CentOS 7迁移到Oracle Linux 7,第一次迁移没有成功。 然而,我在第二次尝试时很幸运。 我不建议在生产中使用此脚本。 因为,它在第一次尝试时破坏了我的 CentOS 7 服务器并且服务器没有启动。 幸运的是,它只是一个测试虚拟机,我只是重新安装了它。 所以我不能保证这个脚本会毫无问题地将 CentOS 转换为 Oracle Linux。 你被警告了!
让我们开始迁移。
将 CentOS Linux 迁移到 Oracle Linux
第1步: 首先, 备份您的重要数据, 以防万一。
第2步: 然后,将您的 CentOS 7 系统更新到最新版本:
$ sudo dnf update
在 CentOS 6 上,运行以下命令来更新它:
$ sudo yum update
第 3 步: 更新系统后,重新启动它。
$ sudo reboot
让我们检查 CentOS 7 版本:
$ cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)
第4步: 接下来,确保您已安装 Python 2.x,这是由 centos2ol
脚本。 如果 python2
不可用,您可能会得到以下输出:
Checking for required packages... 'python2' command not found. Please install or add it to your PATH and try again. For assistance, please email <[email protected]>.
要安装 Python2,只需运行:
$ sudo dnf install python2
或者,
$ sudo yum install python2
第 5 步: 下载 centos2ol.sh
脚本:
$ curl -O https://linux.oracle.com/switch/centos2ol.sh
或者,从 GitHub 下载:
$ curl -O https://raw.githubusercontent.com/oracle/centos2ol/main/centos2ol.sh
第 6 步: 跑 centos2ol
脚本为 root
或者 sudo
将 CentOS Linux 迁移到 Oracle Linux 的用户:
$ sudo sh centos2ol.sh
或者,
$ sudo bash centos2ol.sh
现在 Oracle Linux 迁移过程将开始。 centos2ol 脚本将备份现有的 CentOS 存储库文件,添加 Oracle Linux 存储库,用 oracle 徽标替换 centos 徽标,更新一些核心软件包并安装最新的 Oracle Unbreakable Enterprise Kernel。
所有这些都是完全自动化的。 只需运行脚本并坐下来!
这将需要一段时间,具体取决于您的 Internet 连接速度。 请耐心等待。
切换成功,但出现了一些 Python 包错误。
[...] Error: Package: python2-dnf-plugins-core-4.0.2.2-3.el7_6.noarch (@extras/7) Requires: python2-hawkey >= 0.7.0 Removing: python2-hawkey-0.22.5-2.el7_9.x86_64 (installed) python2-hawkey = 0.22.5-2.el7_9 Downgraded By: python2-hawkey-0.6.3-4.el7.x86_64 (ol7_latest) python2-hawkey = 0.6.3-4.el7 Error: Package: python2-dnf-4.0.9.2-1.el7_6.noarch (@extras/7) Requires: python2-hawkey >= 0.22.5 Removing: python2-hawkey-0.22.5-2.el7_9.x86_64 (installed) python2-hawkey = 0.22.5-2.el7_9 Downgraded By: python2-hawkey-0.6.3-4.el7.x86_64 (ol7_latest) python2-hawkey = 0.6.3-4.el7 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest Could not automatically sync with Oracle Linux repositories. Check the output of 'yum distro-sync' to manually resolve the issue. For assistance, please email <[email protected]>.
第 7 步: 运行以下命令将已安装的软件包同步到最新的可用版本。
$ sudo yum distro-sync
我一直收到与以前相同的 python 包错误。 我无法弄清楚如何解决。 所以我忽略了这个消息并重新启动了系统。
好主! 有效! 我可以看到 Grub 已使用 Oracle Linux 条目进行了更新。

登录新转换的 Oracle Linux 7 系统后,我检查了发行版本和内核详细信息,以验证 Oracle Linux 迁移是否成功:
$ cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.9 (Maipo)
$ uname -r 5.4.17-2036.100.6.1.el7uek.x86_64

是的! 我已成功将 CentOS Linux 7 转换为 Oracle Linux 7。
第 8 步: 更改 Oracle Linux 7 的主机名:
# systemctl set-hostname ol7
注销并重新登录以应用更改。 现在一切都很完美!

希望这可以帮助。
相关阅读:
- 如何从 CentOS Linux 8 迁移到 CentOS Stream 8
- 使用 Almalinux-deploy 脚本从 CentOS 8 迁移到 AlmaLinux
- 如何从 CentOS 8 Linux 迁移到 Rocky Linux 8
- 从 CentOS 8 迁移到 AlmaLinux 的非官方方式
- 如何使用 Elevate Utility 将 CentOS 7 迁移到 AlmaLinux 8、CentOS Stream 8、Oracle Linux 8、Rocky Linux 8
资源: