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
相关产品推荐
相关产品推荐

