VSCode远程连接Ubuntu虚拟机时R环境无法安装包问题
解决Anaconda R环境无法安装R包的问题
环境信息
- 宿主机:Windows11
- 虚拟机:VMware 17 Pro
- 系统:ubuntu-22.04.3-desktop-amd64
- Anaconda配置:已安装Anaconda3,创建名为
r431的环境,包含R 4.3.1和radian,仅执行过conda init,未修改.bashrc - VSCode远程配置:通过SSH连接Ubuntu,settings.json内容如下:
{ "remote.SSH.remotePlatform": { "ubuntu2204": "linux" }, "r.bracketedPaste": true, "r.plot.useHttpgd": true, "r.rpath.linux": "/home/toxin/anaconda3/envs/r431/bin/R", "r.rterm.linux": "/home/toxin/anaconda3/envs/r431/bin/radian", "r.rterm.option": [ "--no-site-file", "--r-binary=/home/toxin/anaconda3/envs/r431/bin/R" ] }
问题描述
可以正常激活radian并运行代码,但执行r$> install.packages("stringr")时安装失败,报错信息如下:
* 正在安装*源*包‘stringi’... ** 成功解包并检查MD5和 ** 使用分段安装 /home/toxin/anaconda3/envs/r431/lib/R/bin/config: 1: eval: make: 未找到 /home/toxin/anaconda3/envs/r431/lib/R/bin/config: 1: eval: make: 未找到 /home/toxin/anaconda3/envs/r431/lib/R/bin/config: 1: eval: make: 未找到 /home/toxin/anaconda3/envs/r431/lib/R/bin/config: 1: eval: make: 未找到 /home/toxin/anaconda3/envs/r431/lib/R/bin/config: 1: eval: make: 未找到 /home/toxin/anaconda3/envs/r431/lib/R/bin/config: 1: eval: make: 未找到 Error in system2(file.path(R.home("bin"), "R"), c("CMD", "config", x), : 运行命令出错 * 正在移除‘/home/toxin/anaconda3/envs/r431/lib/R/library/stringi’ ERROR: 依赖‘stringi’ 不可用于包‘stringr’ * 正在移除‘/home/toxin/anaconda3/envs/r431/lib/R/library/stringr’ 下载的源包在以下位置: ‘/tmp/RtmpqtjmB0/downloaded_packages’ 正在更新'.Library'中的包HTML索引 正在制作'packages.html' ... 完成 警告信息: 1: In install.packages("stringr") : 包‘stringi’的安装退出状态非零 2: In install.packages("stringr") : 包‘stringr’的安装退出状态非零
解决方法
原因
报错提示make: 未找到,说明Ubuntu系统缺少基础编译工具链,而stringi等R包需要从源码编译安装,依赖make、gcc这类工具。
方案1:安装系统编译工具
在Ubuntu终端执行以下命令,安装编译依赖:
sudo apt update && sudo apt install build-essential
这个命令会安装make、gcc、g++等核心编译工具,满足R包源码编译的需求。安装完成后,重新在radian中执行install.packages("stringr")即可。
方案2:通过conda安装预编译包
如果不想安装系统编译工具,可以直接用conda安装预编译好的R包,避免源码编译步骤:
conda activate r431 conda install -c conda-forge r-stringr
内容的提问来源于stack exchange,提问作者toxin
相关产品推荐
相关产品推荐

