声明: 直接升级替换 glibc 会导致服务器直接挂掉,所有的命令均用不了。不信的可以直接升级试试。
场景: nodejs 20、22 等版本需要高版本的 glibc 才能运行
大致步骤: 将高版本系统(RHEL10 或者 CentOS Stream 10 )的 lib64 拷贝到centos 7 的一个路径下面,然后使用 patchelf 命令修改二进制程序,对系统没有任何影响:
patchelf --set-interpreter ~/.glibc-239/$(uname -m)/lib64/ld-linux-x86-64.so.2 --set-rpath ~/.glibc-239/$(uname -m)/lib64:/usr/lib64 node-v22.0.0-linux-x64/bin/node