背景
前端代码,需要使用Nodejs 18,原jenkins服务器,是ubuntu 16.04,GLIBC_2.27,Nodejs 18下载下载至本地,执行./node -v,提示需要GLIBC_2.28,于是下载glibc2.28源码,configure,make ,make install
# ./configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-sanity-checks --disable-werror
# make
# make install
结果报错了,然后几乎所有指令都执行不了
解决方案
经过几天的百度之后,我认识到了一个事实,这服务器,我确实恢复不了了,只能重装系统了。不过百度没有白查询,还是找到了一些有用的信息,恢复了一部分指令,包括:zip,cp等指令,赶紧做数据备份,重装系统吧。
export LD_LIBRARY_PATH=/lib64/
export LD_PRELOAD=/lib64/libc-2.28.so
ln -s /lib64/libc-2.28.so /lib64/libc.so.6
最后
configure的时候参数--prefix=/usr非常关键,最好不要使用/usr目录,会覆盖系统原有的东西,一不小心,万劫不复。
升级失败后,千万不要断开ssh连接,否则可能就系统起不来了,也无法远程,会让你的后续备份数据或恢复更加艰难。
服务上的东西,升级之前,最好先查一下,升级失败会怎么样,后果能否承受。
备份备份备份!!!