场景:半家用半服务器性质。
文中提到的“centos8”,大部分情况下可以和“rhel8”互换。
本次Centos8基于fedora28(2018年5月发行),使用内核版本4.18,gcc版本8.2。
使用下来,主要是如下内容:
1.常用软件包更新。
Screen下放到epel。
Nginx、nodejs、go由epel提升到官方源。
Etcd、kubernetes等大量软件包被剔除。
KDE下放到epel-playground。
相比官方源,epel源的版本相对还是比较新的。提升到官方源不见得是个好事情。例如epel7和epel6中的go版本是1.13,centos8中的版本是1.11。
2.兼容性依旧。
centos向前的兼容性一直是可圈可点的,同一套初始化脚本,在centos6中可以使用。
把el6改成el7或者el8,大部分内容仍然可以在centos8中使用。
其余的两个重点分别是:
- YUM(YUM3.4.3)改为DNF(YUM4.0.9)。对于日常管理而言,并没有影响,yum只是指向dnf的一个软链而已,功能相同,命令一样。
- Firewalld的后端从iptables改为nftables,并来了一次套娃。
如果在centos7的时代更新了firewalld,那么你的使用其实是没有影响的。
如果你在centos7时代选择chkconfig firewalld off; yum install iptables-service,那么你的实际体验依然没有影响。
centos8依然支持iptables-service。当然了,iptables的后端也改成了nftables。
3.更加任性。
1.MongoDB
自从MongoDB宣布由AGPL切换到SSPL之后,RHEL8便不再提供MongoDB的源,因此CentOS8也一样不会提供MongoDB的下载。
SSPL 明确要求托管 MongoDB 实例的云厂商要么获取商业许可证要么向社区开放其服务源码。
2.Docker
Centos8中并未提供docker,此处特指“docker公司的docker”,反而提供了叫做Pod manager(Podman,Skopeo和Buildah系列工具,以下用podman代指)的东西。
podman同样实现了所有的docker命令行功能,近乎完全兼容,除了docker remote api。
和docker不一样的是,podman不存在守护进程,因此也不存在“docker挂掉所以所有的容器都挂掉”、“支持docker的--restart参数”等功能和问题。
红帽的考虑是三点,归结起来只有一句话:“以后你们基本用的都是OpenShift这种基于k8s的平台了,我后端换成什么已经不重要了,换成podman还更简单、更安全。”
3.Systemd
Centos8中,引入了cockpit,可以直接界面管理系统。
4.语言包分别打包
默认下不会再安装其他语言。
语言包分别被打包进:
- langpacks-zh_CN
- glibc-langpack-zh
4.努力摆脱“软件源老旧”的印象。
MySQL升级到8.0,Mariadb升级到10.3,PostgreSQL升级到9.6和10,Redis升级到5,默认python从2.7升级到3.6,并且取消了/usr/bin/python软链,使用python必须指定版本。
甚至将默认显示服务器升级到wayland。
这些影响最大的是MySQL,默认编码变成了utf8mb4_0900_hr_ai_ci,对于一些特殊字符有特殊的排序,例如0x20(空格)等于0XC2A0(utf8空格)。
有些公司的MySQL甚至还停留在5.5,大家就业的时候一定不要选择这种公司。
除此之外,几乎没有其他区别。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。