Home

Awesome

The R Installation Manager

Install, remove, configure R versions.

🚀  Features <a id="id-features">

🐞  Known Issues <a id="id-known-issues">

Found another issue? Please report it in our issue tracker.

⬇️  Installing rig <a id="id-installation">

Installing rig on macOS <a id="id-macos">

You can one of our installers or our Homebrew tap.

Installing rig on macOS (installer) <a id="id-macos-installer">

Download the latest release from https://github.com/r-lib/rig/releases and install it the usual way.

Installing rig on macOS (Homebrew) <a id="id-macos-homebrew">

If you use Homebrew (Intel or Arm version), you can install rig from our tap:

brew tap r-lib/rig
brew install --cask rig

You can use x86_64 rig on Arm macs, and it will be able to install Arm builds of R. But you cannot use Arm rig on Intel macs. If you use both brew versions, only install rig with one of them.

To update rig you can run

brew upgrade --cask rig

Installing rig on Windows <a id="id-windows">

There are several possible ways to install rig on Windows: with our installer, scoop, choco or winget.

Installing rig on Windows (installer) <a id="id-windows-installer">

Download the latest release from https://github.com/r-lib/rig/releases and install it the usual way.

rig adds itself to the user’s path, but you might need to restart your terminal after the installation on Windows.

Installing rig on Windows (Scoop) <a id="id-windows-scoop">

If you use Scoop, you can install rig from the scoop bucket at cderv/r-bucket:

scoop bucket add r-bucket https://github.com/cderv/r-bucket.git
scoop install rig

To update run

scoop update rig

Installing rig on Windows (Chocolatey) <a id="id-windows-chocolatey">

If you use Chocolatey (e.g. on GitHub Actions) you can install rig with

choco install rig

and upgrade to the latest version with

choco upgrade rig

Installing rig on Windows (WinGet) <a id="id-windows-winget">

An easy way to install rig on Windows 10 and above is to use the built-in WinGet package manager. The name of the package is posit.rig.

winget install posit.rig

Note that updating a WinGet package typically takes some time, so WinGet might not have the latest version of rig.

Installing rig on Linux <a id="id-linux">

On Linux you can install rig from a DEB or RPM package, or from a tarball.

Supported Linux distributions <a id="id-supported-linux-distributions">

We use the R builds from the Posit R-builds project.

Installing rig on Ubuntu and Debian (DEB package) <a id="id-ubuntu-and-debian-deb-package">

On any Ubuntu or Debian distro, you can use our package repository to install rig. First you add our key to your config:

`which sudo` curl -L https://rig.r-pkg.org/deb/rig.gpg -o /etc/apt/trusted.gpg.d/rig.gpg

Then add the rig repository:

`which sudo` sh -c 'echo "deb http://rig.r-pkg.org/deb rig main" > /etc/apt/sources.list.d/rig.list'

If you already added both the key and the repository, then install the r-rig package (rig is a different package in Debian and Ubuntu):

`which sudo` apt update
`which sudo` apt install r-rig

Installing rig on RHEL, Fedora, Rocky Linux, Almalinux, etc. (RPM package) <a id="id-rhel-fedora-rocky-linux-almalinux-etc-rpm-package">

On most RPM based distros (except for OpenSUSE and SLES) you can install our RPM package directly:

`which sudo` yum install -y https://github.com/r-lib/rig/releases/download/latest/r-rig-latest-1.$(arch).rpm

Installing rig on OpenSUSE and SLES (RPM package) <a id="id-opensuse-and-sles-rpm-package">

On OpenSUSE and SLES use zypper instead of yum:

`which sudo` zypper install -y --allow-unsigned-rpm https://github.com/r-lib/rig/releases/download/latest/r-rig-latest-1.$(arch).rpm

Installing rig on any Linux distribution (tarball) <a id="id-linux-targz">

Download the latest releast from https://github.com/r-lib/rig/releases and uncompress it to /usr/local

curl -Ls https://github.com/r-lib/rig/releases/download/latest/rig-linux-$(arch)-latest.tar.gz |
  `which sudo` tar xz -C /usr/local

Installing auto-complete on macOS and Linux <a id="id-auto-complete">

The macOS and Linux installers also install completion files for zsh and bash.

zsh completions work out of the box.

For bash completions install the bash-completion package from Homebrew or your Linux distribution and make sure it is loaded from your .bashrc. (You don’t need to install bash from Homebrew, but you can if you like.)

⚙️  Usage <a id="id-usage">

Use rig add to add a new R installation:

rig add release

Use rig list to list the currently installed R versions, and rig default to set the default one.

Run rig to see all commands and examples.

Run rig --help and rig <subcommand> --help to see the documentation.

Command list:

rig add        -- install a new R version [alias: install]
rig available  -- List R versions available to install.
rig default    -- print or set default R version [alias: switch]
rig library    -- manage package libraries [alias: lib] (experimental)
rig list       -- list installed R versions [alias: ls]
rig resolve    -- resolve a symbolic R version
rig rm         -- remove R versions [aliases: del, delete, remove]
rig rstudio    -- start RStudio with the specified R version
rig run        -- Run R, an R script or an R project
rig sysreqs    -- manage R-related system libraries and tools (experimental) (macOS)
rig system     -- manage current installations

