[R] exporting list of installed packages for import on another system?

Marc Schwartz marc_schwartz at me.com
Tue Jul 14 17:49:49 CEST 2009


On Jul 14, 2009, at 9:43 AM, Jan Theodore Galkowski wrote:

> Is it possible to export a list of installed packages from WinXP, and
> use that export to import the same set of packages on Ubuntu (Jaunty)?
> No doubt
> there is custom code that could be written, but I wonder if R 2.9.1  
> has
> anything built it to do that?  Is it as simple as moving something  
> like
> Rprofile.site from one machine to the other?
>
> I had a look at R-admin.pdf, and although it talks a lot about
> configuring on various systems, it did not address this directly.   
> Also
> looked at RSeek.
>
> Thanks.


If you are just going to replicate a standard installation with Base  
and Recommended packages, then just install R on Ubuntu (I presume  
that you will use 'apt-get'"?) and you will have the same. Review the  
following for more Ubuntu specific information:

   http://cran.r-project.org/bin/linux/ubuntu/


If there are extra packages that you have installed on Windows, then  
you can use the following to get the list:

IP <- as.data.frame(installed.packages())

MyPkgs <- subset(IP, !Priority %in% c("base", "recommended"), select =  
c(Package, Bundle))


MyPkgs will now contain a list (first column) of the packages that you  
have installed that are not part of the basic R install. In addition,  
pay attention to the 'Bundle' column in case you have installed any  
package bundles. Those would need to be installed using the Bundle  
name and not the individual package name.

Before you go too far with this however, I would check to see just how  
many packages are listed in MyPkgs. If the list is short (for some  
value of short), you may be better just manually installing the  
packages on your Ubuntu system rather than going through this process.

The question then becomes, are you going to install these on Ubuntu  
using 'apt-get' from the Ubuntu CRAN repos, or are you going to  
install the packages from CRAN using install.packages(). I suppose  
intertwined with that will be are there any packages that you have  
installed that are not yet in the Ubuntu repos.

In either case, you can save 'MyPkgs' to an R readable object file on  
Windows by using:

   save(MyPkgs, "MyPkgs.Rdata")

Copy that file over to your Ubuntu installation and use:

   load("MyPkgs.Rdata")

and you will have the MyPkgs object available there.

You can then use the list as you require.

If you are going to use install.packages() and presuming that you do  
not have any bundles installed on your Windows system, you could do  
the following after using 'sudo R' to go into R:

   load("MyPkgs.Rdata")

   install.packages(MyPkgs$Package, dependencies = TRUE)


If you are going to use 'apt-get', I would read the following as I  
noted above:

   http://cran.r-project.org/bin/linux/ubuntu/


You could feasibly create an 'apt-get' command line call using paste()  
and the system() functions along the lines of:

   CMD <- sapply(MyPkgs$Package, function(x) paste("r-cran-", x, sep =  
""))
   CMD <- paste(CMD, collapse = " ")
   CMD <- paste("apt-get", CMD)

and then use:

   system(CMD)

after using 'sudo R' to get into R.

However, I would recommend that you consider posting a query to the r- 
sig-debian list just to verify all of the above. More info at:

   https://stat.ethz.ch/mailman/listinfo/r-sig-debian

HTH,

Marc Schwartz




More information about the R-help mailing list