Changelog
rig 0.11.0
Custom repositories
New
rig repos addandrig repos rmcommands to add and remove your own CRAN-like package repositories, e.g. an internal CRAN mirror or an r-universe. rig stores them in its configuration file, and they work like the built-in repositories, e.g. with--with-repos.rig repos add --enable --all-versionsenables a repository for all R versions, including the ones you install later.New
rig repos enableandrig repos disablecommands to turn repositories, built-in or custom, on and off for each R version.rig now remembers the repositories enabled and disabled for each R version, with these commands or with
--with-repos/--without-repos, and applies them again onrig repos setup.rig repos setupnow asks for administrator rights if the current user cannot update the files of the R installations, e.g. in admin mode on Linux and Windows.rig pkg install,rig pkg deps,rig pkg tree,rig pkg availableandrig pkg infonow use the repositories configured for the R version, including custom ones.rig pkg deps,rig pkg tree,rig pkg availableandrig pkg infohave a new--r-versionoption.rig pkg searchstill searches CRAN only.rig pkg install,rig pkg deps,rig pkg tree,rig pkg availableandrig pkg infohave new--with-reposand--without-reposoptions, with aliases--indexand--no-index, to use other repositories for one command, without changing the setup of the R version.--with-reposalso takes repository URLs, orname=URL.rig pkgcommands now only use Bioconductor packages if the Bioconductor repositories are enabled for the R version, e.g. withrig repos enable bioconductor.rig now sets up P3M by default on macOS, and on the Linux distributions P3M has no binary packages for, where P3M is a CRAN mirror of source packages. P3M stays off on aarch64 Windows, because it only has x86_64 Windows binaries. Use
--without-repos=p3morrig repos disable p3mto turn it off.--without-repos=cran(andrig repos disable cran) now turns off CRAN completely.rig projnow implements[[repository]]entries ofrproj.tomland repository pinning.rig proj lock,rig proj sync,rig proj depsandrig proj treehave new--with-reposand--without-reposoptions to add and remove repositories for one command.
Bioconductor
rig projandrig pkgnow install Bioconductor packages, besides CRAN packages, from the Bioconductor release that belongs to the R version. CRAN and Bioconductor share one package namespace, so abioc::<package>entry inRemotes:orConfig/Needs/*is the same as<package>. Abiocentry in the[[repository]]array ofrproj.tomlpins the Bioconductor release, or turns Bioconductor off.rproj.lockis now version 5, and records the Bioconductor release of every target.rig pkg infonow shows the fullDESCRIPTIONof the current version of a Bioconductor package, e.g. its title, description and maintainer, from theVIEWSfile of its Bioconductor repository.
Inline scripts
rig runnow support self-contained scripts, that declare the packages and the R version they need in a# /// scriptcomment block. rig then runs the script in its own environment, in the cache directory, and installs R and the packages as needed.rig run --upgradeandrig run --upgrade-packageupgrade the packages of a script’s environment.New
rig proj lock --upgrade-package(-P) option, to upgrade only some packages, and keep the versionsrproj.lockpins for the rest. It also takes a version requirement, e.g.-P 'cli@>= 3.6.4', for this run only (#410).rig proj locknow keeps the versionsrproj.lockpins when it has to solve the dependencies again, e.g. afterrig proj add, as long as they still fitrproj.toml. Use--upgradeto pick the latest versions.rig proj init,rig proj addandrig proj removehave a new--scriptoption, to create and edit the# /// scriptblock of an R script, instead of a project’srproj.toml(#414).New
rig proj lock --script script.Rto lock the dependencies of a script with a# /// scriptblock intoscript.R.lock, next to the script.rig runthen installs the R and package versions of the lock file, and updates it if the block changes.rig run --lockedfails instead of updating it (#422).New
rig system script-assoccommand on Windows, to run.Rfiles with rig fromcmdand PowerShell, e.g.hello.R a b.
System requirements
rig pkg install,rig proj syncandrig runnow install the system requirements of R packages on Linux, like pak does. rig matches each package’sSystemRequirementsfield against the r-system-requirements rules, and installs the missing OS packages if it runs as root or ifsudoneeds no password. Otherwise it prints the commands to run. Source packages and distribution-specific binaries need this, manylinux binaries do not.--no-sysreqsturns this off for one run; the newsysreqs,sysreqs-sudo,sysreqs-updateandsysreqs-rules-urlconfig entries configure it;sysreqs = "print"only shows the commands.rproj.locknow records theSystemRequirementsof each package, so it is version 5. Runrig proj lockto update an older lock file.
Other new features
rig now honors the
OS_typefield of packages: a Unix-only package is not used on Windows, and a Windows-only package is not used on macOS and Linux.rig addnow has a--jsonoption. It prints information about the installed R version (or the already installed version that was kept), including whether it is a new installation and whether it is the default.rig rtools addnow has a--jsonoption. It prints information about the installed (or already installed) Rtools versions, including whether each one is a new installation.New
rig pkg searchcommand to search CRAN packages, using the same web service as the pkgsearch R package.New
rig pkg doctorcommand to find problems with the packages in a library: missing or too old dependencies, and packages compiled against another version of aLinkingTodependency (#393).rig projcommands now supportpathdependencies.rig proj initandrig proj importdo not overwrite the project’s.Renvironfile any more. rig now only manages a marked block in it, and keeps the rest of the file, so you can add your own environment variables to it. An existing.Renvironis not a conflict any more, either (#440).rig pkg install <path>is now supported.<path>can be a directory, of a source or binary package file.rig pkg installnow supports constraints. E.g. to install a specific version of a package userig pkg install '<pkg>@=<ver>'.rig proj import --forcenow correctly overwrites the existing project files.If the root project is a package,
rig proj locknow includes it in the solution, with afile://URL.It also callsrig proj exportto (re)create itsDESCRIPTIONfile andrig proj syncnow installs the root project if it is a package.rig pkg install --no-install-projectinstalls only the dependencies of the named packages, likerig proj sync --no-install-project.rig proj locknow rewrites the lock file if the list of R versions to solve for changes.New
--exclude-neweroption forrig proj lock,rig proj syncandrig pkg install, to ignore CRAN package versions published after a date, e.g.--exclude-newer 2025-06-01, or in the last few days, e.g.--exclude-newer "7 days". Projects can set it inrproj.toml, withexclude-newerin[tool.rig].Projects and scripts can now set
prefer-binaryin[tool.rig].rig proj initandrig proj importhave a new--prefer-binaryoption, to write the setting into the manifest.Projects can now set the platforms and R versions
rig proj locksolves for inrproj.toml, withplatformsandr-versionsin[tool.rig], e.g.r-versions = ["4.5", "4.6"].--platformand--r-versionoverride them.rig proj locknow also solves for source packages by defaultrig proj syncuses this target only if no other target matches the machine.rig run <script>now passes every argument after the script on to the script, including the ones starting with-, and--. A script that starts with#!, e.g.#!/usr/bin/env -S rig run, does not need an.Rextension any more (#413).rig run --rscriptdoes not pass an extra--argsargument to scripts and-eexpressions any more, socommandArgs(TRUE)only has the arguments you gave.
Windows specific changes
- The rig binaries themselves are now signed on Windows, not only the rig installer.
rig 0.10.0
Web site
- rig has a new documentation website at https://rig.r-lib.org/, including a full CLI reference and a guide to admin vs. user mode.
User mode
rig now supports a user mode on all platforms, in addition to the default admin mode. In user mode rig installs everything into the user’s home directory and never needs
sudoor administrator privileges. R goes into~/.local/share/rig/r(%APPDATA%\rig\data\ron Windows) and quick links into~/.local/bin(%USERPROFILE%\.local\binon Windows). Select the mode with the--user/--adminglobal flags, theRIG_MODEenvironment variable, or themodekey in the rig config file. The newrig system user-modecommand switches an existing admin-mode setup to user mode.On Linux, rig can now install portable R builds, for glibc- and musl-based Linux distros. If there is no distro-specific build for your platform, rig falls back to a portable build automatically.
R package management
- New
rig pkgsubcommand to query and manage R packages. Two subcommands fromrig reposmoved torig pkg:rig pkg availableandrig pkg info.rig pkg depslists the packages a package needs, in a table, andrig pkg treeshows the same dependencies as a tree.rig pkg listlists the packages installed in a library,rig pkg removedeletes packages from a library, andrig pkg installinstalls packages, and their dependencies, into a library.
Projects
New and redesigned
rig projcommands to manage isolated R projects and virtual environments:rig proj init,rig proj import,rig proj add,rig proj remove,rig proj lock,rig proj sync,rig proj status.New
rig proj treeshows the dependency closure of a project as a tree.When no version of a package matches a version requirement, e.g.
dplyr = "0.13.0", which means>= 0.13.0, < 0.14.0, the error message now says so, and lists the nearest versions that do exist. An unknown package is now reported as not available, and the error is not printed twice any more (#423).rig runnow uses the project environment, if you call it in a project directory: it starts.rvenv/bin/R, with the project’s package library and the R version the project’s lock file names, and it syncs the project first if the environment is missing or out of date. Use--no-project(or--r-version) to run the default R version instead.rig run <name>now runs a script the project declares in a[[bin]]table of itsrproj.toml, passing the remaining arguments on to the script.rig run --listlists the declared scripts.rig proj synccan now centralize project package libraries outside the project directory: set theRIG_PROJ_LIBRARY_ROOTenvironment variable or theproj-library-rootconfig key to a root directory, and each project gets its own library under it, keyed by project name and location. A compatibility symlink is left at the project’s usual.rvenv/lib.rig system dirs --library-rootreports the effective root (#372).
Windows specific
Windows builds of rig are now signed, thanks to the SignPath Foundation, https://signpath.org/.
On Windows rig now creates
.exeshims instead ofbatshims. With.exeshims it is easier to pass command line arguments toRandRscript. In particular,Rscript -e <code>now works if<code>has line breaks. Callrig system make-linksto create all.exeshims and remove the.batshims. If you hardcoded shims with a.batextension, change them to.exeor remove the extension completely (#362).New
rig system fix-r-aliassubcommand.rig rtoolsis now a top-level command (it used to berig system rtools).On Windows,
R CMD confignow works without manually putting Rtools on thePATH. So doR CMD sh,R CMD makeandrig run --cmd config.
macOS specific
rig sysreqshas been removed. It did not reliably set up a working Fortran toolchain (#262). Install gfortran from https://mac.r-project.org/tools instead.
Other new features
rig addno longer reinstalls a version that is already installed, except for R-devel and R-next. Use--reinstallfor force a re-install (#293).rig addcan now install the R version anrenv.lockfile requires, e.g.rig add renv.lockorrig add path/to/renv.lock(#294).New
rig system blascommands, to check and switch which BLAS/LAPACK library an installed R version uses on macOS, e.g. to switch to Apple’s faster Accelerate/vecLib BLAS (#212).New
rig self updateto update rig, newrig self uninstallto remove rig, if it was installed via the install script.New
rig cachecommand to inspect and manage rig’s download and build caches. rig now reflinks or hardlinks packages from the cache when possible, instead of copying them, to save disk space and time.New
rig ppmcommand queries Posit Package Manager. Newrig ppm build-logshows the build log of a package on Posit Package Manager.New
rig repos statuschecks the configured package repositories.New
rig system fix-aliasesto updateR-release,R-oldreletc. aliases (#234).rig library add,rig library default,rig library listandrig library rmhave a new--r-version(-r) option, to operate on the libraries of an R version other than the default one.New
rig system dirscommand to show the directories rig uses. With--r,--binary,--data,--cache,--download,--log,--rtools(Windows only) or--fonts(Linux only) it prints a single path, for use in scripts.New
rig configcommand to manage the rig configuration file.rig run --cmd <command> [args...]now runsR CMD <command> [args...]with the selected R version.rig run -- <flags>now passes raw arguments straight to the R process, e.g.rig run -- --vanillaorrig run -e '1+1' -- --vanilla(#249).Plain
rig run(i.e. without-e/-f/an app/--cmd) now defaults to--no-save --no-restore, so it no longer shows the “Save workspace image?” prompt on exit. Userig run -- --save --restoreto get the old behavior back (#249).
Other changes
rig add --without-p3mworks correctly again (#369).macOS user mode:
rig defaultnow sets the default R version correctly for newer RStudio versions. Also,rig system allow-debugger-rstudionow works for newer RStudio versions.rig now uses a user-dependent download directory, to avoid interference between users.
rig now does not edit the shell startup files in admin mode, like rig 0.8.1 did on macOS. rig now only does this in user mode.
rig repos availablenow prints a compact table. Newrig repos available <name>shows complete information about a single repository.rig system setup-user-lib(and itscreate-libalias) now works again.rig rstudio --config-pathis now implemented on Linux and macOS.rig now warns instead of failing when it encounters a broken R installation (#346).
rig 0.8.1
The
RIG_PLATFORMenvironment variable works correctly again (#325).rig can now install R > 4.6.0 (current R-devel) correctly on macOS.
rig 0.8.0
New
rig repossubcommand to manage R package repository setup across all installed R versions.The
--without-p3moption ofrig addis now always available, for consistency across platforms. By default P3M is on on x86_64 Windows and supported Linux distros, as before. The new--with-p3moption turns on P3M on macOS as well.rig now supports aarch64 Windows. It currently only supports installing aarch64 builds of R and Rtools on aarch64 Windows. The x86_64 build of rig also works on aarch64 Windows and installs aarch64 builds of R and Rtools. Installing and managing x86_64 builds of R on aarch64 Windows is not supported yet.
rig now supports RHEL 10 and binary compatible distributions like AlmaLinux OS 10 and Rocky Linux 10.
R installations by rig now do not set the default CRAN repositories in RStudio and Positron (#203).
rig now supports the new macOS arm64 Sonoma builds, which are are the default CRAN builds starting from R 4.6.0 (current R-devel).
rig 0.7.1
macOS packages now include completion files for elvish and fish shells (#221, @TymekDev).
rig available --list-distrosoutput now includes PPM support, whether the a distro is retired, the EOL and in the JSON format also the last R version for that distro.rig addis now better at detecting PPM support for new Linux distribution versions. In particular, new Linux distribution releases do not need a rig update to learn about PPM support. Relatedly,rig system detect-platformnow does not report PPM support. Userig available --list-distrosto see which Linux distributions have PPM binaries.rig runnow exits with the exit code of the R process (#261).Custom certificates via the
SSL_CERT_FILEenvironment variable work again (#227).rig library defaultdoes not crash now (#240).rig now uses a better way to get the user’s home directory, that works on systems without an
/etc/passwddatabase (#228).Windows: rig supports Rtools45 now.
rig 0.7.0
Bash completions work well again (#202).
rig rstudiohas a new implementation that works much better. Now it always defaults to the R version inrenv.lockfor renv projects, and can open RStudio projects or directories.New
rig available --list-rtools-versionsoption to list available Rtools versions.rig runnow does not terminate the rig process on interrupts (CTRL+C, CTRL+BREAK on Windows, SIGINT on Unix) (#187).Windows: new
rig system rtoolssubcommand to add, remove, list Rtools versions (#18).Windows: rig now supports Rtools44 on Windows.
Windows: rig now defaults to Rtools42 for R 4.2.x on Windows.
macOS:
rig rstudio <version>works again on recent macOS versions (#208).macOS: rig now always creates the
/usr/local/bin/R-*quick links with 0755 permissions (#200).Linux:
rig add --without-p3mworks again (#193).Linux:
RIG_PLATFORMworks again whensudois needed (#191).
rig 0.6.0
rig now supports RPM based distros, in addition to Debian and Ubuntu (#28). The full list of supported distros, on x86_64 and aarch64:
- Debian 10, 11, 12,
- Ubuntu 18.04, 20.04, 22.04,
- Fedora Linux 37, 38,
- OpenSUSE 15.3, 15.4,
- SUSE Linux Enterprise 15 SP3, SP4,
- CentOS 7,
- Red Hat Enterprise Linux 7, 8, 9,
- AlmaLinux 8, 9,
- Rocky Linux 8, 9. See also the new
rig available --list-distros.
New
rig availablecommand to list R versions available to install.rig available --list-distroslists the supported Linux distributions.New
rig runto run R, an R script or an R project, using the selected R version (#161).rig now works in a shell that is a subprocess or R, e.g. in the RStudio terminal (#127).
rig now works behind a proxy, on macOS and Linux, if the
https_proxyenvironment variable is set (#166).rig resolvenow has a--platformand a--archarguments, to look up available R versions for any supported platform, instead of the current one.rig ls --plainlists only the R version names, this is useful in shell scripts (#128).rig rstudionow starts RStudio with the correct working directory and project (#139, #100).macOS:
rig addnow only changes the permission for the R version that it is installing (#109).Windows:
rig rstudionow starts the correct R version, even with newer RStudio versions (#134).Windows: rig now works in PowerShell 7.
Windows: the rig installer now does not create shortcut in the start menu (#160).
Linux and macOS: rig now keeps the locales when switching to the root user, so e.g. the language does not change (#138).
Linux: rig now works properly in Oh My Zsh (#125).
Linux: rig now works around a missing
/usr/bin/sedthat happened on some distros (#119).Linux: rig now does not fail if the default R version was deleted (#124).
Linux: new subcommand
rig system detect-platformto print the detected Linux distribution and configuration.Linux: You can now set the
RIG_PLATFORMenvironment variable to override the auto-detected Linux distriution. E.g.RIG_PLATFORM=ubuntu-22.04will force Ubuntu 22.04.Linux: rig now comes with a CA certificate bundle, so it works without system certificates. If you prefer not to use it, set the
SSL_CERT_FILEenvironment variable to point to your preferred CA bundle (#176).
rig 0.5.3
rig can now install x86_64 R 4.3.0 and later on macOS.
rig now does a better job when resolving R versions.
rig now supports Rtools43 on Windows.
rig now does not try to reinstall Rtools if the same version is already installed.
rig 0.5.2
rig now always runs non-interactively on Linux from a root shell (#117).
rig now always uses
--vanillawhen running R (#120).rig now detects Deepin Linux as Debian (#111).
rig 0.5.1
rig now prints output from
apt, etc. like regular logging output on Linux.rig now supports the alises
oldrel,release,next,develinrig default,rig rm,rig rstudio, etc. (#108).
rig 0.5.0
rig can now open renv projects in RStudio, with the correct R version. Pass the renv lock file to rig:
rig rstudio .../renv.lock(#74).rig listnow prints the result as a table, and it prints the R version number as well.rig list --jsonincludes the version number, the path to the installation, and the path to the R binary.rig is now more robust when setting up the user library. In particular R will not fail to start in renv projects (#81, @krlmlr).
On macOS and Linux
rig addnow creates the user library with the right permissions, if it does not exist and pak is installed (#84).rig addnow correctly installs pak into the user library, instead of the system library, even if the user library did not exist before.
Windows
On Windows,
rig add ... --without-translationsinstalls R without message translations. This is useful if you prefer using R in English on a non-English system (#88).On Windows
rig adddoes not add a Desktop icon now by default. If want an icon, use the new--with-desktop-iconswitch (#89).On Windows, if the default version is deleted, rig updates the registry accordingly, and removes the default from there as well (#86).
New subcommand
rig system update-rtools40updates MSYS2 packages of Rtools40 on Windows (#14).
macOS
On macOS
rig addnow does not fail if it is started from an x86_64 shell, when adding an arm64 R version on M1 Macs (#79).On macOS,
rig rstudio <ver>now errors if R<ver>is not orthogonal, and the menu bar app errors as well (#90).
rig 0.4.1
rig rstudio <version>andrig rstudio <version> <project>work properly again (#77).On Windows,
rig rstudionow properly restores the default version after starting RStudio, if a non-default version was specified.
rig 0.4.0
NEW NAME
rim is now known as rig.
New features
Experimental multi-library support. See
rig library --helpfor the details.On macOS rig now includes a menu bar app that show the default R version, lets you choose between R versions and libraries, and lets you start RStudio with a specific R version, and/or a recent RStudio project. Start the app with
open -a Rig.New subcommand
rig system setup-user-libto update the R config to create the user package library when R starts up, if it does not exist. The oldrig system create-libsubcommand is now an alias of this.Better messages. rig has a
-vand-vvflag now, for extra debug and trace messages.On arm64 macOS,
rig addinstalls arm64 R by default now. (This is also true for the x86_64 build ofrig.On macOS
rig adddoes not change the default R version any more (#2).rig now supports Linux distros based on Ubuntu Bionic 18.04, Focal 20.04 and Jammy 22.04. They need to have a proper
UBUNTU_CODENAMEentry in/etc/os-release(#34).rig now sets up automated system requirements installation with pak on Linux distributions that support it: Ubuntu 18.04, 20.04 and 22.04 (on distros based on these), on both x86_64 and aarch64. (This currently needs passwordless
sudoor a root account.)All OSes create an
Rscriptlink now that runs the default R version (#20).
rim 0.3.0
New
rim rstudiocommand to open a project in RStudio with the specified R version.rim addnow performs additonal tasks, to give you an R installation that is ready to use:It installs pak for the newly added R version, it is wasn’t installed before. You can opt out of this with the
--without-pakoption. You can select the pak version to install with--pak-version.Sets the default R version after installation to the newly installed version, if no default is set.
Sets the default CRAN mirror to the cloud mirror in the system profile, after installation (#11).
Sets up RStudio Package Manager (RSPM) as the default repository, if your system is supported. See https://packagemanager.rstudio.com for more about RSPM. The systems that are supported by both RSPM and rim are Windows, and Ubuntu Linux 18.04, 20.04 and 22.04, all of them on x86_64 architectures only (#15).
rim addnow only caches downloaded files for a day.rim system add-paknow has a new option--pak-versionto specify the pak version to install (stable, rc or devel). Its--develoption is now deprecated.rim listnow marks the default R version (if any) with(default)(#38).
Windows
rim has a Chocolatey package now, so on Windows you can install it with
choco install rimand upgrade it withchoco upgrade rim.On Windows
rim default <version>now sets the default R version in the Windows Registry as well, which changes the default for RStudio. (Make sure you set the R version in RStudio to the machine’s default version in Tools -> Global Options -> Basic -> General -> R version.)
macOS
- On macOS
rim system fix-permissionsnow sets the permissions and group of theCurrentlink. Also,rim addnow callsrim system fix-permissionsfor all installed R versions, because the R installed changes the permissions of all of them.
rim 0.2.3
rim system allow-debuggerandrim system allow-core-dumpsnow work on macOS Big Sur.
rim 0.2.2
rim now supports the next version of R:
rim resolve next rim add nextThe next version of R is R-alpha, R-beta, R-rc or R-prerelease if there is an active R release process, and it is R-patched otherwise.
rim 0.2.1
Linux
rim now supports arm64 Linux, currently the following distributions: Ubuntu 18.04, 20.04 & 22.04 and Debian 9, 10 & 11.
rim now supports Debian 11, on arm64 and x86_64.
macOS
New macOS
rim systemcommands to allow debugging:rim system allow-debugger, and to allow core dumps:rim system allow-core-dumps.rim now uses better R-devel URLs on macOS, that do not fail if the daily build failed on mac.r-project.org.
Windows
rim now supports Rtools42 on Windows:
rim add rtools42.Fix resolution of older Windows installers, they were moved to another URL.
rim can now delete Rtools on Windows, e.g.:
rim rm rtools42.
rim 0.2.0
New Linux version.
On macOS rim now asks for your password for tasks that require admin access.
On Windows rim now automatically elevates to administrator privileges as needed, by re-running with gsudo. gsudo is now bundled in the Windows distribution.
New
rim system clean-registrycommand to remove leftover Windows registry entriesNew
rim system no-openmpto use the Apple compilers on macOS.rim rmnow cleans the registry on Windows.The Windows rim installer adds rim and R to the PATH on GitHub Actions.
rim listdoes not error any more if no R versions are installed.macOS now has
rim system no-openmpto fix the conpiler configurations for the Apple compilers.
rim 0.1.5
- Experimental Windows version.
rim 0.1.4
resolveandaddwork again.
rim 0.1.3
bashandzshcompletions out of the box, on macOSYou can now pass URLs
.pkginstallers torim addon macOS.
rim 0.1.2
rim lsis now a synonym ofrim list.We have macOS installers now, and they are signed and notarized.
rim 0.1.1
`rim rm now supports removing multiple versions.
rim systemcommandscreate-lib,fix-permissionsandmake-orthogonalcan be now restricted to one or more R versions.rim addnow only calls them for the newly installed R version.rim system add-pakis now implemented.
rim 0.1.0
First pre-release.