簡體   English   中英

R軟件包安裝失敗,無法找到現有的dylib

[英]R package installation fails cant find existing dylib

將R安裝到自定義位置(./configure --prefix = $ HOME / RTargets / 3.3)。 一切正常,但是install.packages('devtools')失敗。 消息是:

installing via 'install.libs.R' to /Users/me/Library/R/3.3/library/stringi
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/Users/me/Library/R/3.3/library/stringi/libs/stringi.so':
  dlopen(/Users/me/Library/R/3.3/library/stringi/libs/stringi.so, 6): Library not loaded: libicui18n.58.dylib
  Referenced from: /Users/me/Library/R/3.3/library/stringi/libs/stringi.so
  Reason: image not found
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/Users/me/Library/R/3.3/library/stringi’

但是,此文件存在:

/usr/local/lib>ls -l libicui18n*
-rwxr-xr-x  1 eqiaz44  admin  2679892 Mar  2 23:50 libicui18n.58.1.dylib
lrwxr-xr-x  1 eqiaz44  admin       21 Nov 11 14:14 libicui18n.58.dylib -> libicui18n.58.1.dylib
lrwxr-xr-x  1 eqiaz44  admin       21 Nov 11 14:14 libicui18n.dylib -> libicui18n.58.1.dylib

我無法弄清楚為什么軟件包的加載過程找不到dylib文件,因為它位於默認位置。 由於它被刪除,我無法檢查stringi.so文件引用的外觀。

有沒有辦法告訴R在安裝失敗或發生這種情況的某些原因時不要刪除文件?

我嘗試了幾次以完全刪除R並重新安裝它,但是沒有運氣。 即使不將R構建為共享庫,而僅使用默認配置設置,問題仍然存在。 我確認下面的解決方案在構建標准安裝和共享庫時有效。

在這里看到倒數第二段后,我能夠使它工作

出於某種原因,R函數dyn.load(...)似乎沒有使用標准OS(Mac Sierra)庫路徑。 我可以通過修改R在加載庫時使用的路徑來使其工作。

RHOME / etc / ldpaths中腳本的頂部看起來像這樣:

if test -n ""; then 
: ${R_LD_LIBRARY_PATH=${R_HOME}/lib:}
else
: ${R_LD_LIBRARY_PATH=${R_HOME}/lib}
fi

我添加了正在加載庫的位置,重新啟動了R並安裝了軟件包

if test -n ""; then
: ${R_LD_LIBRARY_PATH=/usr/local/lib:${R_HOME}/lib:}
else
: ${R_LD_LIBRARY_PATH=/usr/local/lib:${R_HOME}/lib}
fi

當檢測到Darwin時,R configure腳本(我在3.3.1和3.3.2中嘗試過)會跳過對R庫路徑的配置。 它有一個注釋,說明腳本假定默認的OS路徑查找將正常進行,並且設置任何值都會改變其行為。

我不確定斷開連接的位置:這是dyn.load的錯誤,操作系統行為的更改還是其他原因。 通過在./configure或make階段設置變量來解決此問題可能是一種更好的方法,但是我無法解決。

采用:

./configure --prefix=$HOME/RTargets/3.3 --enable-R-shlib

設置為使用自定義目錄時,需要啟用共享庫選項。

推薦讀物: RStudio Building R從源頭開始

https://support.rstudio.com/hc/zh-CN/articles/218004217-Building-R-from-source

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM