您如何最好地在R中封裝軟件包版本?Pinning R軟件包版本
拒絕策略1:引腳到CRAN源tar.gz
小號
- ,如果你想在最新版本的針腳它,因爲CRAN不會將尖端版的存檔不工作(杜)
拒絕策略2:使用devtools
- 不想,因爲它需要年齡編譯,並增加了很多的東西,我不想用
拒絕策略3:供應商
- 寧可無需複製所有來源
您如何最好地在R中封裝軟件包版本?Pinning R軟件包版本
拒絕策略1:引腳到CRAN源tar.gz
小號
拒絕策略2:使用devtools
拒絕策略3:供應商
爲了提供更多有關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的一些時期一些問題),但混帳回購協議似乎仍然是有問題/補丁這是非常令人鼓舞活躍。
你說「腳」的意思是不明確的,但我想你想packrat https://rstudio.github.io/packrat/控制一個項目包的版本。 –
針腳設置爲建築時要使用的特定版本。 「packrat」基本上是一個售貨庫,據我瞭解? – salient
我相信是這樣,我從來沒有真正使用它,但我知道它。出於這個原因,我把它作爲評論而不是回答。 –