由於在生產環境中需要使用python 中得乙個包tensorflow在機器中匯入包發現有以下報錯
如圖所示
此圖為公升級後得截圖,正常應該指向是沒公升級前libc-2.12.so
然後我發現 在/bigdata/anaconda/lib 下面有 libc-2.17.so就考慮把libc-2.17.so拷貝到/lib64下面然後修改軟連線
cd /usrlib64
rm libc.so.6
ln -s libc-2.17.so libc.so.6 然後悲劇就發生了 發現這裡報錯。。。我使用其他命令。。都報錯。。。
解決辦法:
既然命令無法定址到軟連線,那麼直接命令列給他就是了,網上看到了兩種方法
1、ldconfig -l -v /lib64/libc-2.12.so
這裡寫的libc庫必須是原來使用的而不是你更新過的
2、ld_preload=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6
ld_preload允許你定義在程式執行前優先載入的動態鏈結庫,因此在使用ln前就載入了lib庫,而不是等到使用ln時載入,這樣就能臨時使用命令了
不僅僅是ln,只要加了ld_preload=/lib64/libc-2.12.so,後面可以跟一切因為libc.so.6被刪不能用的命令
。
我使用的是第二種方法
然後命令又能用了.
好了問題解決了 理解下原因
glibc庫是很多命令操作得依賴庫 如圖
僅僅是iconv,基本上非系統命令都有這一條 libc.so.6 => /lib64/libc.so.6 ,因此libc.so.6至關重要,絕對不能刪,不能改名,能不能覆蓋就不知道了,想作死的可以試試但是還是沒有解決根本問題。 怎麼解決呢? 老老實實得原始碼安裝吧
解決辦法:同樣經歷的還有 這位同學wget
tar -xvf glibc-2.17.tar.gz
cd glibc-2.17
mkdir build
cd build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make && make install
記一次生產報too man open files
有一天私有雲無法訪問,馬上聯絡廠商,最後廠商發現好多容器不停重啟,經過日誌檢視發現平台開啟檔案控制代碼太多,很奇怪,就開始排查,最後發現乙個埠,定位到應用spring actuator.這個應用是我為了監控微服務而發布的乙個監控應用,馬上看日誌,發現應用報錯,too many open files,...
記一次生產環境獲取不到redis連線問題排查
最近線上環境總是不穩定,用著用著就會出現獲取不到redis連線的情況,檢視redis伺服器端配置,發現連線數不是很多,那麼為什麼又會出現如此情況呢?首先檢視redis服務端的配置 通過redis cli連線到redis伺服器 redis cli h 127.0 0.1 p 6379 a 密碼 獲取客...
記一次生產環境thrift服務的配置問題
問題現象 有客戶反饋我們的產品有時反應很慢,處理會出現超時。問題分析過程 1.第一反應可能是使用者增加,併發量太大了,詢問了運營,最近使用者註冊資料並沒有猛增。2.分析access日誌,發現有隔一段時間會出現幾個連續的請求響應時長超過30秒,並且這些請求都是使用乙個thrift服務的,而連redis...