https://cnodejs.org/topic/56dc21f1502596633dc2c3dc 這個介紹的是升級的情況。
降級,網上說很難。因為用yum是無法降級安裝的。我仿造升級的方式,make install,發現鏈接還是沒有改變。
重啟,
進入/lib64,強行將libc-so-2.12.so 指向 libc.so,(系統中正在運行的版本是libc-so-2.18)。重啟后,系統出現內核錯誤的提示,無法重啟。
使用另一個版本的glibc:
有的程序編譯需要另外的glibc環境,這樣做。(參考:http://pkuwwt.github.io/linux/2014-04-25-use-another-glibc-installation/)
gcc main.c -o main -Wl,--rpath=/path/to/new/glibc/lib \ -Wl,--dynamic-linker=/path/to/new/glibc/ld-linux.so.2
其中ld-linux.so.2在64位系統下可能為ld-linux-x86-64.so.2,它的路徑會硬編碼到程序中(因此顯式指定時換成別的名字也沒什么問題)。正是這個原因,導致很多已有程序不能使用新glibc的庫。
另外,查看鏈接問題的兩個常用工具是:
- ldd: 查看可執行文件或動態庫依賴的其它的庫
- strings: 查看庫中的字符串,比如
strings /lib64/libc.so.2 | grep GLIBC
可以查看GLIBC支持的版本。