glibc降級嘗試失敗-兼使用另一個版本的glibc


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支持的版本。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM