Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Everytime I upgrade R using homebrew I need to install most packages again

Tags:

homebrew

r

R Packages are installed to /usr/local/Cellar/r/3.1.2_1/R.framework/Versions/3.1/Resources/library

Whenever I run brew upgrade r and the version of R changes I need to install most of the libraries again as the path of installation changes.

How do I upgrade without having to install everything back again?

Edit: I think this answers my question http://stackoverflow.com/questions/1401904/painless-way-to-install-a-new-version-of-r-on-windows

like image 654
BolzanoW Avatar asked Jan 09 '15 18:01

BolzanoW


2 Answers

I put .libPaths("/Users/tim/.R/packages") in my ~/.Rprofile so that packages are installed to a path that doesn't disappear after a version bump.

like image 149
Tim Smith Avatar answered Oct 19 '22 14:10

Tim Smith


Expanding on other answers by including packages from BioConductor as well as CRAN.

  1. Before install: Backup current package list.

    tmp <- installed.packages() installedpkgs <- as.vector(tmp[is.na(tmp[,"Priority"]), 1]) save(installedpkgs, file="installed_old.rda")

  2. Install new version of R

  3. Reload packages from CRAN

    load("installed_old.rda") tmp <- installed.packages() installedpkgs.new <- as.vector(tmp[is.na(tmp[,"Priority"]), 1]) missing <- setdiff(installedpkgs, installedpkgs.new) install.packages(missing) update.packages()

  4. Reload packages from BioConductor

    chooseBioCmirror() biocLite() load("installed_old.rda") tmp <- installed.packages() installedpkgs.new <- as.vector(tmp[is.na(tmp[,"Priority"]), 1]) missing <- setdiff(installedpkgs, installedpkgs.new) for (i in 1:length(missing)) biocLite(missing[i])

like image 31
keberwein Avatar answered Oct 19 '22 15:10

keberwein