Php

從原始碼安裝 PEAR 時遇到問題,找不到 libclntsh.dylib.10.1

  • October 14, 2009

我被要求查看為新開發人員設置的筆記型電腦(OS X,10.5),我發現 pear 執行檔失去了。這家商店從原始碼設置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,因為原始碼樹歸 root 所有。

我將問題追溯到這個命令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 能夠在我向 IT 人員返回之前幫助我。

這是你的問題:

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

您的捲的根目錄中可能沒有那個 /b 目錄。我不確定他們為什麼要設置從那裡提取一些東西——也許檢查其他一台機器,看看他們的捲根目錄是否有 /b 目錄樹。

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