R 4.5.1版本install.packages函数疑似Bug:DESCRIPTION文件路径解析错误
遇到这种明明包能正常安装使用,但却跳出诡异路径错误的情况,确实挺闹心的!我先帮你把问题梳理清楚,再给几个可能的排查方向和临时解决办法:
问题复现与核心异常
按照你描述的步骤:
- 用
usethis::create_package("R/pkgs/dummypkg")创建空白测试包 - 通过
devtools::build(binary = TRUE, args = c('--preclean'))生成二进制zip包 - 执行
install.packages("~/R/pkgs/dummypkg_0.0.0.9000.zip", repos = NULL, type = "win.binary")安装时,出现以下错误和警告:package ‘dummypkg’ successfully unpacked and MD5 sums checked
Error in file(con, "r") : cannot open the connection
In addition: Warning messages:
1: In packageDescription(pkgName, lib.loc = dirname(pkgPath)) :
no package 'dummypkg_0.0.0.9000.zip' was found
2: In file(con, "r") :
cannot open file '[removed]/R/pkgs/dummypkg_0.0.0.9000.zip/DESCRIPTION': No such file or directory
核心问题很明确:R在解析DESCRIPTION文件路径时,错误地直接指向了zip文件本身,而没有找到解压后自动生成的dummypkg子文件夹——但这个子文件夹明明存在,且最终安装是成功的,这种矛盾的表现确实很奇怪。
可能的排查方向与临时解决办法
换用devtools的本地安装函数
暂时可以用devtools::install_local("~/R/pkgs/dummypkg_0.0.0.9000.zip")代替install.packages(),devtools的安装流程对本地包的路径处理更成熟,大概率能避开这个路径解析的bug。检查本地R环境的路径配置
既然另一台机器相同版本没复现,可能是本地环境的某个配置冲突:- 可以先检查
Sys.getenv("R_LIBS_USER")指向的路径是否有特殊字符(比如空格、非英文字符),有时候路径含特殊字符会触发解析异常 - 尝试指定一个干净的安装路径,比如
install.packages("~/R/pkgs/dummypkg_0.0.0.9000.zip", repos = NULL, type = "win.binary", lib = "~/R/test_lib"),看是否还会出现同样的路径错误
- 可以先检查
反馈给官方社区
这种在特定环境下复现的路径解析bug,可能是R 4.5.1和RStudio 2025.09.0组合的兼容性问题。你可以:- 向R核心开发团队提交bug报告,附上完整的复现步骤、R版本、RStudio版本以及你的系统环境信息
- 到RStudio社区发帖求助,看看有没有其他用户遇到过相同的情况
临时忽略警告(应急用)
因为最终包是能用的,如果暂时不想折腾,可以用suppressWarnings(install.packages(...))把警告和错误压掉,但这只是治标不治本的办法。
如果后续你找到问题根源或者官方发布了修复,欢迎回来更新信息!其他遇到相同问题的开发者也会很感谢你的分享~




