如何在R包Description文件中指定GitHub来源依赖的特定版本?
正确配置方法
你碰到的报错是因为Remotes字段本身不支持直接附加(>= 版本号)的格式,版本约束和来源指定要拆分到两个字段分别配置,正确写法如下:
- 第一步:在
Imports字段声明版本要求,和CRAN依赖的写法完全一致
示例:Imports: remotes (>= 2.4.0), repo_name1 (>= 0.2.5), package2 - 第二步:在
Remotes字段声明GitHub来源,指定commit、tag或分支时直接在仓库路径后加@后缀拼接,不需要带版本约束
示例1:指定对应0.2.5版本的tag
示例2:指定具体commit哈希Remotes: github_username1/repo_name1@0.2.5, github_username2/repo_name2Remotes: github_username1/repo_name1@84jdjk298fkd20jkdj28ddk29dj38dj38dj38, github_username2/repo_name2
补充说明
- 该配置不需要用户额外执行手动安装依赖的命令,
remotes::install_github()、devtools::install_github()、pak等常用R包安装工具都会自动识别配置,拉取对应版本的依赖并校验版本符合要求。 - 基础
install.packages()不支持Remotes字段解析,这是官方设计,因为CRAN不接受包含Remotes字段的包提交,如果你需要将包上传CRAN,移除Remotes字段、保留Imports的版本约束即可。
内容的提问来源于stack exchange,提问作者s_marsh
相关产品推荐
相关产品推荐

