先运行composer config --global repos.packagist确认全局镜像是否存在,再查项目级composer.json中的repositories字段及环境变量composer_repo_packagist,三处任一存在即生效。

怎么确认镜像配置还存在
别急着删,先看它到底在不在。Composer 镜像配置可能藏在三个地方:全局配置、项目级 composer.json、或环境变量。直接查最准:
- 运行
composer config --global repos.packagist,如果有输出(比如带"url": "https://mirrors.aliyun.com/composer/"),说明全局镜像开着 - 进项目目录,运行
composer config repos.packagist(不加--global),看项目级有没有覆盖 - 打开项目根目录的
composer.json,搜"repositories"字段——哪怕只有一行"packagist.org": false,也算干扰项 - 检查环境变量:
echo $COMPOSER_REPO_PACKAGIST(Linux/macOS)或echo %COMPOSER_REPO_PACKAGIST%(Windows),非空就优先级最高
删全局镜像必须用对键名
composer config --global --unset repos.packagist 是唯一推荐命令。写错键名等于白干:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 不是
repo.packagist(旧文档常见错误,Composer 2.x 已不识别) - 不是
repos.packagist.org(这个路径在部分版本里无效) - 更不能用
composer config --global --unset repositories——它会清空整个自定义源列表,包括你私有仓库 - 删完立刻验证:
composer config --global repos.packagist应返回Key "repos.packagist" does not exist
项目级配置容易漏删
全局删了,但 composer install 还走镜像?八成是项目 composer.json 里残留了 "repositories" 块。注意这些坑:
- 别只删
"packagist.org"子项,整块"repositories": { ... }都得删干净 - 检查是否嵌套在
"extra"或其他字段里(有些脚手架会这么干) - 删完立刻跑
composer config --list | grep repos,确保输出为空 - 再执行
composer update --dry-run -vvv,观察日志里请求的域名是不是repo.packagist.org
缓存不清理,配置等于没动
删完配置不 clear-cache,Composer 仍可能从本地缓存里读旧元数据,表现就是“明明删了还走镜像”。重点:
- 必须运行
composer clear-cache,不是dump-autoload,也不是删vendor/ - CI 环境下加
--no-interaction,否则卡住;不确定时先用--dry-run看路径对不对 - 如果缓存路径被
$COMPOSER_CACHE_DIR或 CI 配置改过,composer config --global cache-dir才是真实位置 - 某些旧版 Composer 的
vcs/目录不会被clear-cache清掉,需手动删:rm -rf ~/.composer/cache/vcs/*
composer diagnose -v 最后一行是否显示 Checking https://packagist.org/packages.json——这才是铁证。网络层劫持(如 DNS 污染)不在配置控制范围内,那是另一回事。










