glibc 升级失败 回退 ssh_exchange_identification: Connection closed by remote host

在尝试将glibc从2.12升级到2.18的过程中遇到问题,导致部分核心命令如ls、mv和ssh无法正常工作。通过调整LD_PRELOAD环境变量,将libc.so.6等关键库回退至旧版本,最终解决了命令执行失败和ssh连接问题。

glibc从2.12升级至2.18,升级失败,不要退出终端!

安装失败原因:一部分库有连接到新库,一部分没有,当时安装到/opt/glibc-2.18下,一开始都是好的,ssh也是,只是ssh的时候会报错:en_us.UF8找不到之类的locale文件不对,因为所有的连接都连接到了/opt下,所以就把locale文件拷贝到/opt下,看似正常了。但是等我安装了gcc 7.3后,ls,mv,ssh都不能用了。所以只能回退一下:

看一下新库的连接:

ls -l /lib64|grep 2.12|grep lrw|awk '{print "LD_PRELOAD=/lib64/libc-2.12.so ln -snf " $11" " $9}'|sed 's/2.12/2.18/g'
LD_PRELOAD=/lib64/libc-2.12.so ln -snf libanl-2.12.so libanl.so.1
LD_PRELOAD=/lib64/libc-2.12.so ln -snf libBrokenLocale-2.12.so libBrokenLocale.so.1
LD_PRELOAD=/lib64/libc-2.12.so ln -snf libcidn-2.12.so libcidn.so.1
LD_PRELOAD=/lib64/libc-2.12.so ln -snf libcrypt-2.12.so libcrypt.so.1
LD_PRELOAD=/lib64/libc-2.12.so ln -snf libc-2.12.so libc.so.6
LD_PRELOAD=/lib64/libc-2.12.so ln -snf libdl-2.12.so libdl.so.2
LD_PRELOAD=/lib64/libc-2.12.so ln -snf libm-2.12.so libm.so.6
LD_PRELOAD=/lib64/libc-2.12.so ln -snf libnsl-2.12.so libnsl.so.1
LD_PRELOAD=/lib64/libc-2.12.so ln -snf libnss_compat-2.12.so libnss_compat.so.2
LD_PRELOAD=/lib64/libc-2.12.so ln -snf libnss_db-2.12.so libnss_db.so.2
LD_PRELOAD=/lib64/libc-2.12.so ln -snf libnss_dns-2.12.so libnss_dns.so.2
LD_PRELOAD=/lib64/libc-2.12.so ln -snf libnss_files-2.12.so libnss_files.so.2
LD_PRELOAD=/lib64/libc-2.12.so ln -snf libnss_hesiod-2.12.so libnss_hesiod.so.2
LD_PRELOAD=/lib64/libc-2.12.so ln -snf libnss_nisplus-2.12.so libnss_nisplus.so.2
LD_PRELOAD=/lib64/libc-2.12.so ln -snf libnss_nis-2.12.so libnss_nis.so.2
LD_PRELOAD=/lib64/libc-2.12.so ln -snf libpthread-2.12.so libpthread.so.0
LD_PRELOAD=/lib64/libc-2.12.so ln -snf libresolv-2.12.so libresolv.so.2
LD_PRELOAD=/lib64/libc-2.12.so ln -snf librt-2.12.so librt.so.1
LD_PRELOAD=/lib64/libc-2.12.so ln -snf libutil-2.12.so libutil.so.1

 

上面显示的是要回退的,重要的是libc.so.6, librt,libpthread这几个,执行一半会有报错,因为这时候的LD_PRELOAD连接需要换成,如果命令显示segment fault或者找不到GLIBC说明有一半是连接的新库,则使用

LD_PRELOAD=/lib64/libc-2.128so

替换完之后正常命令可以使用,但是ssh还是无法登录:

报错:

ssh_exchange_identification: Connection closed by remote host

 

LD_PRELOAD=/lib64/libc-2.12.so ln -snf ld-2.12.so ld-linux-x86-64.so.2也替换回去,ssh可以正常使用

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值