如何用devtools从GitHub获取R包?Ubuntu下证书验证失败求助
解决devtools安装GitHub包的证书验证错误 & 正确使用指南
一、修复"error setting certificate verify locations"错误
你遇到的这个证书路径错误,是因为Microsoft R自带的CA证书配置在Ubuntu系统下不兼容导致的,试试下面几个方法:
方法1:临时指定系统CA证书路径
Ubuntu系统的默认CA证书文件在/etc/ssl/certs/ca-certificates.crt,安装前先设置环境变量指向这个路径:
# 设置环境变量指定系统CA证书 Sys.setenv(CURL_CA_BUNDLE = "/etc/ssl/certs/ca-certificates.crt") # 再执行安装命令 devtools::install_github("muschellij2/ms.lesion")
方法2:重新安装RCurl适配系统配置
你已经装了libcurl4-openssl-dev,可以卸载现有RCurl后重新从源码安装,让它自动适配Ubuntu的OpenSSL证书设置:
# 卸载旧的RCurl remove.packages("RCurl") # 从源码重新安装 install.packages("RCurl", type = "source")
重装完成后再尝试安装目标包,应该能解决证书问题。
方法3:临时跳过证书验证(仅测试用,不推荐)
如果上面的方法都没效果,作为临时测试方案可以关闭证书验证,但这会降低安全性,用完记得恢复设置:
# 设置忽略证书验证 options(download.file.method = "wget", download.file.extra = "--no-check-certificate") # 执行安装 devtools::install_github("muschellij2/ms.lesion") # 恢复默认设置 options(download.file.method = NULL)
二、使用devtools从GitHub安装R包的完整步骤
1. 先安装devtools(未安装的话)
如果你的环境还没有devtools,先从CRAN安装,Ubuntu系统需要先安装系统依赖库:
# 安装系统依赖(确保curl、ssl、xml的开发库都装了) sudo apt-get install libcurl4-openssl-dev libssl-dev libxml2-dev
然后在R里安装devtools:
install.packages("devtools") library(devtools)
2. 基础安装方法
直接指定GitHub仓库的「用户名/包名」即可安装最新版本:
devtools::install_github("muschellij2/ms.lesion")
3. 安装特定版本/分支
如果需要安装某个分支、标签版本或者特定commit,用ref参数指定:
- 安装指定分支:
devtools::install_github("muschellij2/ms.lesion", ref = "dev")
- 安装指定标签版本(比如v1.0.0):
devtools::install_github("muschellij2/ms.lesion", ref = "v1.0.0")
- 安装指定commit哈希:
devtools::install_github("muschellij2/ms.lesion", ref = "a1b2c3d")
4. 控制依赖安装
默认情况下devtools会自动安装包的所有依赖,如果要跳过依赖(不推荐,可能导致包无法正常使用),可以加dependencies = FALSE:
devtools::install_github("muschellij2/ms.lesion", dependencies = FALSE)
内容的提问来源于stack exchange,提问作者Kang Dong Ju




