Corrigindo a biblioteca PCRE compartilhada no CentOS

5

Esta é menos uma questão sobre o PCRE, e mais uma questão sobre a atualização de bibliotecas compartilhadas. A distribuição do CentOS que estou executando só permite atualizações de yum para a versão 6.6 ou em algum lugar semelhante.

Estou instalando um rastreador de problemas que requer o PCRE versão 8.0+. Não consigo desinstalar a versão 6.6 atual do PCRE, pois quase tudo depende disso e o sistema quebraria.

Assim, eu compilei e instalei o PCRE 8.12 a partir do código-fonte, mas mesmo que pcretest -C mostrasse a nova versão, uma chamada para php_info () na minha página de teste indica que as bibliotecas 6.6 ainda estão sendo carregadas. Eu encontrei um link para um site sugerindo como trocar as bibliotecas antigas pelas novas.

Ao fazer isso, acho que algo não está bem . Alguns comandos estão relatando problemas:

/usr/bin/php: error while loading shared libraries: libpcre.so.0: cannot open shared object file: No such file or directory

O que exatamente devo fazer para corrigir o problema? Eu não estou muito familiarizado com bibliotecas compartilhadas / dinâmicas. Eu tenho os seguintes arquivos:

[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
    
por Craig Otis 14.07.2011 / 15:10

2 respostas

3

Sucesso! Eu explodi as bibliotecas existentes, tudo que não estava em /root/pcre-8.12/ , depois executei o ./configure; make; make install do diretório de origem.

Ele foi instalado corretamente, mas ainda assim me mostrou um erro semelhante. Eu notei:

[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)

As bibliotecas estavam em /lib64/ , enquanto o único link criado pelo instalador de origem era:

/usr/local/lib/libpcre.so.0

Então, eu simplesmente criei um link em /lib64/ :

[root@vps tracker]# link /usr/local/lib/libpcre.so.0.0.1 /lib64/libpcre.so.0

E tudo parece ser ótimo!

    
por 14.07.2011 / 15:42
2

Talvez

ldd /usr/bin/php

mostrará onde o php está esperando encontrar as bibliotecas compartilhadas do pcre.

    
por 14.07.2011 / 15:30