无管理员权限下配置Windows版R 4.3与Rtools 4.3的异常问题
问题:非管理员安装Rtools43后pkgbuild无法识别,无法构建含C代码的R包
环境与背景
- 系统:企业环境Windows 10虚拟机,无管理员权限,软件仅能安装到个人目录(如
C:\Users\myusername\Programs\rtools43),无注册表写入权限 - 需求:构建包含C代码的自制R包,已安装R 4.3和Rtools43,两者均可独立运行,但devtools/pkgbuild无法识别Rtools
已尝试操作
- 将以下Rtools路径添加到Windows CMD的PATH环境变量头部:
C:\Users\myusername\Programs\rtools43\usr\bin C:\Users\myusername\Programs\rtools43\ucrt64\bin - 在Rtools43 Bash的
.bashrc中配置PATH变量,并在该环境下启动R,问题未解决
当前错误输出
在R中执行pkgbuild相关函数的结果:
> library(pkgbuild) > find_rtools() [1] FALSE > has_devel() Error: Could not find tools necessary to compile a package Call `pkgbuild::check_build_tools(debug = TRUE)` to diagnose the problem. > pkgbuild::check_build_tools(debug = TRUE) Error: Could not find tools necessary to compile a package Call `pkgbuild::check_build_tools(debug = TRUE)` to diagnose the problem. > check_compiler() [1] TRUE > check_rtools() Error: Rtools is not installed. > check_rtools(debug=TRUE) Error: Rtools is not installed.
关键矛盾点
check_compiler()返回TRUE,Sys.which("gcc")、Sys.which("make")、Sys.which("ls")、Sys.which("bash")均能返回正确路径,实际可手动编译包,但pkgbuild/devtools仍判定未安装Rtools- 怀疑pkgbuild 1.4.2版本存在问题,或Windows版R依赖注册表项识别Rtools(但理论上应优先检查PATH)
疑问
- R 4.3识别Rtools 4.3需要哪些准确路径?
has_devel()具体检测哪些内容?
内容的提问来源于stack exchange,提问作者pince-nez
相关产品推荐
相关产品推荐

