2010-01-14 134 views
2

升級到OS X 10.6後,我遇到了與MacPorts有關的各種特殊問題,但大多數問題已經通過根據需要重建庫來解決。有一個問題,我似乎無法通過這種方法來解決,甚至重新構建,所有端口,刪除舊的/ opt目錄完全,可能沒有任何效果:Snow Leopard上的MacPorts:rsync庫未加載libintl

$ rsync example.com:foo . 
Password: 
dyld: Library not loaded: /opt/local/lib/libintl.8.dylib 
    Referenced from: /opt/local/lib/libpopt.0.dylib 
    Reason: image not found 
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver] 
rsync error: unexplained error (code 255) at io.c(601) [Receiver=3.0.7] 

有問題的庫中存在,雖然,這是很無奈:

$ otool -L /opt/local/lib/libintl.8.dylib 
/opt/local/lib/libintl.8.dylib: 
    /opt/local/lib/libintl.8.dylib (compatibility version 9.0.0, current version 9.2.0) 
/opt/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.0.0) 
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 124.1.1) 
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 550.0.0) 

這是從gettext包,它安裝:

$ port provides /opt/local/lib/libintl.8.dylib 
/opt/local/lib/libintl.8.dylib is provided by: gettext 

$ port installed | grep gettext 
    gettext @0.17_4+universal (active) 
    p5-locale-gettext @1.05_0 (active) 

的文件是有:

$ ls -l /opt/local/lib/libintl.8.dylib 
lrw-r--r-- 1 root admin 19 Jan 12 17:22 /opt/local/lib/[email protected] -> libintl.8.0.2.dylib 
$ ls -l /opt/local/lib/libintl.8.0.2.dylib 
-rw-r--r-- 2 root admin 98736 Jan 12 17:22 /opt/local/lib/libintl.8.0.2.dylib 

我已經搜索了這類錯誤,但他們似乎都過時了。有沒有人解決過這個問題?

回答

3

您可以使用「文件」命令,看看有什麼結構都存在於dylib:

文件/opt/local/lib/libintl.8.0.2.dylib

如果只有PPC和i386存在,而你需要x86_64,那麼庫不能被加載。

+0

感謝您的提示。此問題在具有更好的10.6 x86_64兼容性的MacPorts的更高版本中得到修復。如果你從10.5升級到10.6,最好把所有的/ opt和重建廢棄掉,但記得抓住你可能擁有的任何數據庫(例如MySQL和Postgres端口)。 – tadman 2010-08-08 18:53:30