Resolving dependencies卡住主因是DNS解析失败或慢,非网络延迟;应禁用IPv6(COMPOSER_NO_IPV6=1)、更换DNS(如223.5.5.5)、配合hosts映射(如118.31.67.205 mirrors.aliyun.com)三者并用,且必须与镜像源配置协同生效。

Composer search/install 卡在 Resolving dependencies 或反复重试,大概率不是网速问题,而是 DNS 解析失败或慢——禁用 IPv6 + 换 DNS + hosts 映射三招并用,能直接砍掉 3–8 秒无效等待。
为什么 Resolving dependencies 会卡住?
这一步 Composer 根本没发 HTTP 请求,只在查域名(比如 mirrors.aliyun.com)对应的 IP 地址。DNS 解析失败、超时、返回 IPv6 地址后连不上,都会表现为“不动”或报 Could not resolve host。
常见现象包括:
- 执行
composer install卡在Resolving dependencies超过 10 秒 -
composer diagnose显示Repo packagist.org: OK,但实际请求仍走官方源 - 日志里出现
[2a02:fc00::1]:443这类 IPv6 地址连接尝试
COMPOSER_NO_IPV6=1 是最稳的 DNS 层过滤方案
它在 Composer 2.2+ 原生支持,解析阶段就跳过所有 IPv6 地址,不依赖 cURL 版本,也不改系统配置。
实操建议:
- Linux/macOS:运行
export COMPOSER_NO_IPV6=1,再执行命令;或写入 shell 配置文件永久生效 - Windows CMD:
set COMPOSER_NO_IPV6=1 && composer install - Windows PowerShell:
$env:COMPOSER_NO_IPV6="1"; composer install - CI/CD 中推荐设为环境变量,避免污染项目配置
注意:CURL_IPRESOLVE=4 是备选,但要求 libcurl ≥ 7.19.4 且 PHP 编译启用了 IPv6,否则静默失效。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
换 DNS 和 hosts 映射要配合镜像源一起用
只换 DNS 不配镜像,还是得解析 repo.packagist.org;只配镜像不优化 DNS,mirrors.aliyun.com 解析照样慢。
推荐组合:
- 系统 DNS 改为
223.5.5.5(阿里)或114.114.114.114(114 DNS),提升解析成功率 - 手动加 hosts 映射(仅当 DNS 仍不稳定时):
118.31.67.205 mirrors.aliyun.com - 验证是否生效:运行
dig mirrors.aliyun.com @223.5.5.5,应秒回 A 记录;再curl -I https://mirrors.aliyun.com/composer/packages.json应返回200 OK
别硬编码 packagist.org 到 hosts——它已下线,映射了也没用,还可能干扰其他工具。
本地缓存不能替代 DNS 优化
composer clear-cache 清的是包文件和元数据,不影响 DNS 解析过程;cache-files-dir 配得再快,第一次解析失败照样卡住。
容易被忽略的点:
- Docker 容器里默认用
8.8.8.8或宿主机 DNS,常导致解析慢,需在/etc/docker/daemon.json中显式设"dns": ["223.5.5.5"] - 企业内网可能屏蔽
mirrors.aliyun.com的 DNS 查询,手机热点一试便知 - hosts 映射必须用 IPv4 地址,IPv6 地址(如
240e::)在禁用 IPv6 后反而可能引发 fallback 异常

















