Назад | Перейти на главную страницу

Проблемы с установкой PEAR из исходного кода, не удается найти libclntsh.dylib.10.1

Меня попросили осмотреть ноутбук (OS X, 10.5), который был настроен для нового разработчика, и я обнаружил, что исполняемый файл груши отсутствует. Этот магазин устанавливает PHP из исходного кода, поэтому я перешел к дереву исходных текстов, где они скомпилировали вещи, и попробовал выполнить make install, но с ошибкой

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

Поэтому я попробовал выполнить команду configure / make clean / make / make install и столкнулся с той же проблемой.

Все эти команды выполнялись с sudo, поскольку исходное дерево принадлежало корню.

Я отследил проблему до этой команды с помощью 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

Что странно и, возможно, является отвлекающим маневром, когда я запускаю команду как пользователь без полномочий root, я кажется чтобы продвинуться дальше в процессе

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

(Хотя может случиться так, что при запуске от имени sudo эти команды просто выполняются тихо, когда они успешны.)

Я думал, что это может быть $PATH проблема при запуске от имени sudo, но вроде там все похоже.

$ 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

В /usr/local/instantclient папка - это место, где находится недостающая библиотека.

Я немного не понимаю, что делать дальше, и надеялся, что ServerFault сможет мне помочь, прежде чем я вернусь к ИТ-специалистам.

Это твоя проблема:

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

У вас, вероятно, нет каталога / b в корне вашего тома. Я не уверен, зачем им make set, чтобы вытащить что-то оттуда - возможно, проверьте одну из других машин и посмотрите, есть ли у них это дерево каталогов / b в корне их тома.