R 4.2.0办公网下install.packages无法访问CRAN仓库索引如何解决
R 4.2.0 办公网防火墙环境下CRAN装包失败排查方案
按以下优先级逐次操作测试,大部分企业网场景下的同类问题都能解决:
- 替换HTTP源为HTTPS源
R4.2部分默认配置走HTTP协议访问CRAN,企业防火墙基本都会拦截明文HTTP的外出请求,直接在安装命令里指定HTTPS源测试:install.packages("要安装的包名", repos = "https://cran.r-project.org/") - 切换为Windows原生网络下载组件
R4.2在Windows下默认用libcurl做下载,这个组件不会自动读取系统里的企业代理配置、信任根证书,和防火墙规则冲突概率极高,先运行以下命令切换到系统原生的wininet组件再重试:options(download.file.method = "wininet") - 手动补全代理配置
运行Sys.getenv(c("http_proxy", "https_proxy"))查看R是否读到了系统代理,如果返回空值,手动填入办公网分配的代理信息:
填完直接重跑安装命令即可。Sys.setenv( http_proxy = "http://办公代理IP:对应端口", https_proxy = "http://办公代理IP:对应端口" ) - 临时关闭SSL校验定位证书问题
如果前面的操作报SSL证书类错误,基本是防火墙做了HTTPS流量解密替换,R内置的证书库不信任企业自签的根证书,可临时关闭校验确认问题:
这个配置会降低连接安全性,只用来排查问题,确认原因后找IT把CRAN域名加到防火墙白名单就行,别长期关校验。options( ssl_verifyhost = 0L, ssl_verifypeer = 0L ) - 离线安装兜底
如果所有对外访问CRAN的请求都被防火墙拦死,找能正常联网的设备下载对应R4.2版本的包二进制文件和全部依赖,拷到办公设备上本地安装:install.packages("本地包文件的完整路径", repos = NULL, type = "binary")
内容的提问来源于stack exchange,提问作者markhogue
相关产品推荐
相关产品推荐

