2014-10-20 123 views
7

升級到OS X 10.10優山美地,我開始使用library(Rcmdr) R中運行我Rcmdr包時收到以下錯誤日誌後:Rcmdr啓動錯誤(OS X 10.10)

Error : .onLoad failed in loadNamespace() for 'tcltk', details: 
    call: dyn.load(file, DLLpath = DLLpath, ...) 
    error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.1/Resources/library/tcltk/libs/tcltk.so': 
    dlopen(/Library/Frameworks/R.framework/Versions/3.1/Resources/library/tcltk/libs/tcltk.so, 10): Library not loaded: /usr/X11/lib/libXft.2.dylib 
    Referenced from: /usr/local/lib/libtk8.6.dylib 
    Reason: image not found 
Error: package or namespace load failed for 'Rcmdr' 

你能幫助我理解如何解決它?

mac os x troubleshooting沒有幫助。

回答

18

執行在終端窗口中執行以下操作:

locate libXft.2.dylib 

或者從R控制檯做到這一點:

system("locate libXft.2.dylib") 

在我的優山美地安裝它在/opt/X11/lib/libXft.2.dylib

如果你的設置是相似的,則:

sudo ln -s /opt/X11 /usr/X11 

應有助於暫時解決這個問題,但我會繼續尋找約塞米蒂[R包(因爲這將適應蘋果的文件系統結構所做的所有修改)。

注意:在我的工作Mac(小牛)這個符號鏈接已經在那裏。

+0

謝謝你的迴應!儘管.dylib在這裏: /opt/X11/lib/libXft.2.dylib /opt/local/lib/libXft.2.dylib 它現在可以工作! 你能解釋一下這個問題嗎?文件系統發生了哪些變化?他們是爲了好嗎? – user3651816 2014-10-21 07:33:22

+0

@ user3651816我所有的系統現在在優勝美地,所以我不能輕易確認,但它看起來像蘋果公司剛剛將X11從/ usr移動到/ opt,而R預計它仍然位於/ usr。如果可能的話,可能更好的解決方案是更新R的搜索路徑以包含正確的目錄(而不是此Janky符號鏈接修復),但我是R的相對新手,所以我不太確定自己該如何做。 – Matt 2015-01-27 01:49:21

+1

另一種方法是重新安裝XQuartz。蘋果公司沒有任何動作,它在安裝過程中刪除了東西(蘋果公司不再提供OS X的X11,甚至作爲附件)。 – hrbrmstr 2015-01-27 05:54:07

3

重新安裝XQuartz爲我工作。

+0

這也適用於我(截至2017/08/31,macOS'10.12.6') – 2017-08-31 17:55:44

0

我添加了從/ usr/X11到/ opt/X11的符號鏈接,這解決了沒有locate命令的問題。