Ubuntu 20.04添加R 4.0(cran40仓库)签名密钥失败求助
问题:Ubuntu 20.04安装R时密钥获取超时/无响应
按照《How To Install R on Ubuntu 20.04》教程执行以下命令时:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
返回错误:
Executing: /tmp/apt-key-gpghome.1GsKgnB078/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 gpg: keyserver receive failed: Connection timed out
尝试R官方的密钥获取命令也长时间无响应:
wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc
排查与解决方法
1. 检查基础网络连通性
先确认系统能正常访问目标域名:
ping -c 4 ubuntu.com ping -c 4 cloud.r-project.org
如果ping不通,优先排查系统网络设置、防火墙规则或路由器连接问题。
2. 更换密钥服务器或使用HTTP端口
默认密钥服务器可能连接不畅,换用其他服务器并指定HTTP端口(避开端口封锁):
# 使用MIT密钥服务器 sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 # 或使用国内Ubuntu密钥服务器 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com.cn:80 --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
3. 手动导入密钥
如果wget无响应,可手动获取密钥文件后导入:
- 用浏览器打开
https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc,复制全部密钥内容 - 在系统本地创建
marutter_pubkey.asc文件,粘贴密钥内容并保存 - 执行导入命令:
sudo apt-key add marutter_pubkey.asc
也可以尝试用curl替代wget:
curl -s https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo apt-key add -
4. 检查代理配置
如果系统使用代理,确保apt和终端工具都配置了正确的代理信息:
# 查看当前代理设置 echo $http_proxy $https_proxy # 临时设置代理(替换为你的代理地址) export http_proxy=http://your-proxy-ip:port export https_proxy=http://your-proxy-ip:port
设置完成后重新执行密钥获取命令。
5. 直接使用国内R镜像源(备选)
如果以上方法均无效,可直接添加国内可信镜像源(无需额外导入密钥):
# 添加中科大CRAN镜像源 echo "deb https://mirrors.ustc.edu.cn/CRAN/bin/linux/ubuntu focal-cran40/" | sudo tee /etc/apt/sources.list.d/cran.list # 更新apt索引 sudo apt update
内容的提问来源于stack exchange,提问作者Miles N.
相关产品推荐
相关产品推荐

