有root权限时用系统包管理器安装最稳妥,无权限则首选Miniconda;无论哪种方式都必须配置CRAN国内镜像并合理设置R包安装路径。
R 在 Linux 上的安装方式不止一种,但是否拥有 root 权限,直接决定你该走哪条路。没权限就别硬试 sudo apt install r-base,会卡在密码输入环节;有权限却用源码编译,纯属浪费时间。
有 root 权限时:用系统包管理器最稳
适用于 Ubuntu/Debian、CentOS/RHEL 等主流发行版,安装快、依赖自动解决、路径标准、后续 RStudio Server 也认得。
-
sudo apt update && sudo apt install r-base r-base-dev(Ubuntu/Debian) -
sudo dnf install R R-devel(Fedora/CentOS 8+) - 装完验证:
R --version和which R,输出应为/usr/bin/R或类似路径 - 注意:
r-base-dev或R-devel必须装——否则后续install.packages()编译 C/Fortran 包(如data.table、ggplot2)会报错make: gfortran: Command not found
没 root 权限时:Miniconda 是唯一靠谱选择
手动编译 R 看似自由,实则九成失败:缺 libreadline、libbz2、zlib、gfortran……每个都得自己编译再 ./configure --prefix=... 指定路径,还容易漏掉 -Wl,-rpath 导致运行时报 libR.so: cannot open shared object file。
- 下载并静默安装 Miniconda:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh && bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda - 初始化 shell:
$HOME/miniconda/bin/conda init bash,然后source ~/.bashrc - 创建专属 R 环境:
conda create -n r441 -c conda-forge r-base=4.4.1 r-essentials - 激活后直接运行:
conda activate r441 && R—— 此时install.packages("dplyr")不会报系统库缺失,因为所有依赖已打包进环境
无论哪种安装,CRAN 镜像必须配,否则 install.packages() 卡死
默认 CRAN 源在国外,国内用户不换源,install.packages("tidyverse") 可能等 10 分钟无响应,最后超时失败。
Trae linux
Trae Linux 官方版本现已全面上线,开发者可直接访问 Trae 官网(trae.cn 国内版或 trae.ai 国际版)获取专属安装包。该版本完美适配主流 Linux 发行版,提供 .deb(适配 Ubuntu/Debian)、.rpm(适配 RHEL/Fedora)以及通用 .tar.gz 格式,并全面支持 x64 与 ARM64 架构。
- 临时生效(当前 R 会话):
options(repos = c(CRAN = "https://mirrors.tuna.tsinghua.edu.cn/cran/")) - 永久生效(推荐):在
~/.Rprofile中写入:options(repos = c(CRAN = "https://mirrors.tuna.tsinghua.edu.cn/cran/"))
options(download.file.method = "libcurl") - 注意:
.Rprofile文件必须是 UTF-8 编码,且不能有 BOM;若用vi创建,保存前执行:set nobomb
R 包安装路径混乱?别碰 /usr/lib/R/site-library
系统级库路径(如 /usr/lib/R/site-library)需要 root 权限写入。普通用户强行 sudo R 再装包,会导致权限混杂、后续更新失败,甚至污染整个系统 R 环境。
- 正确做法:用
.libPaths()查看当前有效库路径,优先确保第一个是用户可写的,例如:~/R/x86_64-pc-linux-gnu-library/4.4 - 若不是,加到
~/.Rprofile开头:.libPaths(c("~/R/library", .libPaths())) - 验证:
R -e ".libPaths()",输出第一项应为你指定的路径
真正麻烦的从来不是“怎么装”,而是“装完之后谁来管路径、镜像、权限和多版本共存”。这些细节不提前理清,后面每装一个包都在埋雷。