缓存目录权限错误导致 clear-cache 无效果:linux/macos需删重建 ~/.composer/cache 并 chmod 755;windows需手动授予权限;wsl避免 /mnt/c/ 路径。

缓存目录权限错误导致 clear-cache 无效果
运行 composer clear-cache 后仍复用旧包,常见原因是缓存目录属主或权限异常——Composer 写入失败但不报错,后续 install 仍读取残留文件。Linux/macOS 下执行 composer config --global cache-dir 查出路径(通常是 ~/.composer/cache),然后手动清理并重设权限:
- 删目录:
rm -rf ~/.composer/cache - 重建并授权:
mkdir -p ~/.composer/cache && chmod 755 ~/.composer/cache - Windows 用户注意:
%APPDATA%\Composer\Cache中的子目录可能被 Windows ACL 锁定,需右键属性 → 安全 → 编辑权限,确保当前用户有“完全控制”
WSL 环境下尤其要避开 /mnt/c/ 路径,改用 ~/projects/ 等原生 Linux 路径,否则权限错乱无法根治。
只删缓存却仍解压失败?定位并删除损坏 ZIP 文件
Failed to extract 或 Corrupted zip file 错误不是网络问题,而是 ~/.composer/cache/files/ 下某个 ZIP 文件损坏(如下载中断、磁盘写异常)。composer clear-cache 会清空整个 files/,但 Composer 在重装时可能跳过校验直接复用已损坏副本——它只比对哈希,不验证 ZIP 结构。
- 盯住
composer install -v输出末尾,找Extracting vendor/symfony/console这类行,提取包名(如symfony/console) - 进缓存
files/目录,用包名模糊搜索:ls -l *symfony*console*.zip(Linux/macOS)或 PowerShell 中Get-ChildItem "$env:APPDATA\Composer\Cache\Files" -Recurse -Filter "*console*.zip" - 仅删除匹配的 ZIP,别碰
repo/和vcs/——它们不参与解压
删 ZIP 后若还报错,说明 composer.lock 里硬编码的 dist.sha256 值与新下载内容不匹配,必须同步清理 vendor/ 和 composer.lock。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
metadata 缓存滞后导致 update 拉不到新版
composer update 显示“nothing to install or update”,但 Packagist 上已有新版本,大概率是 metadata 缓存未刷新。这是因为 composer clear-cache 不强制拉取 packages.json,而 Composer 会复用 ~/.composer/cache/repo/https---packagist.org/ 下旧的 provider 映射和索引文件。
- 必须手动删掉整个 repo 子目录:
rm -rf ~/.composer/cache/repo/https---packagist.org/ - 同时删掉
vendor/composer/installed.json(当前安装快照)和composer.lock(版本锁定) - 验证是否生效:运行
composer update --dry-run -v,看到Downloading https://packagist.org/packages.json才算真正重拉元数据
私有仓库还需确认其 packages.json 是否可公开访问,且 composer.json 中 "minimum-stability" 设置不能挡住 RC 或 dev 版本。
clear-cache 命令本身卡住或静默失败
某些情况下 composer clear-cache 执行后无输出、不报错、也不清空文件,常见于 snap 安装的 Composer(Ubuntu 默认)、缓存目录被进程占用,或磁盘只读。这时命令已不可信,应跳过它,直奔文件系统操作。
- 先查真实缓存路径:
composer config --global cache-dir,别依赖默认印象 - Linux/macOS:用
lsof +D ~/.composer/cache查是否有 composer 进程正锁着文件;Windows:用 Process Explorer 搜索路径,杀掉相关句柄 - 确认路径后,强制递归删除:
rm -rf ~/.composer/cache(Linux/macOS)或rd /s /q "%APPDATA%\Composer\Cache"(Windows) - 删完立刻验证:
ls -A ~/.composer/cache应返回“no such file”,而非空目录
最易忽略的是 TMPDIR 或 /tmp 空间不足——它不归 Composer 缓存管,但解压阶段必用。磁盘紧张时,export TMPDIR="/path/to/big/disk/tmp" 并 chmod 777 才能绕过。










