日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

【原创】大叔经验分享(27)linux服务器升级glibc故障恢复

發布時間:2023/12/20 linux 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【原创】大叔经验分享(27)linux服务器升级glibc故障恢复 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

redhat6系統默認安裝的glibc-2.12,有的軟件依賴的是glibc-2.14,這時需要升級glibc,下載安裝 http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz

# ./configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
# make
# make install

結果make install報錯,同時除了cd外各種命令都用不了,會報各種shared libraries: *: cannot open shared object file: No such file or directory

ls: error while loading shared libraries: libselinux.so.1: cannot open shared object file: No such file or directory

這些shared libraries都位于/lib64/下,而且此時機器無法遠程登錄,
現在只有一個終端root賬號登錄在服務器上,除了能執行cd之外什么都做不了,omg
各種google都無法解決,自己努力

1 首先嘗試從其他服務器遠程傳輸/lib64/下的所有文件和link到本機,但是各種傳輸命令都不能用,比如nc、scp等

2 其次懷疑有可能是link損壞,嘗試手工重建報錯的link

# ln -s libtinfo.so.5.7 libtinfo.so.5
ln: creating symbolic link `libtinfo.so.5': File exists

雖然ls不能用,但是看起來/lib64/下各種文件和link都還在,那為什么會報No such file or directory?

3 再次通過export查看一下當前的環境變量(export還能用):

# export
declare -x LD_LIBRARY_PATH="/usr/local/lib"

嘗試修改LD_LIBRARY_PATH,增加/lib64:

export LD_LIBRARY_PATH=/lib64:$LD_LIBRARY_PATH

很多命令居然可以用了,這次glibc升級的過程是這樣的,以其中一個library為例:

安裝之前:

-rwxr-xr-x 1 root root 161776 Jun 19 2018 ld-2.12.so
lrwxrwxrwx 1 root root 10 Jun 19 2018 ld-linux-x86-64.so.2 -> ld-2.12.so

安裝之后:

-rwxr-xr-x 1 root root 161776 Jun 19 2018 ld-2.12.so
-rwxr-xr-x 1 root root 838308 Jan 24 15:41 ld-2.14.so
lrwxrwxrwx 1 root root 10 Jan 24 16:28 ld-linux-x86-64.so.2 -> ld-2.14.so

將這次安裝的改動回滾,即將所有的link都改為指回2.12版本

# ls -l /lib64|grep 2.14|grep lrw|awk '{print "ln -snf "$11" "$9}'|sed 's/2.14/2.12/g'
ln -snf ld-2.12.so ld-linux-x86-64.so.2
ln -snf libBrokenLocale-2.12.so libBrokenLocale.so.1
ln -snf libanl-2.12.so libanl.so.1
ln -snf libc-2.12.so libc.so.6
ln -snf libcidn-2.12.so libcidn.so.1
ln -snf libcrypt-2.12.so libcrypt.so.1
ln -snf libdl-2.12.so libdl.so.2
ln -snf libm-2.12.so libm.so.6
ln -snf libnsl-2.12.so libnsl.so.1
ln -snf libnss_compat-2.12.so libnss_compat.so.2
ln -snf libnss_dns-2.12.so libnss_dns.so.2
ln -snf libnss_files-2.12.so libnss_files.so.2
ln -snf libnss_hesiod-2.12.so libnss_hesiod.so.2
ln -snf libnss_nis-2.12.so libnss_nis.so.2
ln -snf libnss_nisplus-2.12.so libnss_nisplus.so.2
ln -snf libpthread-2.12.so libpthread.so.0
ln -snf libresolv-2.12.so libresolv.so.2
ln -snf librt-2.12.so librt.so.1
ln -snf libutil-2.12.so libutil.so.1

全部執行一遍,故障恢復,各種命令都可以使用,機器也恢復遠程登錄。

轉載于:https://www.cnblogs.com/barneywill/p/10315603.html

總結

以上是生活随笔為你收集整理的【原创】大叔经验分享(27)linux服务器升级glibc故障恢复的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。