将 CentOS 转成 Oracle Enterprise Linux 获得更好体验

前言

米饭一直都不推荐使用 CentOS,因为 CentOS 的更新实在是太慢了,一个 Linux Kernel 的高危漏洞尽然可以比 RHEL 晚足足一个星期。但是 RHEL 体系的兼容性真的好了,在这方面这的确是 Debian 和 Ubuntu 不可以比的。不过还好,我发现了一个替代方案 —— Oracle Enterprise Linux(简称 OEL)。

介绍

一个商业系统的开源版本,是不能将其中的软件、组建拿过来直接用的,必须是通过源码重新编译一遍。CentOS 是开源社区所维护的所以更新速度总是慢半拍,例如 RHEL7 的 1611 版本只是16年11月发布的,但是 CentOS7 的 1611 版本却要到 12月 才能发布。

Oracle Enterprise Linux 则是由 Oracle 维护的 RHEL 源码重构版,在使用 Oracle 家的产品的时候特别是 Oracle Database 性能更是号称有百分之两位数的提升,那么夸张肯定不能信,不过提升肯定是有的。依旧是上面的 1611 版本,OEL 仅仅只比 RHEL 慢了一个星期,在脏牛漏洞上,也是非常及时的修复。

Oracle Enterprise Linux 完美兼容 RHEL,免费提供源代码、二进制文件、更新、可再发行、生产。如果要获得 RHEL 那样的商业技术支持,OEL 也宣称更便宜。具体 OEL 是怎么吹牛逼的:https://linux.oracle.com/switch/centos/

反正不管怎么样,我觉得 OEL 还是一个不错的选择。

安装

ISO镜像

全新安装的 ISO 镜像可以在 Oracle软件交付中下载,http://edelivery.oracle.com/linux

CentOS升级

无论是国内的阿里云、腾讯云还是国外的DO一般都是不会提供 OEL 的,不过没关系,因为 OEL 是完美兼容 RHEL 的,自然也完美兼容 CentOS,换个软件源就可以升级了~

一、 将服务器镜像换成 CentOS 6 或者 7,然后在 SSH 中输入,就会自动更换到 OEL 的全球CDN源,并安装Key:

wget https://linux.oracle.com/switch/centos2ol.sh 
sh centos2ol.sh

二、 然后再运行下面命令,更新至 OEL:

yum distro-sync

三、如果提示错误了:

Running transaction check
Running transaction test

Transaction check error:
  file /usr/share/man/man5/limits.conf.5.gz from install of pam-1.1.8-18.el7.i686 conflicts with file from package pam-1.1.8-18.el7.x86_64
  file /usr/share/man/man5/pam_env.conf.5.gz from install of pam-1.1.8-18.el7.i686 conflicts with file from package pam-1.1.8-18.el7.x86_64
  file /usr/share/man/man8/faillock.8.gz from install of pam-1.1.8-18.el7.i686 conflicts with file from package pam-1.1.8-18.el7.x86_64
  file /usr/share/man/man8/pam_env.8.gz from install of pam-1.1.8-18.el7.i686 conflicts with file from package pam-1.1.8-18.el7.x86_64
  file /usr/share/man/man8/pam_exec.8.gz from install of pam-1.1.8-18.el7.i686 conflicts with file from package pam-1.1.8-18.el7.x86_64
  file /usr/share/man/man8/pam_faillock.8.gz from install of pam-1.1.8-18.el7.i686 conflicts with file from package pam-1.1.8-18.el7.x86_64
  file /usr/share/man/man8/pam_unix.8.gz from install of pam-1.1.8-18.el7.i686 conflicts with file from package pam-1.1.8-18.el7.x86_64
  file /usr/share/man/man8/pam_userdb.8.gz from install of pam-1.1.8-18.el7.i686 conflicts with file from package pam-1.1.8-18.el7.x86_64
  file /usr/share/man/man8/pwhistory_helper.8.gz from install of pam-1.1.8-18.el7.i686 conflicts with file from package pam-1.1.8-18.el7.x86_64

