必须先运行composer config -g repo.packagist确认当前全局生效镜像,输出应为标准json对象;再执行composer config -g --list获取实际配置路径,递归备份.config/composer/或.composer/目录下config.json、auth.json和keys/全部内容。

确认当前生效的镜像配置在哪
直接备份前,必须先知道 Composer 正在用哪个镜像——因为 repo.packagist 可能藏在全局或项目级,且项目级会完全屏蔽全局设置。运行 composer config -g repo.packagist 是唯一可信方式,输出应为标准 JSON 对象,例如:{"type":"composer","url":"https://mirrors.aliyun.com/composer/"}。如果返回空、null、报错 Could not find config file,说明全局未设镜像;如果返回纯 URL 字符串(如 "https://..."),说明是旧版写法,需先升级再备份。
备份必须包含哪些文件和目录
只拷贝 config.json 不够,auth 凭据和密钥缺失会导致 composer global install 失败。完整备份项包括:
-
config.json:含repo.packagist配置 -
auth.json:存储 GitHub token、私有仓库凭据等敏感信息 -
keys/目录:GPG 密钥,用于验证包签名(Composer ≥2.5 启用签名验证时必需)
路径不能硬猜:新版 Composer(≥2.0)默认用 ~/.config/composer/,旧版用 ~/.composer/。务必先执行 composer config -g --list 查实际路径。Windows 用户必须用 robocopy 递归复制,copy 或资源管理器拖拽会截断长路径和权限。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
为什么不能只备份 vendor 或 lock 文件
vendor/ 和 composer.lock 不属于“镜像源同步数据”,它们是本地安装结果,不是镜像元数据本身。镜像源同步的核心数据是缓存下来的 packages.json 和 provider 元数据,存在 ~/.composer/cache/repo/ 下(如 https---mirrors-aliyun-composer 子目录)。但这些缓存是临时的、可重建的,不建议作为备份目标——它可能已损坏、过期或与当前配置不匹配。真正需要备份的是“配置源头”(config.json 等),而不是下游产物。
备份后如何验证是否可用
备份完成不等于能用。验证要点有两个:
- 检查
auth.json是否被正确复制:运行composer global diagnose,若提示Authentication required或GitHub API rate limit错误,说明auth.json缺失或权限不对 - 还原后测试镜像是否真生效:删掉
~/.composer/cache/repo/,再运行composer config -g repo.packagist确认输出仍是有效 JSON;然后composer global show --installed,观察日志中是否出现镜像域名(如mirrors.aliyun.com)
最容易被忽略的是 keys/ 目录——它不常被提及,但在启用 security.signature true 的环境中,缺它会导致签名验证失败,降级为无校验模式,安全链就断了。










