安装GitHub上的DSUR.noof包遇setInternet2 defunct错误求助
解决R中
install_github报错Error: 'setInternet2' is defunct的问题 这个错误很典型,我来帮你拆解原因和解决办法:
错误原因
setInternet2()是R 3.3.x及更早版本中用于配置Windows系统网络连接方式的函数,从R 3.4.0开始它就被标记为过时(deprecated),到你使用的R 3.5.1版本已经完全被废弃(defunct),不再允许调用。你遇到这个问题,是因为当前的devtools或其依赖的remotes包中,仍有代码在尝试调用这个已经被移除的函数,这通常是依赖包版本与R版本不匹配导致的。
解决方案
方案1:直接使用remotes包安装(推荐)
devtools::install_github()底层其实是调用remotes::install_github(),直接使用remotes包可以绕开devtools中可能存在的旧代码问题:
# 先安装/更新remotes包 install.packages("remotes") # 加载包并执行安装 library(remotes) install_github("Frostarella/DSUR.noof")
方案2:更新devtools到兼容版本
如果坚持想用devtools,先确保它是适配R 3.5.1的最新版本:
# 重新安装devtools,同时安装所有依赖 install.packages("devtools", dependencies = TRUE) # 加载后重试安装 library(devtools) install_github("Frostarella/DSUR.noof")
方案3:手动设置网络下载方法
如果上述方法还是不行,可能是Windows网络配置的问题,手动指定R使用wininet下载方式(R 3.5+默认应该用这个,但可以显式设置):
# 设置下载方法 options(download.file.method = "wininet") # 再执行安装 library(devtools) # 或library(remotes) install_github("Frostarella/DSUR.noof")
额外说明
从你的sessionInfo()来看,你的remotes版本是2.0.2,devtools是2.0.1,理论上应该适配R 3.5.1,但可能存在缓存或旧配置的残留问题。优先尝试方案1,通常能快速解决问题。
内容的提问来源于stack exchange,提问作者Niko
相关产品推荐
相关产品推荐

