You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hyperledger Fabric 1.1:添加第三方组织时jq安装失败求助

解决eyfn.sh脚本安装jq失败的DNS解析问题

你遇到的是典型的DNS解析失败问题,导致Ubuntu系统无法连接官方软件源,进而没法安装jq工具。下面是几个针对性的解决步骤:

1. 排查容器内的DNS连通性

首先确认是脚本运行的Docker容器里DNS出了问题:

  • 进入出问题的容器(先通过docker ps找到容器ID/名称):
    docker exec -it <容器ID/名称> /bin/bash
    
  • 测试域名解析:
    ping archive.ubuntu.com
    

如果ping不通,说明DNS配置有问题,直接修改容器内的DNS配置:

echo "nameserver 8.8.8.8" > /etc/resolv.conf

这里用的是谷歌公共DNS,也可以换成国内的114.114.114.114。

2. 替换为国内Ubuntu源(备选方案)

如果DNS改了还是不行,大概率是国内网络访问官方源太慢或者被限制,直接换成国内镜像源:

  • 备份原源文件:
    cp /etc/apt/sources.list /etc/apt/sources.list.bak
    
  • 写入阿里云的Xenial版本源:
    cat > /etc/apt/sources.list << EOF
    deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
    EOF
    
  • 更新源并安装jq:
    apt update && apt install -y jq
    

3. 修改脚本避免重复问题

如果每次运行./eyfn.sh up都遇到这个问题,可以从脚本根源解决:

  • 找到脚本中启动容器的命令,添加--dns 8.8.8.8参数,强制容器使用指定的DNS服务器;
  • 或者在脚本中安装jq的步骤前,先替换软件源,再执行安装命令。

4. 检查宿主机的网络配置

如果容器的DNS是继承宿主机的,那先确认宿主机本身的DNS是否正常:

  • 修改宿主机的/etc/resolv.conf,添加nameserver 8.8.8.8;
  • 或者在宿主机的网络设置里,把DNS服务器改成公共DNS地址。

这个问题的核心就是系统无法解析Ubuntu官方源的域名,只要解决了DNS或者替换成可用的源,就能顺利安装jq了。

内容的提问来源于stack exchange,提问作者Sarageorge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:04:28