答案是composer默认复用15分钟内未过期的本地packages.json缓存,跳过远程请求;解决需用composer update --refresh(≥2.5)强制重拉元数据,或手动删除对应repo缓存子目录。

报错不是镜像坏了,而是 Composer 读缓存没拉新元数据——composer update --refresh 是唯一对症解法,但只在 Composer ≥ 2.5 有效。
composer update --refresh 为什么能解决“Nothing to install or update”
常见错误现象:Packagist 上已发布 monolog/monolog v3.6.0,但本地执行 composer update monolog/monolog 却返回 “Nothing to install or update”。
- 根本原因不是镜像没同步,而是 Composer 默认复用
~/.composer/cache/repo/https---mirrors.aliyun.com-composer/packages.json(15 分钟内不过期),跳过网络请求 -
--refresh强制丢弃packages.json和provider-*.json缓存,从当前配置的镜像源重拉最新索引,不删 ZIP 包 - 该参数仅 Composer ≥ 2.5 支持;≤ 2.4 版本必须手动清缓存:
rm -rf $(composer config --global cache-dir)/repo/https---mirrors-aliyun-com-composer -
composer clear-cache不解决问题——它不清packages.json缓存,只清 dist 包和部分 JSON
验证镜像是否真同步了你要的包
别信网页界面或 composer diag——它默认只测 packagist.org,完全不检查你配的镜像。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 先确认当前生效镜像:
composer config -g repos.packagist.url(注意是复数repos,单数repo在 Composer 2.2+ 已失效) - 查全量索引是否更新:
curl -I https://mirrors.aliyun.com/composer/packages.json,必须返回HTTP/2 200 - 查具体包版本:
curl -s https://mirrors.aliyun.com/composer/p2/vendor/package-name.json | jq -r '.packages."vendor/package-name" | keys[]' | sort | tail -3 - 对比官方源输出:
curl -s https://packagist.org/p2/vendor/package-name.json | jq -r '.packages."vendor/package-name" | keys[]' | sort | tail -3,版本不一致即为同步延迟
项目级配置比全局更可靠,尤其防被静默覆盖
你在终端执行 composer config -g repo.packagist https://mirrors.aliyun.com/composer/,但进项目一跑 composer require,日志里却出现 Downloading https://p...——这是最常被忽略的失效原因。
- 项目根目录下
composer.json中只要存在"repositories"字段(哪怕只是空数组[]),就会彻底屏蔽全局镜像,且不提示 - 宝塔、GitHub Actions、Docker 构建中,
www或runner用户读不到你本地~/.composer/config.json - 推荐做法:进项目根目录,运行
composer config repo.packagist composer https://mirrors.aliyun.com/composer/(不加-g),它会安全合并进composer.json的repositories对象 - 若
composer.json中repositories是数组[],该命令会失败;需先手动改为对象{}再执行
稳定中文镜像地址与避坑要点
阿里云、腾讯云、华为云镜像目前均稳定可用,但配置时极易因一个字符出错而静默 fallback 到官方源。
- 阿里云:
https://mirrors.aliyun.com/composer/(末尾斜杠/必须有) - 腾讯云:
https://mirrors.cloud.tencent.com/composer/ - 华为云:
https://repo.huaweicloud.com/composer/ - 键名必须是
repo.packagist(单数,不能写成repos.packagist或repositories) - 命令中
composer是 type 值,不可省略:composer config -g repo.packagist composer https://... - URL 必须 HTTPS + 末尾
/;HTTP 会被 Composer 2.9.6 拦截,少斜杠会拼成/composerpackages.json导致 404
真正容易被忽略的是:换源后必须删掉 vendor/ 和 composer.lock 再重装,否则 lock 文件里的 hash 来自旧源,和镜像元数据不匹配会导致安装中断。










