We are thrilled to announce rig 0.11.0 (and 0.10.0), with lots of new functionalities: user mode R installations, R package and project management and much more. This is the first of three blog posts about the new rig release. This post is about managing R installations and the new user mode. The second post will show how rig can help with managing R packages, and the third will focus on project management.

Full changelog on the rig web site.

New Web Site#

rig has a new web site at https://rig.r-lib.org! See this web site for installation instructions, including the new user mode install; reference documentation (also in rig help!), guides about larger topics and tutorials to get started.

The home page of the new rig web site, with a sidebar listing tutorials, guides and reference pages, and a quick start section.

User Mode R Installations#

rig can now install and manage R installations without requiring administrative privileges. rig calls this user mode. In user mode, R installations are installed in the user’s home directory rather than system-wide. System-wide installations are still the default currently, and they are called admin mode.

You may have both user mode and admin mode installations on one computer, but each rig command runs in either user mode or admin mode. The default is admin mode. See below for how to change it. Use --admin or --user to pick the mode for a single command, e.g. rig ls --admin always lists admin mode installations, and rig ls --user always lists user mode ones.

Advantages of using user mode:

  • No admin: no need for administrative privileges.
  • All Linux: works on all glibc (from glibc 2.34) and musl (from musl 1.2) based Linux systems.
  • Multiple patch versions: on macOS you can install multiple patch versions side by side.
  • Convenience: no need to use sudo or an admin account to install and manage R.

User mode is quite new, though. It is much less tested than admin mode, and you may encounter bugs or unexpected behavior more frequently. On Linux, the generic distro-agnostic builds may be slower for numerical work than builds specifically compiled for the distribution.

User mode (admin mode as well, actually) is slightly different on each operating system. Here is a table about where rig stores its files on each OS in both modes.

Platform Mode R install root Binary directory (R, Rscript, R-*)
macOS admin /Library/Frameworks/R.framework /usr/local/bin
macOS user ~/.local/share/rig/r ~/.local/bin
Linux admin /opt/R /usr/local/bin
Linux user ~/.local/share/rig/r ~/.local/bin
Windows admin C:\Program Files\R C:\Program Files\R\bin
Windows user %APPDATA%\rig\data\r %USERPROFILE%\.local\bin

You can call the new rig system dirs command to see where rig stores its various files:

❯ rig system dirs
Mode                  user
Architecture          arm64
R root                /Users/gaborcsardi/.local/share/rig/r
Binary dir            /Users/gaborcsardi/.local/bin
Config file           /Users/gaborcsardi/Library/Application Support/com.gaborcsardi.rig/config.json
Data dir              /Users/gaborcsardi/Library/Application Support/com.gaborcsardi.rig
Cache dir             /Users/gaborcsardi/Library/Caches/com.gaborcsardi.rig
Download dir          /var/folders/h9/6ct_py4s319fxt88dxn506l00000gp/T/rig-502
Logs dir              /Users/gaborcsardi/Library/Logs/com.gaborcsardi.rig
Project library root  (in-project, .rvenv/lib)

The same in admin mode:

❯ rig system dirs --admin
Mode                  admin
Architecture          arm64
R root                /Library/Frameworks/R.framework/Versions
Binary dir            /usr/local/bin
Config file           /Users/gaborcsardi/Library/Application Support/com.gaborcsardi.rig/config.json
Data dir              /Users/gaborcsardi/Library/Application Support/com.gaborcsardi.rig
Cache dir             /Users/gaborcsardi/Library/Caches/com.gaborcsardi.rig
Download dir          /var/folders/h9/6ct_py4s319fxt88dxn506l00000gp/T/rig-502
Logs dir              /Users/gaborcsardi/Library/Logs/com.gaborcsardi.rig
Project library root  (in-project, .rvenv/lib)

macOS#

On arm64 macOS rig can install both arm64 and x86_64 builds of R. The latter ones need Rosetta to run. User mode has a different, simpler naming scheme than admin mode on macOS, matching Linux and Windows. This is an example list of user mode R installations:

❯ rig ls
* name          version    aliases
------------------------------------------
  3.6.3-x86_64  (R 3.6.3)
  4.0.5-x86_64  (R 4.0.5)
  4.1.3
  4.1.3-x86_64  (R 4.1.3)
  4.2.3
  4.3.3
  4.4.3
  4.5.3                    oldrel
  4.5.3-x86_64  (R 4.5.3)  oldrel-x86_64
  4.6.0
