[英]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.