composer 2.5.0+ 已移除 self-update 命令,须用 php 脚本重装;全局镜像需手动配置且项目级 repositories 会覆盖;vendor、composer.lock 和缓存需同步清理以解决哈希不一致与提取失败问题。

composer self-update 命令直接报错:Command "self-update" is not defined
这是 Composer 2.5.0+ 的正常行为,不是环境异常。该命令已被官方彻底移除,任何重试或加参数都无效。
必须用 PHP 安装脚本覆盖二进制文件。先确认当前路径:which composer(常见为 /usr/local/bin/composer 或 /opt/homebrew/bin/composer)。
- Linux/macOS 全局重装:
php -r"copy('https://getcomposer.org/installer', 'composer-setup.php');" && php composer-setup.php --filename=composer --install-dir=/usr/local/bin/ && php -r"unlink('composer-setup.php');" - Homebrew 用户请把
--install-dir换成/opt/homebrew/bin/ - 用户级安装推荐:
--install-dir=$HOME/.local/bin,并确保该路径在$PATH前置(如export PATH="$HOME/.local/bin:$PATH")
重装后仍走慢速官方源,镜像配置不生效
Composer 2.5+ 默认不再信任旧式代理镜像,且全局镜像配置在项目有 repositories 字段时会被静默忽略。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(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://mirrors.aliyun.com/composer/ - 检查是否生效:
composer config -g repo.packagist输出应为完整 JSON:{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} - 若项目根目录
composer.json含"repositories": [...](哪怕为空数组),全局镜像失效——此时需在项目目录运行:composer config repo.packagist composer https://mirrors.aliyun.com/composer/
更新失败后 vendor 和 lock 文件残留导致反复报错
镜像同步延迟、dist.sha256 不一致、插件签名验证失败等场景下,仅 clear-cache 或删 vendor/ 不够——composer.lock 里存的哈希值已与新包不匹配。
- 必须同时清理:
rm -rf vendor composer.lock(Windows 用rd /s /q vendor & del composer.lock) - 临时禁用镜像避免干扰:
composer config -g --unset repos.packagist,再切回官方源:composer config -g repo.packagist composer https://packagist.org - 重新生成:
composer install(此时会拉取最新元数据,生成带正确哈希的新composer.lock) - 验证无误后再决定是否切回镜像(建议等待 30 分钟,或换华为云等同步更稳的源)
重装后命令能运行但 update/install 仍卡住或报 checksum failed
这类问题大概率是缓存目录权限错乱或 ZIP 文件损坏,clear-cache 本身可能已失效。
- 查缓存路径:
composer config --global cache-dir(通常为~/.composer/cache) - Linux/macOS 彻底重建:
rm -rf ~/.composer/cache && mkdir -p ~/.composer/cache && chmod 755 ~/.composer/cache - 若报
Failed to extract,盯住composer install -v输出末尾的Extracting vendor/xxx行,提取包名(如symfony/console),进~/.composer/cache/files/手动删对应 ZIP:ls -l *symfony*console*.zip | xargs rm -f - WSL 用户严禁使用
/mnt/c/路径存放缓存,必须用~/下原生路径
composer.lock 与 dist 包哈希的严格对齐上——跳过这些,重装十次结果一样。










