簡體   English   中英

如何安裝和管理許多版本的R包

[英]How to install and manage many versions of R packages

我正在用R開發一個可重復計算的框架。我正在努力解決的一個問題是一些R代碼可能在一個包的版本XY-Z中完美運行,但是為什么你試圖在3年后重現它,這個包有更新,一些功能被更改,代碼不再運行。 此問題也會影響使用包的Sweave文檔。

自信地重現結果的唯一方法是安裝原始作者使用的R版本和軟件包版本。 如果這是一個案例,可以從CRAN檔案中提取內容並安裝適當的版本。 但對於我的框架,這是不切實際的,我需要預先安裝軟件包版本。

現在假設我將自己限制為單個版本的R,例如2.14。 安裝許多版本的R軟件包的實用方法是什么,以便我可以動態加載它們? 我想我可以為每個包的每個版本創建單獨的庫目錄,然后在加載它們時使用自定義lib.loc參數。 但這會很混亂。 任何提示或以前的嘗試做類似的事情?

我的框架在Ubuntu服務器上運行。

您可以使用版本安裝軟件包(例如,重命名為foo_1.0目錄而不是foo ),並將要重新創建給定R +軟件包快照的版本軟鏈接到一個庫中。 顯然,這些包實際上可以存在於一個單獨的樹中,所以你可以擁有library.projectX/foo - > library.all/foo/1.0

操作系統為您提供了更多完全分離的句柄,Debian / Ubuntu堆棧作為大量可用的句柄。 我玩過的兩個是

  • chroot環境:我們使用它來完成與主機相同的構建環境。 例如,我生成的所有Debian上傳都是在我的amd64 Ubuntu服務器上托管的i386 pbuilder chroot中構建的。 Chroot是一個非常強大的Unix系統調用。 Chroots,特別是構建在它上面的pbuilder系統(用於Debian軟件包構建)意味着無頭操作。

  • 虛擬機:這為您提供了充分的通用性。 我不那么強大的盒子可以輕松處理三個虛擬機:Debian i386,Ubuntu i386以及Windoze XP。 為此,我目前使用KVM和libvirt; 這是Linux特有的。 我過去也使用過VirtualBox和VMware。

我會嘗試修改DESCRIPTION文件,並通過添加版本號更改字段“Package”。

例如,您從CRAN頁面(http://cran.r-project.org/web/packages/pls/)下載包源a。 將壓縮文件(pls_2.3-0.zip)解壓縮到目錄(“pls /”)。 以下步驟是更改DESCRIPTION(“pls / DESCRIPTION”)中的包名稱,並使用R命令'R CMD INSTALL pls /'進行安裝,其中'pls /'是​​包含修改后的DESCRIPTION文件的包源的路徑。

使用R庫路徑對我來說似乎是一件危險的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM