2017-04-20 73 views
1

是否有在用戶庫中手動安裝包的任何文件時,R.home()路徑被鎖定,不完整(無etc,沒有bin,只是library?)系統不支持炮擊執行R CMD,我認爲這是標準R所做的。[R替代install.packages()函數

我想構建現有的源碼包(來自CRAN)並安裝到用戶庫目錄中,以便我可以使用library()函數並獲取所有常用名稱空間和* .Rdx和* .Rdb文件。

目前,我正在通過install.packagestools::.build_packagetools:::.install.packages來源,使用標準的MacOS R和r來源。希望這已經以更加用戶友好的方式記錄下來,我的谷歌搜索已經錯過了它。

謝謝。

+0

您是否嘗試過使用'.libPaths(「/ new/path」,.libPaths())'手動設置路徑? – r2evans

+0

可能的重複http://stackoverflow.com/questions/7905628/r-using-package-by-unzipping-it-instead-of-installing-it – r2evans

+0

是的,謝謝,我有。問題在於R.home目錄被鎖定,並且不包含R等通常用於構建或安裝軟件包的'etc','bin'等腳本。該目錄不可寫。 –

回答

1

您不需要使用不同的install.packages方法,而只需指定用於存儲包的可寫位置並使其優先於系統默認位置。一個簡單的方法是設置一個R_LIBS環境變量。舉例來說,在我的.bashrc我有

export R_LIBS='/home/username/.local/lib/R-3.3.3' 

然後,默認情況下,所有的包都安裝在這裏。此外,這裏安裝的軟件包和系統範圍內的位置在加載時都會有先例。

您可以通過在R會話中檢查.libPaths()來驗證該位置是否正在使用。

+0

謝謝,但我正在使用R的沙盒嵌入式版本(沒有bash,沒有.bashrc,沒有環境變量),所以我不能設置它們。我在.libPaths上添加了一個可寫目錄。然後我將這個軟件包安裝在我的Mac上,tar並壓縮併發送到嵌入式設備。這適用於不需要編譯的軟件包。 –

+0

但是,我必須自己管理依賴鏈。非常感謝minicran包! –