# 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的庫文件時, ...
# 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_
參考資料:運維之路