写在前面
本次问题是因为向LD_LIBRARY_PATH
新增库路径,glibc引用错乱导致,而非升级glibc导致。
最近在ubuntu编译webkit,但编译出来的MiniBrowser无法运行,报错缺少libsoup-3.0.so.0
等很多依赖库。
好,犯错开始!
先find一遍,在WebKitBuild
下面的目录里找到了这个库。很开心,想着直接export一个LD_LIBRARY_PATH
就OK了,so easy
然后,这才是噩梦的开始。
由于没有认真看lib/x86_64-linux-gnu
下的依赖库类型,恐怖的是里面有libc.so。。
直接更改的~/.bashrc文件,接着source ~/.bashrc
好家伙,我直接好家伙,系统自带的命令都没法用了,包括ls,cat,vim…
报错如下:
/home/ubuntu/yxb/WebKit/WebKitBuild/UserFlatpak/runtime/...(此处省略中间路径)/files/lib/x86_64-linux-gnu/libc.so.6: symbol _dl_catch_error_ptr, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference
心想着,完犊子了,把服务器搞坏了。。。
但突然,想着是LD_LIBRARY_PATH
新增了一个路径导致系统引用新的libc,从而导致系统无法正常使用。那么我有办法还原吗?
答案是有!!
使用vim修改~/.bashrc肯定是不行啦,因为执行vim也是报上面的错。
那在当前窗口试一下直接命令行export命令呢?可行!
于是执行export LD_LIBRARY_PATH=
当前窗口恢复正常啦,但是不要高兴太早,赶紧修改~/.bashrc,把刚才新增的那行给删除掉,别忘了source一下。
至此,也算是虚惊一场。。差一丢丢就去重装系统了。
如果是因为安装升级glibc,出现的这个问题,也可以尝试一下这个办法可以不 😃