答案是缓存未更新导致镜像同步延迟,“no matching package found”源于本地provider缓存(如packages.json、provider-vendor-package.json)未刷新,需手动清理对应repo缓存目录而非执行composer clear-cache。

composer show 报 “no matching package found” 不是镜像缺包,而是缓存没更新
镜像同步有延迟,composer show vendor/package 会读本地 provider 缓存(如 packages.json、provider-vendor-package.json),不是实时请求镜像。即使镜像已同步,旧缓存仍会让 Composer 认为包不存在。
- 先确认当前生效镜像:
composer config -g repos.packagist.url(注意是复数repos) - 手动验证镜像元数据是否可达:
curl -I https://mirrors.aliyun.com/composer/packages.json,必须返回HTTP/2 200 - 查具体包是否已同步:
curl -I https://mirrors.aliyun.com/composer/p/vendor/package.json,看Last-Modified时间是否接近当前时间 - 清理 provider 缓存目录(不是
clear-cache):rm -rf ~/.composer/cache/repo/https---mirrors.aliyun.com-composer(Windows 路径为%APPDATA%\Composer\cache\repo\https---mirrors.aliyun.com-composer)
运行 composer diag 看到 “Connection to https://packagist.org failed” 并不表示镜像坏了
composer diag 默认只测官方源 https://packagist.org,完全忽略你配置的镜像地址。它只检查 PHP 环境基础能力(OpenSSL、curl、系统时间等),不是镜像可用性测试工具。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 这个报错和你用的是阿里云还是腾讯镜像无关,哪怕镜像 URL 已设好,
diag依然走官方源 - 真正验证镜像,必须绕过
diag,用curl -I直接请求镜像的packages.json - 如果
curl返回 200 但composer show仍失败,基本锁定是 provider 缓存未刷新
子模块里 require 包报 “Could not find package”,大概率根本没初始化 Git 子模块
Git 子模块默认不自动检出内容,modules/my-submodule/ 目录下可能为空,导致 Composer 连 composer.json 都读不到——它根本没走到“查镜像”这步。
- 执行
git submodule status:输出含-开头或无输出,说明未初始化 - 在项目根目录运行:
git submodule update --init --recursive - 进入子模块目录,确认存在合法
composer.json(至少含name和autoload字段) - 子模块不继承父项目的镜像配置;若需统一源,应在子模块自己的
composer.json中写入repositories字段
私有包或 path 类型仓库报 “not found”,不是镜像问题,是配置没生效
Composer 默认只查 Packagist,不会主动扫描本地路径或私有 Git 仓库。如果你没在 repositories 里声明类型和地址,它就当这个包不存在。
- path 类型必须写全路径且存在有效
composer.json:"type": "path", "url": "../my-local-package" - vcs 类型仓库(如 GitHub)必须指定
"type": "vcs",不能只写 URL 给require - 私有 Git 仓库要配
auth.json或http-basic凭据,否则认证失败会静默跳过该源 - 检查
composer.json的repositories字段 JSON 格式是否合法:多一个逗号、少一个引号,整个段都会被忽略
diag 结果上浪费时间,直接查缓存路径、curl 镜像接口、进子模块目录看文件,三步就能定位绝大多数情况。










