- Published on
升级glibc
- Authors
- Name
- JiGu
- @crypto20x
起因
运行android studio的AVD报错,xxx terminated
,然后去~/.cache/Google/android-studio-xxx/log/idea.log
看到报 GLIBC_2.30' not found
只能自己编译更新glibc库了。
编译glibc
- 下载源码: wget http://ftp.gnu.org/gnu/glibc/glibc-2.30.tar.xz
- 解压
tar -Jxf glibc-2.30.tar.xz
cd glibc-2.30 mkdir build cd build
安装依赖
sudo apt install gawk bison -y
环境检测,生成Makefile
../configure --prefix=/usr/local --disable-sanity-checks
编译
make -j8
安装到系统中
sudo make install
拷贝编译产物
sudo cp /usr/local/lib/libm-2.30.so /lib/x86_64-linux-gnu/
创建链接
cd /lib/x86_64-linux-gnu/ sudo ln -sf libm-2.30.so libm.so.6
查看安装结果
strings /lib/x86_64-linux-gnu/libm.so.6 | grep GLIBC_
注意
刚开始想直接编译高版本的,发现编译失败,后面又编译了个比较接近的2.31,发现没有2.29的GLIBC_,直接编译需要的版本最好。
不知问什么有些私有的符号没有,估计是编译选项的问题,我想还原。直接apt install libc-amd64,出错了,整个系统libc崩了,ls都用不了。 通过 export LD_PRELOAD 指定libc.so都不行,只能重置了。
操作libc风险很大,容易搞挂系统,不是万不得已,千万别试。下载个新的debian镜像,把程序丢里面跑最好。