2011-04-27 140 views
16

只需確認:如果我將R軟件包分發爲ZIP/TAR,那麼安裝該軟件包將不會自動下載/安裝依賴項,因爲我必須在install.packages()中設置repos = NULL並且不使用依賴項參數if repos = NULL?可能的解決方法是打包安裝腳本。那可能嗎?我在這裏完全錯過了一些東西,並且有一種機制可以從源代碼安裝並自動下載和安裝依賴項?從源代碼安裝R時的軟件包依賴關係

回答

7

您可以創建自己的存儲庫並將其設置爲查找包的位置的向量,它將從您自己的存儲庫開始,然後包含指向CRAN鏡像的鏈接。這就是我所做的,它的工作原理非常好,因爲那樣我就可以輕鬆地與其他人共享我的軟件包,並從我碰巧遇到的任何計算機上更新它們。

+0

聰明!我自己的存儲庫可以用密碼保護,否則只能確保私人訪問(對我的防火牆以外的客戶端) – SFun28 2011-04-27 13:53:10

+0

我真的不知道,對不起。我是公衆。我知道R通過http獲取軟件包,因此如果您可以限制對已批准客戶端的Web訪問權限,那麼也應該限制對您的存儲庫的訪問。 – Aaron 2011-04-27 13:58:50

+0

感謝您的建議!由於安全問題,我將避免存儲庫方法。我的軟件包與我的公司綁定在一起。維護一個IP白名單將是太多工作。我會將這個問題留出幾天,看看是否有其他解決方案 – SFun28 2011-04-28 06:02:48

5

devtools包有一個功能install。如果用於包含R程序包源代碼的目錄,它將安裝該程序包並從CRAN下載任何依賴項。

+1

由於已經編寫了這樣的代碼,所以如果R和它的事實工具('R CMD'/Rstudio)在默認情況下執行了這些操作,它肯定會很好。 – blong 2016-11-21 05:07:32

0

您可以使用

devtools::install_local(path) 

它可以自動下載所有的依賴關係。

0

如果你有Github帳戶MYNAME,把你的[R包回購mypackage的。然後請撥打devtools::install_github("myname/mypackage")。軟件包mypackage將被下載並安裝,以及在描述文件中的Imports中列出的所有依賴項。