* 4.6.1                    release
  4.6.1-x86_64  (R 4.6.1)  release-x86_64
  devel         (R 4.7.0)
  devel-x86_64  (R 4.7.0)
  next          (R 4.6.1)
  next-x86_64   (R 4.6.1)
  • The native (arm64) builds are named simply with the version number.
  • R-devel is simply named devel and the next version of R (R-patched, R-alpha, etc.) is named next.
  • The x86_64 builds are suffixed with -x86_64.
  • You can use the release alias for the most recent version of R and the oldrel alias for the previous minor release branch. E.g. the R-release quick link starts the latest version of R.

Windows#

On Windows rig installs CRAN’s R builds as a regular user in user mode. This installation writes the user’s registry settings instead of the system-wide registry settings.

The names of the R installations are the same as for admin mode. rig now supports installing x86_64 and aarch64 R builds on aarch64 Windows, and similarly to macOS, the non-native builds get a -x86_64 suffix:

PS C:\Users\Gabor Csardi> rig ls
* name          version    aliases
------------------------------------------
  4.4.3
  4.4.3-x86_64  (R 4.4.3)
  4.5.3
* 4.6.1                    release
  devel         (R 4.7.0)
  next          (R 4.6.1)

The new rig rtools command lets you manage Rtools installations. In user mode they are installed into the user’s roaming profile directory, and rig configures R and Rtools to work together correctly. On aarch64 Windows, you can install both x86_64 and aarch64 versions of Rtools.

PS C:\Users\Gabor Csardi> rig rtools ls
name  version  full-version   arch     path
------------------------------------------------------
40    4.0      4.0.3.0        x86_64   C:\Users\Gabor Csardi\AppData\Roaming\rig\data\rtools\40-x86_64
44    4.4      4.4.6459.6401  aarch64  C:\Users\Gabor Csardi\AppData\Roaming\rig\data\rtools\44
45    4.5      4.5.6768.6492  aarch64  C:\Users\Gabor Csardi\AppData\Roaming\rig\data\rtools\45

Linux#

On Linux rig installs a portable (manylinux) R build in user mode. These builds are self-contained, generic glibc (or musl) builds of R. These builds are intended to work on a wide range of Linux distributions. However, they are not as battle-tested as the builds rig uses in admin mode.

On glibc systems rig also configures the manylinux repository for CRAN, that pairs very well with the portable R builds. These packages are self-contained and compatible with most glibc-based Linux distributions:

> getOption("repos")
                                                         P3M-manylinux
"https://packagemanager.posit.co/cran/__linux__/manylinux_2_28/latest"
                                                                  CRAN
                                         "https://cloud.r-project.org"

Positron and RStudio configuration#

rig automatically configures RStudio (when running rig add and rig default), so that the rig-default R version is also the default in RStudio. On macOS and Windows this is automatic. On Linux rig puts the rig binary directory (see the table above) on the PATH in user mode, and it is generally on the PATH in admin mode. This is enough to ensure that the rig-default R version is also the default in RStudio on Linux.

Positron does not have a generic default R version like RStudio does, but you can choose a default for each workspace. rig (in rig add and rig default) updates your Positron configuration (the current user’s config file) to make sure that Positron finds all user-mode R installations.

Switching to user mode#

Call rig system user-mode to switch a previous setup from admin mode to user mode. This will reinstall your current R installations in user mode, and remove the admin mode installation. (But see its options to adjust this!)

See more about the migration at the rig homepage.

Portable Linux#

Above you have seen how rig installs portable manylinux builds in user mode. It is also possible to install them in admin mode. This can be useful for Linux systems that rig does not have native builds for. To install a portable Linux build use --platform portable:

rig add --platform portable 4.6

Moreover, if rig does not support a Linux distribution natively, it will install the manylinux (or musllinux) builds instead, assuming that they are supported, even in admin mode. With this, most Linux distributions work automatically, in both admin and user modes.

Repository management#

The rig release improved the rig repos subcommand substantially. These are the biggest changes.

P3M by default#

rig now configures Posit Public Package Manager (P3M) as a default repository, on all platforms except aarch64 Windows. (Because P3M would serve incompatible x86_64 binaries here.) This is because we found P3M more reliable and because P3M includes older package versions and has more extensive metadata.

Nevertheless you can opt out with rig add --without-repos=p3m ... at installation time, or with rig repos setup --without-repos=p3m at any time.

Custom repositories#

You can now add custom repositories to your rig configuration using rig repos add <name> <url>. For example:

rig repos add myrepo https://myrepo.example.com

You can then turn these (and also the built-in) repositories on or off using rig repos enable and rig repos disable.

Improved repository list#

The output of rig repos available is now more informative and easier to read. Type rig repos available <reponame> to get more information about a repository.

❯ rig repos available
8 repositories

