composer启动时卡在“checking for updates”是因为默认向packagist.org发起http请求检查自身新版本,可通过全局配置composer config -g disable-updates true、项目级配置composer config disable-updates true或环境变量composer_disable_updates=1禁用,该设置仅影响自身版本检查,不影响依赖安装逻辑。

为什么 Composer 启动时总卡在 “Checking for updates”?
这是 Composer 在每次运行命令(如 composer install 或 composer require)时,默认发起一次后台 HTTP 请求,检查自身版本是否过期。本地开发时这个检查毫无必要,还可能因网络延迟、代理或防火墙导致命令卡住几秒甚至超时失败。
禁用自动更新检查的三种可靠方式
官方支持且无副作用的方法只有两个,第三个是常见但不推荐的“伪禁用”:
- 全局设置:
composer config -g disable-tls false❌ 错误——这关的是 TLS 验证,不是更新检查 - 正确方式一(推荐):执行
composer config -g disable-updates true,它会在全局配置~/.composer/config.json中写入"disable-updates": true - 正确方式二(项目级):在项目根目录运行
composer config disable-updates true,仅影响当前项目的composer.json的config段 - 临时绕过:加环境变量
COMPOSER_DISABLE_UPDATES=1 composer install,适合 CI 或一次性调试
注意 disable-updates 不影响依赖更新逻辑
这个名字容易误解——它只禁用 Composer 自身版本检查,完全不影响你运行 composer update 或 composer install 时解析和安装包的行为。所有依赖版本锁定、平台约束、插件加载照常工作。
如果你发现 composer update 变慢了,问题大概率出在仓库源(如 packagist.org 响应慢),这时该换镜像源,而不是调这个开关:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 国内推荐:运行
composer config -g repo.packagist composer https://packagist.phpcomposer.com(已停用)或改用https://packagist.laravel-china.org(需确认可用性) - 更稳妥的做法是用阿里云镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
验证是否生效最直接的办法
执行任意 Composer 命令后观察输出开头几行,如果不再出现类似 Checking for updates... 或 Updating dependencies(注意:后者是依赖更新,不是自身检查)字样,就说明生效了。也可以手动查配置:
运行 composer config -g | grep disable-updates,输出 "disable-updates": true 即表示全局已启用;若为空,则未设置或设为 false。
别忘了:这个配置对已安装的 Composer 版本才有效,旧版(如 1.x)不识别该字段,必须升级到 2.0+。










