Unix

在 CentOS 上修復共享 PCRE 庫

  • February 28, 2020

這不是關於 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

一切似乎都很棒!

引用自:https://serverfault.com/questions/290330