CentOS8尝鲜与新特性解读

  CentOS 8于2019-09-24发布,呉真作为一个CentOS的死忠粉,也第一时间安装了CentOS 8一探究竟,这里记录了呉真发现的CentOS 8新特性。

CentOS 8与CentOS Stream

  与CentOS 8一起发布的还有CentOS Stream,那么CentOS Stream又是什么呢?
  众所周知,CentOS是来自于RHEL依照开放源代码规定发布的源代码所编译而成的,CentOS 8便是来自于上半年发布的RHEL 8,这意味着RHEL是CentOS的上游版本。而根据官方文档:

CentOS Stream will be a rolling-release Linux distro that exists as a midstream between the upstream development in Fedora Linux and the downstream development for Red Hat Enterprise Linux (RHEL). It is a cleared-path to contributing into future minor releases of RHEL while interacting with Red Hat and other open source developers. This pairs nicely with the existing contribution path in Fedora for future major releases of RHEL.`

我们可以得知CentOS Stream将作为RHEL的上游,为开发者提供一个滚动更新的RHEL系统版本。依照呉真的理解,CentOS Stream从Fedora吸收新特性以后,作为RHEL的测试版,待稳定之后发布RHEL的新版本,再依照RHEL的源代码发布CentOS的新版本。平时正常使用我们选择CentOS 8就可以了。

CentOS 8新特性

kernel 4.18

  CentOS使用的内核从2.6.32、3.10.0来到了4.18.0,虽然没有采用最新的5.x版本,但是4.18是4.x系列的最后一个长期支持版本,最为重要的是4.9版本以后的内核都附带了Google BBR拥塞控制算法。此时我们不再需要更换内核的繁琐操作,一条命令即可开启使用BBR作为拥塞控制算法。

1
2
3
sysctl -w net.ipv4.tcp_congestion_control=bbr
sysctl net.ipv4.tcp_congestion_control
> net.ipv4.tcp_congestion_control = bbr
新的包管理工具dnf

  dnf是新一代的rpm包管理工具,dnf早在2015年的Fedora 22版本中就已经替代了yum,CentOS 8终于迎来了这一新的包管理工具,事实上dnfyum的新一代版本,因此绝大数基于yum命令的操作可以直接使用dnf代替。

1
2
3
4
ll $(which yum)
> lrwxrwxrwx. 1 root root 5 May 14 03:34 /usr/bin/yum -> dnf-3
dnf update -y
dnf install vim -y
Base OS 与App Stream

  CentOS 8将传统的包仓库一分为二,Base OS提供与操作系统相关的底层组件,而App Stream则提供用户使用的应用程序。App Stream可以快速的安装指定版本的应用程序,例如dnf install @postgresql:5.6,完整的应用程序列表可以使用dnf module list命令查看,遗憾的是目前仅为少数几个应用程序提供了多个版本。

Python 3

  Python 2将于2020-01-01结束其生命周期,因此使用Python 3迫在眉睫,如果仍旧需要使用Python 2,App Stream提供了Python 2.7版本。CentOS 8默认不预装Python,因为dnf使用C++编写替代了Python。

1
2
3
dnf install python36 -y
python3 --version
> Python 3.6.8
openssl 1.1.1

  CentOS 8使用openssl 1.1.1这意味着,Web服务器可以支持最新的TLS 1.3,上一次openssl大版本更新还是在CentOS 7.4将openssl 1.0.1e升级至1.0.2k,支持了HTTP 2.0。

1
2
openssl ciphers TLS13
TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_SHA256
nftables

  CentOS 8使用nftables代替了{ip,ip6,arp,eb}tables,事实上从CentOS 7开始我们都是通过操作firewalld管理iptables的,因此从iptables切换至nftables的过程firewalld已经全部做好了,你甚至可能完全没发现iptables已经离你远去。这也是呉真讨厌debian系的原因,已经9102年了,debian系默认仍然没有提供防火墙规则保存命令。而呉真自从接触CentOS 5开始就知道,一条service iptables save命令即可使防火墙规则永久生效。

1
2
cat /etc/firewalld/firewalld.conf | grep FirewallBackend
> FirewallBackend=nftables
其他新特性
  • App Stream提供了MySQL 8.x,再也不需要添加MySQL官方源安装MySQL
  • App Stream加入了nginx,遗憾的是版本为1.14,好在可以添加nginx官方源安装1.17新版本
  • App Stream提供了PHP 7.1与7.2版本