清除缓存、检查权限、禁用压缩或手动重试可解决composer“Failed to extract”错误。首先运行composer clear-cache清除损坏缓存;其次确保项目目录及/tmp等临时目录有足够权限和空间;接着可在composer.json中设置”preferred-install”: “source”避免解压;最后删除vendor/和composer.lock后重装。多数情况由此解决,若仍失败可升级Composer或检查代理。

Composer在安装或更新依赖时出现“Failed to extract”错误,通常是因为解压zip包失败。这个问题可能由多种原因引起,包括缓存损坏、权限问题、临时目录空间不足或网络传输导致的文件损坏。以下是几个有效的解决方法:
清除Composer缓存
缓存中的压缩包可能已损坏,清除后可强制重新下载。
- 运行命令:composer clear-cache 或 composer clearcache
- 之后再次执行 composer install 或 composer update
检查文件和目录权限
确保Composer有权限写入项目目录和系统临时目录。
- 确认项目根目录及 vendor/ 文件夹可写
- 检查系统临时目录(如 /tmp 或 windows 的 %TEMP%)是否有足够权限和空间
- linux/macOS 下可用 chmod 和 chown 调整权限
禁用压缩传输(跳过zip解压)
让Composer使用http直接获取文件,避免解压环节。
- 在 composer.json 中添加配置:
"config": { "preferred-install": "source", "disable-tls": false } - 或全局设置:composer config -g preferred-install source
手动删除并重试
有时部分下载的文件残留会导致冲突。
- 删除 vendor/ 目录和 composer.lock
- 运行 composer install 从头开始
基本上就这些。大多数“Failed to extract”问题通过清缓存、调整权限或切换安装方式就能解决。如果仍失败,可尝试升级Composer版本或检查网络代理设置。