Error Summary

四、先安装 yum-downloadonly

yum install -y yum-downloadonly

五、安装 pam/tmp

yum install pam.i686 -y --downloadonly --downloaddir=/tmp

六、查看 pam 的 i386 rpm包的版本号,因为不同系统的 pam 版本号不一样:

yum list pam

例如,我这里的是:

    pam.i686    1.1.8-18.el7   ol7_latest

七、强制安装 pam 及其依赖

cd /tmp
rpm -ivh --force --nodeps pam-1.1.8-18.el7.i686.rpm
yum reinstall pam.i686

八、再运行下面命令,更新至 OEL:

yum distro-sync

九、查看系统:

[root@www.mf8.biz tmp]# lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: OracleServer
Description:    Oracle Linux Server release 7.4
Release:    7.4
Codename:   n/a

[root@www.mf8.biz tmp]# uname -a
Linux centos-512mb-ams3-01 3.10.0-693.el7.x86_64 #1 SMP Wed Aug 2 06:49:08 PDT 2017 x86_64 x86_64 x86_64 GNU/Linux

软件更新

截止北京时间 2017年8月9日,12点的软件版本状况:

CentOS


[root@centos-512mb-sgp1-01 ~]# uname -a
Linux centos-512mb-sgp1-01 3.10.0-514.21.1.el7.x86_64 #1 SMP Thu May 25 17:04:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

m4.x86_64   1.4.16-10.el7

automake.noarch 1.13.4-3.el7

libtool.x86_6   2.4.2-22.el7_3

libtasn1.i686   3.8-3.el7   

openssl.x86_64  1:1.0.1e-60.el7_3.1

mariadb-server.x86_64   1:5.5.52-1.el7

gcc.x86_64  4.8.5-11.el7

nfs-utils.x86_64    1:1.3.0-0.33.el7_3

OEL


[root@centos-512mb-ams3-01 ~]# uname -a
Linux centos-512mb-ams3-01 3.10.0-693.el7.x86_64 #1 SMP Wed Aug 2 06:49:08 PDT 2017 x86_64 x86_64 x86_64 GNU/Linux

m4.x86_64   1.4.16-10.el7

automake.noarch 1.13.4-3.el7

libtool.x86_64  2.4.2-22.el7_3

libtasn1.i686   4.10-1.el7

openssl.x86_64  1:1.0.2k-8.0.1.el7

mariadb-server.x86_64   1:5.5.56-2.el7

gcc.x86_64  4.8.5-16.el7

nfs-utils.x86_64    1:1.3.0-0.48.0.1.el7

可见,OEL 的版本和 CentOS 基本上是一样的,毕竟大家都是 RHEL 重新编译的,在更新速度上,由于 OEL 已经快要更新 1707 即 7.4 了,而 CentOS 还保留在 1611 即 7.3,所以可以看到补丁号,OEL 明显要新很多。

其他值得注意的就是 libtasn1 和 openssl 是明显不同的,为了 HTTP/2 看来升级到 openssl 1.0.2 这个是真的值得表扬,方便用户,不需要自行编译!

9 条评论

发表评论

  • 那使用mysql有提升么

    他这个更新比较频繁?

    我随便举几个,你看看什么版本
    m4 automake libtool libtasn1

    • 版本和 RHEL 是同步的,只是补丁打的比CentOS及时,mysql的提升没提到

      • 能否帮我看下呢?举的几个应用的版本。

        按我理解,rhel只是内核,和应用存在重大漏洞更新得比centos快,但普通应用与centos没差别

        • 已经在文章末尾更新了,版本号肯定是一致的,补丁号因为更新的早所以新一点。其他的也就是 openssl 有自己的思维了

        • 主要还是RHEL体系支持和设计的软件太多了,在 Ubuntu 上有时候只能自己编译了