Skip to content

CentOS7最后的挣扎

CentOS7已于2024年6月30日正式结束维护,再也不会有关于这个系统的官方更新。

对应的官方仓库和第三方仓库基本都已经移除,只剩少量的镜像站继续维护归档的Vault镜像,但是稳定性和可用性也没有保证。

可以宣布CentOS7正式开寄!建议迁移到其他的代餐系统。

那么,一时半会无法迁移的CentOS7要怎么处理呢。

写在前面

生产力肯定是建议迁移到其他代餐系统的,用下面的方法也是治标不治本,甚至可能会搞坏原有的系统。 做什么之前都要记得做好备份,不要寄上加寄!

仓库源

直接用中科大的就好了!

sed -i.bak \
  -e 's|^mirrorlist=|#mirrorlist=|g' \
  -e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.ustc.edu.cn/centos-vault/centos|g' \
  /etc/yum.repos.d/CentOS-Base.repo

OpenSSH升级

OpenSSH目前还可以通过源码包自编译的方式继续更新,这里是一个制作RPM包的github项目:

aHR0cHM6Ly9naXRodWIuY29tL2JveXB0L29wZW5zc2gtcnBtcw==

按readme可以在CentOS7上完成rpm包的制作,并分发到其他主机。

一些碎碎念:

#更新命令
rpm -Uvh openssh-*.rpm

#安装后某些文件的权限问题可能导致sshd起不来
chmod 600 /etc/ssh/ssh_host_*_key

内核升级

以往安装比官方新的内核都是采用elrepo仓库提供的内核通道的,但是现在官方elrepo仓库也已经移除对CentOS7的支持,只能通过归档库获取文件(详见下一节)。

#手动下载内核
#最新的稳定主线(mainline stable)内核,需要herders/tools/doc的另自行下载
wget https://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-ml-6.9.7-1.el7.elrepo.x86_64.rpm
wget https://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-ml-devel-6.9.7-1.el7.elrepo.x86_64.rpm

#长期支持(long term support)内核,需要herders/tools/doc的另自行下载
wget https://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-5.4.278-1.el7.elrepo.x86_64.rpm
wget https://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-ml-devel-6.9.5-1.el7.elrepo.x86_64.rpm

#安装
rpm -ivh 对应的rpm文件

#查看现有内核启动顺序,新安装的内核应该在最上面
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg

#修改默认启动顺序,此处设置顺序第一的内核,计数从0开始
grub2-set-default 0

#生成新的启动文件
grub2-mkconfig -o /boot/grub2/grub.cfg

#重启看看
reboot

elrepo归档仓库

这是一个归档的elrepo的归档仓库:

aHR0cHM6Ly9taXJyb3JzLmNvcmVpeC5uZXQvZWxyZXBvLWFyY2hpdmUtYXJjaGl2ZS8=

Nginx升级

目前nginx官方还提供有nginx的yum源,可以直接使用更新

#创建yum的repo文件
nano /etc/yum.repos.d/nginx.repo

----------
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
----------

#默认会使用稳定版本,如果要使用主线版本可以使用以下命令
yum-config-manager --enable nginx-mainline

#直接yum命令安装即可
yum install nginx

最后

升级内核还是有风险的,在生产环境动手还是要想清楚。

基本升级一下OpenSSH和Nginx就好了(逃

还是尽早迁移到还在维护的系统吧