Run rig <subcommand> --help for information about a subcommand.

macOS rig system subcommands

rig system add-pak                 -- install or update pak for an R version
rig system allow-debugger          -- allow debugging R with lldb and gdb
rig system allow-debugger-rstudio  -- allow debugging RStudio with lldb and gdb
rig system allow-core-dumps        -- allow creating core dumps when R crashes
rig system fix-permissions         -- restrict system library permissions to admin
rig system forget                  -- make system forget about R installations
rig system make-links              -- create R-* quick links
rig system make-orthogonal         -- make installed versions orthogonal
rig system no-openmp               -- remove OpenMP (-fopenmp) option for Apple compilers
rig system setup-user-lib          -- set up automatic user package libraries [alias: create-lib]

Windows rig system subcommands

rig system add-pak                 -- install or update pak for an R version
rig system clean-registry          -- clean stale R related entries in the registry
rig system make-links              -- create R-* quick links
rig system rtools                  -- manage Rtools installations
rig system setup-user-lib          -- set up automatic user package libraries [alias: create-lib]
rig system update-rtools40         -- update Rtools40 MSYS2 packages

Linux rig system subcommands

rig system detect-platform         -- detect operating system version and distribution
rig system add-pak                 -- install or update pak for an R version
rig system make-links              -- create R-* quick links
rig system setup-user-lib          -- set up automatic user package libraries [alias: create-lib]

⛵  macOS menu bar app <a id="id-macos-menu-bar-app">

View and select the default R version in the macOS menu bar. Start RStudio or a recent RStudio project with the selected R version. Select between your package libraries.

To start the menu bar app the first time, run the Rig app in “Applications” from Finder or Spotlight, or run

open -a Rig

from a Terminal. Then you can check the “Launch at login” box in “Preferences” to start it automatically in the future.

<img src="tools/rig-app.png">

Note: if you have a lot of menu bar apps running on an M1/M2 mac, then the some of them might be under the camera area. There is no good solution for this currently, other than running less menu bar apps.

📦  Docker containers with rig (and multiple R versions) <a id="id-container">

Use the ghcr.io/r-lib/rig/r Docker container to easily run multiple R versions. It is currently based on Ubuntu 22.04 and contains rig and the six latest R versions, including R-next and R-devel. It is available for x86_64 and arm64 systems:

> docker run ghcr.io/r-lib/rig/r rig ls
* name   version    aliases
------------------------------------------
  3.6.3
  4.0.5
  4.1.3
  4.2.3             oldrel
* 4.3.1             release
  devel  (R 4.4.0)
  next   (R 4.3.1)

See this image on GitHub.

All containers

We also have other containers with rig and either R-devel and R-release preinstalled, on various Linux distros. Here is a table of all containers:

NameOSR versionTags
ghcr.io/r-lib/rig/ubuntu-22.04-multiUbuntu 22.04last 6 (daily)r, rig, multi, ubuntu-multi
ghcr.io/r-lib/rig/ubuntu-24.04-releaseUbuntu 24.04releaseubuntu-24.04
ghcr.io/r-lib/rig/ubuntu-24.04-develUbuntu 24.04devel (daily)
ghcr.io/r-lib/rig/ubuntu-22.04-releaseUbuntu 22.04releaserelease, ubuntu, ubuntu-release, ubuntu-latest, ubuntu-latest-release, ubuntu-22.04
ghcr.io/r-lib/rig/ubuntu-22.04-develUbuntu 22.04devel (daily)devel, ubuntu-devel, ubuntu-latest-devel
ghcr.io/r-lib/rig/ubuntu-20.04-releaseUbuntu 20.04releaseubuntu-20.04
ghcr.io/r-lib/rig/ubuntu-20.04-develUbuntu 20.04devel (daily)
ghcr.io/r-lib/rig/debian-12-releaseDebian 12releasedebian, debian-release, debian-latest, debian-latest-release, debian-12
ghcr.io/r-lib/rig/debian-12-develDebian 12devel (daily)debian-devel, debian-latest-devel
ghcr.io/r-lib/rig/debian-11-releaseDebian 11releasedebian-11
ghcr.io/r-lib/rig/debian-11-develDebian 11devel (daily)
ghcr.io/r-lib/rig/debian-10-releaseDebian 10releasedebian-10
ghcr.io/r-lib/rig/debian-10-develDebian 10devel (daily)
ghcr.io/r-lib/rig/fedora-40-releaseFedora 40releasefedora, fedora-release, fedora-latest, fedora-latest-release, fedora-40
ghcr.io/r-lib/rig/fedora-40-develFedora 40develfedora-devel, fedora-latest-devel
ghcr.io/r-lib/rig/fedora-39-releaseFedora 39releasefedora-39
ghcr.io/r-lib/rig/fedora-39-develFedora 39devel
ghcr.io/r-lib/rig/opensuse-15.5-releaseOpenSUSE Leap 15.5releaseopensuse, opensuse-release, opensuse-latest, opensuse-latest-release, opensuse-15.5
ghcr.io/r-lib/rig/opensuse-15.5-develOpenSUSE Leap 15.5devel (daily)opensuse-devel, opensuse-latest-devel