Name              Default   Type       Title
-----------------------------------------------------------------------------
P3M               depends   built-in   Posit Public Package Manager
P3M-manylinux     depends   built-in   Posit Package Manager manylinux portable packages
RHUB              no        built-in   R-Hub repositories
r-universe/cran   depends   built-in   R-universe CRAN mirror
r-universe/bioc   no        built-in   R-universe Bioconductor mirror
CRAN              yes       built-in   The Comprehensive R Archive Network
CRAN-archive      depends   built-in   CRAN archive
Bioconductor      no        built-in   Open source software for Bioinformatics

Use `rig repos available <name>` to see a repository's URLs.
`depends`: a default only on some platforms, architectures or R versions.
❯ rig repos available r-universe/cran
r-universe/cran (1 URL)
R-universe CRAN mirror

R-universe's mirror of CRAN. The only repository serving arm64 Windows binary
packages.

Default      only on platforms matching aarch64-*-mingw32

URL          https://cran.r-universe.dev
Platforms    windows, *-mingw32
Archs        aarch64

Repository status#

Use rig repos status to check the status of all enabled repositories.

❯ rig repos status
6 repositories of R 4.6.1, index bin/macosx/sonoma-arm64/contrib/4.6

name              ping   status        types              updated            url
-----------------------------------------------------------------------------
P3M             601 ms   ok            source, win, mac   -                  https://packagemanager.posit.co/cran/latest
BioCsoft        233 ms   ok            source, win, mac   2026-10-01 17:08   https://bioconductor.org/packages/3.23/bioc
BioCann         120 ms   source only   source, win, mac   2026-08-01 16:49   https://bioconductor.org/packages/3.23/data/annotation
BioCexp         111 ms   source only   source, win, mac   2026-09-15 20:32   https://bioconductor.org/packages/3.23/data/experiment
BioCworkflows   111 ms   source only   source, win, mac   2026-08-01 16:39   https://bioconductor.org/packages/3.23/workflows
BioCbooks       120 ms   source only   source, win, mac   2026-08-01 16:25   https://bioconductor.org/packages/3.23/books

`ping` is the time the repository took to answer for the index above.
`types` is what the R installation's `repositories` file declares.
`source only`: this repository has no index for this platform and R version.
Note

rig does not manage repositories in Positron and RStudio sessions. Use the built-in Positron and RStudio tools instead.

Other improvements#

Avoid unneeded reinstalls#

rig add now does not reinstall an R version if it is already installed. Use --reinstall to force a reinstall.

On Windows rig now uses .exe quick links instead of .bat files. .bat files have a lot of issues with passing arguments, .exe files work much better.

Run R with R on Windows#

The new rig system fix-r-alias subcommand deletes the R alias from PowerShell, so you can now use R to start R.

rig is now signed on Windows#

Thanks to the SignPath Foundation, the rig executables and the rig installer are all signed now.

rig system blas#

The new rig system blas command lets you manage the BLAS/LAPACK library used by R on macOS.

Update and uninstall#

Use rig self update to update rig itself, and rig self uninstall to uninstall it. These commands only work if you installed rig using the install script. If you installed it with a package manager or ran the installer manually, you have to use the same package manager or uninstall it manually.

Your feedback is welcome!#

We would love to hear your thoughts, suggestions, and any issues you encounter while using rig. Please use the issue tracker for bug reports and feature requests, and the discussion forum or Posit community for general questions and discussions.

Acknowledgments#

Huge thanks to everyone who contributed to rig 0.10.0 and 0.11.0: @achubaty, @AdaemmerP, @AdrienLeGuillou, @Adrilihan, @Andryas, @bashirhamidi, @benyamins, @biocyberman, @Bisaloo, @cderv, @CGMossa, @danielloader, @dkczk, @eitsupi, @elendil95, @eliocamp, @EllaKaye, @etiennebacher, @frosforever, @gdevenyi, @ggrothendieck, @grantmcdermott, @gvelasq, @hadley, @jabenninghoff, @jameslairdsmith, @jennybc, @jeroen, @jfin4, @John15321, @jonbry, @JosiahParry, @kalenkovich, @kenahoo, @kieran-mace, @klmr, @krlmlr, @lotum-david-j, @malcolmbarrett, @mcanouil, @mhurtado13, @MilesMcBain, @mitsuki5284, @mns-nordicals, @morphatic, @Nerwosolek, @noamross, @paluigi, @robjhyndman, @rumichaska, @SaintRod, @sammieephung, @sda030, @ShixiangWang, @t-kalinowski, @tylermorganwall, @venpopov, @vikasrawal, @wzbillings, and @zivankaraman.