ubuntu 公升級後執行nginx報錯
$ /usr/local/nginx/sbin/nginx: error while loading shared libraries: libssl.so.0.9.8: cannot open shared object file: no such file or directory
從報錯內容看是找不到libssl.so.0.9.8
如何解決?
1. 通過ldd查詢缺少的庫
$ ldd $(which /usr/local/nginx/sbin/nginx)
linux-gate.so.1 => (0xb7773000)
libcrypt.so.1 => /lib/i386-linux-gnu/libcrypt.so.1 (0xb7729000)
libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb76ea000)
libssl.so.0.9.8 => not found
libcrypto.so.0.9.8 => not found
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb76e4000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb76cf000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7553000)
/lib/ld-linux.so.2 (0xb7774000)
2.進入/lib/i386-linux-gnu/ 目錄,發現原來是
libssl.so.0.9.8 libcrypto.so.0.9.8 這兩個檔案公升級成
libssl.so.1.0.0 libcrypto.so.1.0.0 導致,
做軟鏈結沒辦法解決依賴關係,此時最好是重新編譯niginx,使用公升級後的庫。
$ ldd $(which /usr/local/nginx/sbin/nginx)
linux-gate.so.1 => (0xb77b8000)
libcrypt.so.1 => /lib/i386-linux-gnu/libcrypt.so.1 (0xb776e000)
libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb772f000)
libssl.so.1.0.0 => /lib/i386-linux-gnu/libssl.so.1.0.0 (0xb76e1000)
libcrypto.so.1.0.0 => /lib/i386-linux-gnu/libcrypto.so.1.0.0 (0xb753d000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb7528000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb73ac000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb73a7000)
/lib/ld-linux.so.2 (0xb77b9000)
ubuntu使用apt get安裝nginx
nginx已經很火了,可centos和debian ubuntu都還沒把nginx加入倉庫中,每次都只能編譯安裝,不過官方最近提供了deb和rpm包了,只需要使用nginx的源就可以用包管理軟體直接安裝了,不過每次都先加key,再修改連線的版本還是有點繁瑣,所以打算寫個一鍵安裝指令碼來完成此工作。b...
docker 使用docker執行Nginx映象
在docker映象倉庫查詢nginx映象 建立nginx web資料夾,存放nginx的資訊 mkdir p opt nginx web 拷貝配置檔案到nginx web資料夾下 docker run name tmp nginx container d nginx 1.17 docker cp t...
ubuntu刪除公升級後多餘的核心
列出所安裝的核心 帶有image的就是核心檔案 dpkg get selections grep linux libselinux1 install linux 386 install linux image 2.6.15 23 386 install linux image 2.6.15 27 3...