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.
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
sudoor 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
develand the next version of R (R-patched, R-alpha, etc.) is namednext. - The x86_64 builds are suffixed with
-x86_64. - You can use the
releasealias for the most recent version of R and theoldrelalias for the previous minor release branch. E.g. theR-releasequick 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\45Linux#
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.6Moreover, 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.comYou 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 aarch64Repository 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.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.
.exe quick links on Windows#
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.


