How to use a local package repository

Often, a Revolution R Enterprise server, for security reason, does not have an internet connection over which to download and install R packages so a local repository is setup internally. This article describes configuring Revolution R to use that local package repository.

The instructions in sections 4.1 and 4.2 of the Revolution R Enterprise Installation Guide for Linux ( are generally correct though there is a mistake in the doc in the tools::write_PACKAGES command at the end of 4.2.

1. Create the parent directory of the repo. This can be any directory but in the example is /local/repos.

2. For a Linux repo, you will need the package sources (.tar.gz) in src/contrib underneath the parent repo directory (ex. /local/repos/src/contrib). You can create the src/contrib manually and manually download the tar.gz packages there or use rsync as in the guide which will mirror the entire repo and create src/contrib for you.

3. Start Revolution R and create e the PACKAGES and PACKAGES.gz index files for the repo using tools::write_PACKAGES. This should be done for the /local/repos/src/contrib directory where the src packages actually reside:
> tools:::write_PACKAGES("/local/repos/src/contrib")
Note this is different from the example in the documentation that says to create the package index files in /local/repos.

4. Configure RRE to use the local repo. Edit /usr/lib64/Revo-7.3/R-3.1.1/lib64/R/etc/ and edit or comment out the line that points to the default Revo CRAN mirror:
} else {r <- c(REVO=Revobase::getRevoRepos())}

If you do not have internet access from your RRE installation and will be using the local repo exclusively, replace this line with a pointer to only the local repo:
} else {#r <- c(REVO=Revobase::getRevoRepos())r <- c(LOCAL="/local/repos")}
Note that you specify the parent directory for the repo location, not the full /local/repos/src/contrib path.

If you have internet access and are just using a local repo for a few local packages, you can configure both repos:
} else {r <- c(REVO=Revobase::getRevoRepos(), LOCAL="/local/repos")}
Start RRE and verify the current configuration for the repo(s):
> options("repos")
If correct, test installing packages. Be sure your RRE user has rw permissions on both the full path of the local repos and the RRE library.
Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.

Article ID: 3103790 - Last Review: 11/01/2015 16:26:00 - Revision: 1.0

Revolution Analytics

  • KB3103790