Falha ao instalar o PEAR a partir do código-fonte, não é possível encontrar o libclntsh.dylib.10.1

1

Pediram-me para examinar um laptop (OS X, 10.5) que estava configurado para um novo desenvolvedor, e descobri que o executável do pear estava faltando. Esta loja configura o PHP a partir do código-fonte, então eu naveguei para a árvore de código-fonte onde eles compilaram as coisas e tentei fazer uma instalação, que falhou com

Installing PEAR environment:      /usr/local/lib/php/
dyld: Library not loaded: /b/32_216/rdbms/lib/libclntsh.dylib.10.1
  Referenced from: /Users/username/Source/php-5.2.8/sapi/cli/php
  Reason: image not found
make[1]: *** [install-pear-installer] Trace/BPT trap
make: *** [install-pear] Error 2

Então eu tentei configurar / make clean / make / make e acertar o mesmo problema.

Todos esses comandos foram executados com sudo , já que a árvore de origem era de propriedade de root.

Eu acompanhei o problema até este comando com make -n install-pear

sudo /Users/username/Source/php-5.2.8/sapi/cli/php -n -dshort_open_tag=0 -dsafe_mode=0 -dopen_basedir= -derror_reporting=E_ALL -dmemory_limit=-1 -ddetect_unicode=0 pear/install-pear-no    zlib.phar -d "/usr/local/lib/php" -b "/usr/local/bin"-dshort_open_tag=0 -dsafe_mode=0 -dopen_basedir= -derror_reporting=E_ALL -dmemory_limit=-1 -ddetec
Installing PEAR environment:      /usr/local/lib/php/
dyld: Library not loaded: /b/32_216/rdbms/lib/libclntsh.dylib.10.1
  Referenced from: /Users/username/Source/php-5.2.8/sapi/cli/php
  Reason: image not found
make[1]: *** [install-pear-installer] Trace/BPT trap
make: *** [install-pear] Error 2

O que é estranho, e possivelmente um arenque vermelho, é quando eu executo o comando como um usuário não-root, parece para ir mais longe no processo

Installing PEAR environment:      /usr/local/lib/php/
[PEAR] Console_Getopt: failed to mkdir /usr/local/lib/php/Console
[PEAR] Archive_Tar: failed to mkdir /usr/local/lib/php/Archive
[PEAR] Structures_Graph: failed to mkdir /usr/local/lib/php/doc/Structures_Graph/docs/html/media
warning: pear/PEAR requires package "pear/Archive_Tar" (recommended version 1.3.2)
warning: pear/PEAR requires package "pear/Structures_Graph" (recommended version 1.0.2)
warning: pear/PEAR requires package "pear/Console_Getopt" (recommended version 1.2.3)
pear/PEAR can optionally use package "pear/XML_RPC" (version >= 1.4.0)
[PEAR] PEAR: failed to mkdir /usr/local/lib/php/OS

(Embora possa ser que, quando executados como sudo, esses comandos sejam executados silenciosamente quando forem bem-sucedidos.)

Eu pensei que isso poderia ser um problema de $PATH quando executado como sudo, mas parece que tudo é semelhante lá.

$ sudo echo $PATH
/usr/local/bin:/sw/bin:/sw/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/X11R6/bin:/usr/local/instantclient

$ echo $PATH
/usr/local/bin:/sw/bin:/sw/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/X11R6/bin:/usr/local/instantclient

A pasta /usr/local/instantclient é onde está localizada a biblioteca ausente.

Estou perdendo um pouco nas próximas etapas do "o que faço para verificar", e esperava que o ServerFault pudesse me ajudar antes que eu voltasse ao pessoal de TI.

    
por Alan Storm 13.10.2009 / 21:25

1 resposta

1

Este é o seu problema:

dyld: Library not loaded: /b/32_216/rdbms/lib/libclntsh.dylib.10.1

Você provavelmente não tem esse diretório / b na raiz do seu volume. Eu não sei por que eles fizeram o set para puxar algo de lá, talvez verificar uma das outras máquinas e ver se eles têm essa árvore de diretório / b na raiz do volume deles.

    
por 14.10.2009 / 04:24