系統環境: CentOS 64位+千萬不要在生產環境中升級glibc!


# cd /lib64
# LD_PRELOAD=/lib64/libc-2.15.so ln -sf /lib64/libc-2.15.so libc.so.6

libc-2.15.so

這個文件名根據你系統中的文件而定,如果有多個版本so文件可以逐個嘗試

原理分析:

linux調用so的庫文件時,搜索路徑為當前路徑,再是系統lib目錄。但是提供了一個LD_PRELOAD系統變量來改變這個順序。

設置LD_PRELOAD了后,庫加載的順序就變成這樣了:
LD_PRELOAD —> 當前路徑 —> 系統lib目錄

最后贈送一個查看當前支持gblic版本的命令:

# strings /lib64/libc.so.6 | grep GLIBC

作者:小和尚的藏經閣
鏈接:https://www.jianshu.com/p/216b28535c6b
來源:


升級glibc掛了后可以救命的命令

系統環境: CentOS 64位

首先,重要的事情說三遍,哈哈:
千萬不要在生產環境中升級glibc!!!

但是如果實在不幸,在升級glibc時掛掉了,執行各種命令都提示錯誤,比如:
Segmentation fault
或者:
error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
這類錯誤出現千萬不要着急退出SSH,執行下面的命令是可以挽救的:

# cd /lib64
# LD_PRELOAD=/lib64/libc-2.15.so ln -sf /lib64/libc-2.15.so libc.so.6

libc-2.15.so這個文件名根據你系統中的文件而定,如果有多個版本so文件可以逐個嘗試

原理分析:
linux調用so的庫文件時,搜索路徑為當前路徑,再是系統lib目錄。但是提供了一個LD_PRELOAD系統變量來改變這個順序。

設置LD_PRELOAD了后,庫加載的順序就變成這樣了:LD_PRELOAD —> 當前路徑 —> 系統lib目錄

最后贈送一個查看當前支持gblic版本的命令:
# strings /lib64/libc.so.6 | grep GLIBC_

參考資料:運維之路


免責聲明!

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



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