skip to content
Logo Hetai's blog

不要在CentOS 6安装CentOS7的软件T_T...

/ 2 min read

Table of Contents

吃一蛰,长一智

由于要迁云,我们要把线上所有金山的云服务器迁移到腾讯云。今天计划迁移zookeeper集群,5个节点上都没有 nc 这个工具,我转头就去copy先前用于安装的命令。

Terminal window
cat << EOF > /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-7.9.2009 - Base
baseurl=http://mirrors.ustc.edu.cn/centos-vault/7.9.2009/os/x86_64/
gpgcheck=0
#released updates
[updates]
name=CentOS-7.9.2009 - Updates
baseurl=http://mirrors.ustc.edu.cn/centos-vault/7.9.2009/os/x86_64/
gpgcheck=0
#additional packages that may be useful
[extras]
name=CentOS-7.9.2009 - Extras
baseurl=http://mirrors.ustc.edu.cn/centos-vault/7.9.2009/os/x86_64/
gpgcheck=0
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-7.9.2009 - Plus
baseurl=http://mirrors.ustc.edu.cn/centos-vault/7.9.2009/os/x86_64/
gpgcheck=0
EOF
yum clean all
yum makecache
yum install -y nmap-ncat

install -y 敲下去就完犊子了,没注意到当前机器是centos 6.10,我去安装一个centos 7的包。

nmap-ncat依赖更高版本的bash、glibc、glibc-common,yum直接帮更新了这三个包,这是致命的,centos6默认的glibc包是2.12版本,升级到2.17时,系统的其他命令

ls、ssh、bash链接的还是2.12,这就导致机器直接死机了,什么命令都会用不了,云控制台也进不去。 Astro theme cactus logo Astro theme cactus logo

补救方法

强制装回被升级的依赖包

Terminal window
wget http://mirrors.aliyun.com/centos-vault/6.5/os/x86_64/Packages/glibc-2.12-1.132.el6.x86_64.rpm
wget http://mirrors.aliyun.com/centos-vault/6.5/os/x86_64/Packages/glibc-common-2.12-1.132.el6.x86_64.rpm
wget http://mirrors.aliyun.com/centos-vault/6.5/os/x86_64/Packages/bash-4.1.2-15.el6_4.x86_64.rpm
wget http://mirrors.aliyun.com/centos-vault/6.5/os/x86_64/Packages/filesystem-2.4.30-3.el6.x86_64.rpm
rpm -Uvh --oldpackage --force --nodeps *.rpm

以后线上的机器不能直接 install -y了,特别是如果依赖包中有glibc,filesystem等依赖升级,直接Ctrl + C !!!