2012-08-27 38 views
16

我正在創建一個自定義R軟件包存儲庫,並且希望複製CRAN存檔結構,從而將舊版本的軟件包存儲在src/contrib/Archive/packageName/目錄中。我想使用devtools中的install_version函數(來源here),但該函數依賴於具有類似CRAN的歸檔結構,而不是具有src/contrib/中的所有程序包版本。有沒有R包倉庫管理工具?

是否有任何R軟件包存儲庫管理工具可幫助創建此目錄結構和其他相關任務(例如更新Archive.rds文件)?

這也將是很好,如果管理工具來處理在庫邊的包type邏輯,這樣我可以在Linux服務器上我的本地Mac上使用相同的install.packages()install_version()代碼(即我沒有在Mac上本地安裝時使用type="both"type="source")。

+3

你可以在R-devel郵件列表中提出這個問題(如果你還沒有這樣做的話),他們知道最好。或者甚至可以直接從CRAN維護者,即Kurt。 –

+0

謝謝,我做到了。我會盡快發佈答案。 –

回答

4

簡短回答: 不是真正用於現成的使用。

龍答: 有一對夫婦的,人們可以用它來管理自己的回購工具,但沒有一個連貫的現成的現成的生態系統呢。

CRAN維護人員使用多個腳本here來管理CRAN存儲庫,但尚不清楚它們如何一起工作或需要哪些部分來更新包索引,運行包檢查或管理目錄結構。

tools::write_PACKAGES函數可用於更新包索引,但需要在每次從存儲庫添加,更新或刪除包時更新。

M.eik Michalke創造了roxyPackagepackage,其中有自動更新給定庫的能力,安裝等開發商最近也加入到有存檔結構的能力模仿CRAN與archive_structure功能。缺點是這個軟件包不在CRAN上,如果與devtools集成,可能會更好。這也是全新的,尚未準備好廣泛使用。

最後,我創建了一個小的Ruby script,它監視給定的存儲庫,並在任何文件更改時更新包索引。但是,這是爲我的特定組織工作的,並且需要重構以供外部使用。如果有人對此感興趣,我可以使它更一般。