Unix
在 CentOS 上修復共享 PCRE 庫
這不是關於 PCRE 的問題,而是關於更新共享庫的問題。我正在執行的 CentOS 發行版只允許
yum
升級到 6.6 版或類似的版本。我正在安裝一個需要 PCRE 版本 8.0+ 的問題跟踪器。我無法解除安裝目前的 6.6 版本的 PCRE,因為幾乎所有內容都依賴於它,並且系統會崩潰。
因此,我從原始碼編譯並安裝了 PCRE 8.12,但即使
pcretest -C
顯示了新版本,在我的測試頁面上呼叫 php_info() 表明仍在載入 6.6 庫。我找到了一個網站連結,該連結建議如何將舊庫換成新庫。在這樣做時,我認為有些地方*不太對勁。*一些命令正在報告問題:
/usr/bin/php: error while loading shared libraries: libpcre.so.0: cannot open shared object file: No such file or directory
我究竟應該怎麼做才能解決這個問題?我對共享/動態庫不是很熟悉。我有以下文件:
[root@vps tracker]# find / -name libpcre.so* -exec ls -l '{}' \; lrwxrwxrwx 2 root root 16 Jul 14 07:53 /lib64/libpcre.so.0 -> libpcre.so.0.0.1 lrwxrwxrwx 1 root root 16 Jul 14 07:53 /usr/local/lib/libpcre.so.0 -> libpcre.so.0.0.1 -rwxr-xr-x 1 root root 116790 Jul 14 07:53 /usr/local/lib/libpcre.so.0.0.1 lrwxrwxrwx 2 root root 16 Jul 14 07:53 /usr/local/lib/libpcre.so -> libpcre.so.0.0.1 lrwxrwxrwx 1 root root 16 Jul 14 07:16 /root/pcre-8.12/.libs/libpcre.so.0 -> libpcre.so.0.0.1 -rwxr-xr-x 1 root root 116790 Jul 14 07:16 /root/pcre-8.12/.libs/libpcre.so.0.0.1 lrwxrwxrwx 1 root root 16 Jul 14 07:16 /root/pcre-8.12/.libs/libpcre.so -> libpcre.so.0.0.1
**成功!**我吹走了現有的庫,所有不在的庫,
/root/pcre-8.12/
然後./configure; make; make install
從源目錄執行。它安裝正確,但仍然向我顯示類似的錯誤。我注意到:
[root@vps pcre-8.12]# ldd /usr/sbin/httpd libm.so.6 => /lib64/libm.so.6 (0x00002b3c8a9dd000) libpcre.so.0 => not found (bunch of others)
庫位於 中
/lib64/
,而源安裝程序創建的唯一連結是:/usr/local/lib/libpcre.so.0
所以,我只是創建了一個連結
/lib64/
:[root@vps tracker]# link /usr/local/lib/libpcre.so.0.0.1 /lib64/libpcre.so.0
一切似乎都很棒!