Search code examples
rubuntudebianaptcran

Make apt install packages from a specific repository


Is there any way to have apt install a package from a specific launchpad repository?

I would like to set up a little test server and install all of the 1000+ r-cran-* packages from the cran2deb4ubuntu launchpad repository. As of last month, all packages in this repository are build for R 3.0.1. So I install a copy of R 3.0.1 and then do:

sudo add-apt-repository marutter/c2d4u
sudo apt-get update
sudo apt-get install r-cran-*

However, this will also install all of the r-cran-* packages form universe which are build for R 2.15, and hence will fail to load. Is there an easy way to install the packages only from c2d4u? Or alternatively, is there a way to blacklist the r-cran- packages in universe from apt?


Solution

  • What I ended up doing is simply install all packages and then remove the ones with an old build. I.e.

    sudo add-apt-repository ppa:marutter/c2d4u -y
    sudo add-apt-repository ppa:marutter/rrutter -y
    sudo apt-get update
    sudo apt-get install r-bioc-*
    sudo apt-get install r-cran-
    

    And then in R:

    which(installed.packages()[,"Built"] < 3.0)