2017-07-28 161 views
0

您如何最好地在R中封裝軟件包版本?Pinning R軟件包版本

拒絕策略1:引腳到CRAN源tar.gz小號

  • ,如果你想在最新版本的針腳它,因爲CRAN不會將尖端版的存檔不工作(杜)

拒絕策略2:使用devtools

  • 不想,因爲它需要年齡編譯,並增加了很多的東西,我不想用

拒絕策略3:供應商

  • 寧可無需複製所有來源
+0

你說「腳」的意思是不明確的,但我想你想packrat https://rstudio.github.io/packrat/控制一個項目包的版本。 –

+0

針腳設置爲建築時要使用的特定版本。 「packrat」基本上是一個售貨庫,據我瞭解? – salient

+0

我相信是這樣,我從來沒有真正使用它,但我知道它。出於這個原因,我把它作爲評論而不是回答。 –

回答

1

爲了提供更多有關packrat的信息,我將其用於此目的。從website

R軟件包依賴性可能令人沮喪。你有沒有必要使用 反覆試驗來找出你需要安裝哪些R包到 使別人的代碼工作 - 然後留下這些包 永遠全球安裝,因爲現在你不知道是否你 需要他們嗎?你是否曾經更新過軟件包以便在你的 項目中的某一箇中工作,只是發現更新後的軟件包使 中的代碼停止工作?

我們構建了packrat解決這些問題。使用packrat使您的R 項目更多:

隔離:爲一個項目安裝新的或更新的軟件包不會破壞您的其他項目,反之亦然 。這是因爲packrat 爲每個項目提供了自己的私有包庫。便攜式:輕鬆 將您的項目從一臺計算機傳輸到另一臺計算機,甚至跨越 不同的平臺。 Packrat可以輕鬆安裝您的項目所依賴的包裝 。可重現性:Packrat記錄您所依賴的確切版本號爲 的包裝版本,並確保這些確切版本爲 即可隨時隨地安裝的版本。

Packrat存儲您在packrat.lock文件中使用的包的版本,然後下載該版本從CRAN每當你packrat::restore()。它的重量比devtools輕得多,但仍需要一些時間才能重新下載所有軟件包(具體取決於您使用的軟件包)。

如果你喜歡所有的源存儲在一個zip文件,你可以使用packrat::snapshot()拉下源/更新packrat.lock然後packrat::bundle()以「捆綁」的一切行動。這樣做的目的是,通過存儲在原始設計中使用的包的版本和依賴性(連同使得避免在二進制操作系統依賴性的源代碼),以使項目/研究可再現和便攜式隨時間。

還有就是我的網站鏈接到更多的信息,你可以看到在git repo當前活動。我也遇到過,在一個低於理想的方式工作,少數病例(包不CRAN的一些時期一些問題),但混帳回購協議似乎仍然是有問題/補丁這是非常令人鼓舞活躍。