libc.so.6: cannot open shared object file

場景

            拷貝其他系統中的libc.so文件到目標系統,目錄存放/usr/local/lib64,執行指令ldconfig,系統異常

rm: relocation error: /usr/lib64/libc.so: symbol _dl_exception_create, version GLIBC_PRIVATE not defined in file ld-linux-aarch64.so.1 with link time reference

執行處理ls,pwd指令之外,全部異常

rm: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory


嘗試解決方案:
/sbin/sln /lib64/libc-2.12.so /lib64/libc.so.6

LD_PRELOAD解決的原理是:linux調用so的庫文件時,搜素路徑爲當前路徑,再是系統lib目錄。但是提供了一個LD_PRELOAD系統變量來改變這個順序。設置LD_PRELOAD了後,庫加載的順序就改爲:
搜素路徑爲: LD_PRELOAD ,當前路徑,再是系統lib目錄


先刪除連接 :
# cd /usr/lib64
# LD_PRELOAD=/usr/lib64/libc.so rm libc.so.6 無法刪除
建立新連接 :
# LD_PRELOAD=/usr/lib64/libc.so ln -s /lib64/libc.so.bak libc.so.6 創建失敗

sln /lib64/libc.so.6.bak /lib64/libc.so.6


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章