What is the oldest R version that can be installed?
For macOS: R 3.4.0
For Linux platforms which support binaries: R 3.0.0
For Linux platforms which require source installations: Any version in principle (if it compiles successfully).
How does rcli relate to rswitch?
rcli was inspired by rswitch but is otherwise not affiliated with rswitch in any way.
Are aliases supported?
Yes, release and devel aliases are supported. These are matched via regex, hence using dev or rel will also work.
Do I need to install every R version from source on Linux?
No. rcli makes use of the R binaries from rstudio/r-builds for the respective underlying distribution.
Does rcli install all dependencies needed on Linux to run R?
No, rcli assumes that all runtime dependencies are installed. The easiest way to do so is to install the respective distribution packages first (e.g. r-base-core on Ubuntu or R on Fedora) so that all dependencies are installed and then invoke rcli to install custom versions.
Are devel versions supported?
Yes. Devel versions can be installed via rcli install devel. Internally they will be stored and labelled following their semantic version.
Is rcli able to detect existing non-rcli R installations?
rcli is able to detect existing R installations under /opt/R.
Where does rcli install the R versions into?
The root installation directory is /opt/R. This is also the root directory for the system lib of every R version, e.g. /opt/R/4.1.0-arm64/Resources/library
What is $PATH and why is it important?
The environment variablePATH lists all directories in which your shell (e.g. zsh or bash) looks for executables. If some paths are missing, your shell will not be able to find (possibly existing) executables. There are many different standard locations where executables can be found and many more reasons why some of these paths are not set within your PATH env var.
PATH is usually defined by your respective shell profile, e.g. .bashrc , .bash_profile , .zprofile and so on. If for some reason rcli reported that you're missing a certain entry in your PATH env var, you can add it in your respective profile by appending your missing path entry to the existing PATH as follows: PATH=$PATH:<the missing path> , e.g. PATH=$PATH:/usr/local/bin.


Will I still be able to use binary packages on macOS?
Yes, rcli uses the official CRAN R installer which supports the use of CRAN macOS binaries.
radian does not seem to work with x86_64 R installations on arm64 machines
radian is a Python library and if you're using Python3 on an arm64 machine, you will have the arm64 build installed. Hence, radian will only work with the R arm64 interpreters.
To use radian with an x86_64 installation of R, Python (and radian) for the x86_64 architecture would need to be installed.
I have a M1 - can I still install R for x86_64 systems?
Yes, x86_64 is supported by macOS via the "Rosetta 2" translation environment. By default, rcli will install the arm64 version of R (if possible) (R >= v4.1.0). Otherwise the x86_64 version will be installed.
To force the installation of x86_64 versions, pass the --arch x86_64 flag to rcli install.
I have a M1 - do I need to be aware of something?
On a M1 machine one can install both the arm64 and x86_64 versions of R (the latter supported via Rosetta). If you do so and plan to switch between both architectures, it is recommended not to use ccache to speed up source installations as the cache created by one of the respective R interpreters will also attempted to be used for the respective other architecture. This will not work and lead to loading failures during load-time, i.e. when calling library(<package>).
​The official macOS installation instructions from CRAN state that only one patch version per minor release can be installed. Is this also true for rcli?
This is one point where rcli tries to help: rcli enables you to install and switch (between) any patch version of an R minor version (e.g. 4.1.1 and 4.1.2). This is done by applying some symlinking magic behind the scences and outsourcing the system lib of each patch version to /opt/R/<R version>.
How does rcli actually work on macOS?
rcli installs the selected R version via the official CRAN installer and moves it Resources/ directory to /opt/R/<R version>. When switching, rcli modifies some symbolic links pointing to the "current" version of R specified at /Library/Frameworks/R.framework and links to static assets of each R version residing at /opt/R.
Unfortunately some paths in the .dylib files of R on macOS are hardcoded and point to /Library/Frameworks/R.framework resources. It is therefore not possible to have multiple "active" and "working" installations side-by-side. This is also stated and explained in the CRAN macOS manual.
Every time an R version is switched, some symlink switching is happening which takes only a few seconds. However, due to the limitations mentioned above, one cannot run a different R version than the currently active one in a background job on macOS (this is possible on Windows and Linux).


Does rcli support non-LTS releases?
Yes, if no RStudio binary is available, rcli will attempt to install R from source.
Last modified 11mo ago