有些时候会存在需要安装特定版本 R 软件的需求,比如为了满足特定软件包的安装使用要求或减少不同平台迁移成本。但是,不同于 Windows 平台拥有便捷的 R 版本切换功能,MacOS 和 Linux 平台都存在着不同程度的安装和切换困难。因此,本文以 Ubuntu 为例分享一下 R 在 Linux 等操作系统上的特定版本安装和 rstudio-server 中 R 版本的切换。
官网提供的安装方法实际只能安装最新版,无法指定安装版本1。而官方提供的旧版本安装方法2直接旧到 3.4 和 3.6 去了...
因此,使用 Posit 提供的 deb 安装方法5,6。
# Install required dependencies
sudo apt-get update
sudo apt-get install gdebi-core
# Specify R version, download and install R
export R_VERSION=4.2.3
curl -O https://cdn.rstudio.com/r/ubuntu-2004/pkgs/r-${R_VERSION}_1_amd64.deb
sudo gdebi r-${R_VERSION}_1_amd64.deb
/opt/R/${R_VERSION}/bin/R --version
# Create a symlink to R
sudo ln -s /opt/R/${R_VERSION}/bin/R /usr/local/bin/R
sudo ln -s /opt/R/${R_VERSION}/bin/Rscript /usr/local/bin/Rscript
# config rstudio-server
vim /etc/rstudio/rserver.conf
# rsession-which-r=/usr/local/bin/R
sudo rstudio-server restart
值得注意的是,很多教程没有分清rserver.conf
和rsession.conf
的区别,如果写入了错误的配置文件会导致 rstudio-server 无法启动。事实上 rserver.conf
配置文件控制 Workbench 的 rserver 进程的行为,用来调整身份认证、HTTP 和授权选项等设置8。而 rsession.conf
配置文件被用来调整各种 RStudio Pro Session 参数9,简单的说,高级版才有用。
也可以使用手动编译的方法安装7。
sudo sed -i.bak "/^#.*deb-src.*universe$/s/^# //g" /etc/apt/sources.list
sudo apt update
sudo apt build-dep r-base
export R_VERSION=4.2.3
curl -O https://cran.rstudio.com/src/base/R-4/R-${R_VERSION}.tar.gz
tar -xzvf R-${R_VERSION}.tar.gz
cd R-${R_VERSION}
./configure \
--prefix=/opt/R/${R_VERSION} \
--enable-R-shlib \
--enable-memory-profiling \
--with-blas \
--with-lapack
make
sudo make install
wget https://repo.continuum.io/miniconda/Miniconda3-latest-$(uname -s)-$(uname -m).sh
## exemple: wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash ./Miniconda3-latest-$(uname -s)-$(uname -m).sh
## exemple: bash ./Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
## Conda-forge
conda config --add channels conda-forge
conda config --set channel_priority strict
## run
conda create -n R4.2
conda env list
conda activate R4.2
conda install r-base=4.2.3
conda install r-languageserver radian
## R
which R
# /root/miniconda3/envs/R4.2/bin/R
ll /root/miniconda3/envs/R4.2/bin/R
# 注意, 在任何情况下都不应该由用户手动写入`/usr/lib`文件夹
# ln -s /root/miniconda3/envs/R4.2/lib/R/bin/R /usr/lib/R
# rm -rf /usr/lib/R
注意,在任何情况下都不应该由用户手动写入/usr/lib
文件夹,因此千万不要用创建软连接的形式进行软件的使用。如果已经创建了并引起了 dpkg 和 apt 的报错,就删除创建的软连接。
# update indices
sudo apt update -qq
# install two helper packages we need
sudo apt install --no-install-recommends software-properties-common dirmngr
# add the signing key (by Michael Rutter) for these repos
# To verify key, run gpg --show-keys /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
# Fingerprint: E298A3A825C0D65DFD57CBB651716619E084DAB9
wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
# add the R 4.0 repo from CRAN -- adjust 'focal' to 'groovy' or 'bionic' as needed
sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
sudo apt install --no-install-recommends r-base
各种版本的 R 都可以直接下载。
Previous releases of R for Windows
可以使用 RSwitch 等软件进行设置。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。