For convenience, we also create these tags:

TagImageDescription
ghcr.io/r-lib/rig/rubuntu-22.04-multiLast 6 R versions on latest Ubuntu.
ghcr.io/r-lib/rig/rig
ghcr.io/r-lib/rig/multi
ghcr.io/r-lib/rig/ubuntu-multi
ghcr.io/r-lib/rig/releaseubuntu-22.04-releaseLatest R release.
ghcr.io/r-lib/rig/ubuntuubuntu-22.04-releaseLatest R release on latest Ubuntu.
ghcr.io/r-lib/rig/ubuntu-22.04ubuntu-22.04-releaseLatest R release on Ubuntu 22.04.
ghcr.io/r-lib/rig/develubuntu-22.04-develR devel.
ghcr.io/r-lib/rig/ubuntu-develubuntu-22.04-develR devel on latest Ubuntu.
ghcr.io/r-lib/rig/ubuntu-24.04ubuntu-24.04-releaseLatest R release on Ubuntu 24.04.
ghcr.io/r-lib/rig/ubuntu-20.04ubuntu-20.04-releaseLatest R release on Ubuntu 20.04.
ghcr.io/r-lib/rig/debiandebian-12-releaseLatest R release on latest Debian.
ghcr.io/r-lib/rig/debian-12debian-12-releaseLatest R release on Debian 12.
ghcr.io/r-lib/rig/debian-develdebian-12-develR devel on latest Debian.
ghcr.io/r-lib/rig/debian-11debian-11-releaseLatest R release on Debian 11.
ghcr.io/r-lib/rig/debian-10debian-10-releaseLatest R release on Debian 10.
ghcr.io/r-lib/rig/fedorafedora-40-releaseLatest R release on latest Fedora.
ghcr.io/r-lib/rig/fedora-40fedora-40-releaseLatest R release on Fedora 40.
ghcr.io/r-lib/rig/fedora-develfedora-40-develR devel on latest Fedora.
ghcr.io/r-lib/rig/fedora-39fedora-39-releaseLatest R release on Fedora 39.
ghcr.io/r-lib/rig/opensuseopensuse-15.5-releaseLatest R release on latest OpenSUSE.
ghcr.io/r-lib/rig/opensuse-15.5opensuse-15.5-releaseLatest R release on OpenSUSE 15.5.
ghcr.io/r-lib/rig/opensuse-developensuse-15.5-develR devel on latest OpenSUSE.

See all container images on GitHub.

Docker container features:

For all containers:

🤝  Feedback <a id="id-feedback">

Please open an issue in our issue tracker at https://github.com/r-lib/rig/issues

❓  FAQ <a id="id-faq">

<details> <summary> Why does rig create a user package library? </summary>

Installing non-base packages into a user package library has several benefits:

</details> <details> <summary> Why does rig install pak? </summary>

To be able to install R packages efficiently, from CRAN, Bioconductor or GitHub, right from the start. pak also supports installing system libraries automatically on some Linux systems.

If you don’t want rig add to install pak, use the --without-pak option.

</details> <details> <summary> Why does rig change the permissions of the system library (on macOS)? </summary>

To make sure that you don’t install packages accidentally into the system library. See “Why does rig create a user package library?” above.

</details> <details> <summary> Why does rig set the default CRAN mirror? </summary>

To avoid the extra work the users need to spend on this.

The https://cloud.r-project.org mirror is usually better than the other, in that it is a CDN that is close to most users, and that it is updated more often.

If you want to use a different mirror, you can set the repos option in your .Rprofile, so the rig repo settings will be ignored.

You can also use the --without-cran-mirror option of rig add.

</details> <details> <summary> Why does rig set up P3M? </summary>

P3M (Posit Public Package Manager) is generally superior to a regular CRAN mirror on Windows and many Linux systems.

On Linux it includes binary packages for many popular distributions.

On Windows, it includes up to date binary packages for older R versions as well.

To avoid P3M use the --without-p3m option (or the legacy --without-rspm) option of rig add.

</details> <details> <summary> Can rig install R without admin permissions </summary>

No, currently it cannot.

</details> <details> <summary> How is rig different from RSwitch? </summary>

While there is a small overlap in functionality, rig and RSwitch are very different. I suggest you look over the features of both to decide which one suits your needs better.

If you like rig and also like the extra features of RSwitch, then you can use them together just fine: changing the default R version in RSwitch also changes it in rig and vice versa. You can use the rig cli and the RSwitch app together, or you can also use both menu bar apps at the same time.

</details>

📘   License <a id="id-license">

MIT 2021-2024 © Posit Software, PBC.