0

0

如何处理Composer因磁盘空间不足(No space left on device)导致的失败? (系统维护)

尼克

尼克

发布时间:2026-01-12 16:16:03

|

144人浏览过

|

来源于php中文网

原创

运行 composer clear-cache 可直接释放 Composer 缓存空间,它删除 ZIP 包、dist 包和安装器缓存,不影响已安装项目;需先用 du -sh 或 dir /s 查看缓存大小,权限错误时应终止锁定进程。

如何处理composer因磁盘空间不足(no space left on device)导致的失败? (系统维护)

清理 Composer 缓存目录释放空间

Composer 本身不自动清理旧包缓存,~/.composer/cache(Linux/macOS)或 %APPDATA%\Composer\cache(Windows)长期积累可能占数 GB 空间。运行 composer clear-cache 是最直接的释放方式,它会删除所有已下载的 ZIP 包、已解压的 dist 包和已生成的安装器缓存。

  • 执行前可先用 du -sh ~/.composer/cache(Linux/macOS)或 dir /s %APPDATA%\Composer\cache(Windows)确认缓存大小
  • clear-cache 不影响已安装的项目依赖,只清本地缓存
  • 若提示权限错误,说明某些缓存文件被其他进程锁定(如正在运行的 composer install),需先终止相关进程

跳过 vendor 目录重建避免临时磁盘暴增

composer updatecomposer install 失败并报 No space left on device,常见原因是 Composer 在 vendor/ 同级目录创建临时解压目录(如 vendor/composer/xxxxx),再原子替换。如果磁盘剩余空间小于待安装包解压后体积,就会失败。

  • 改用 composer install --no-plugins --no-scripts 可减少中间步骤和临时文件生成
  • 确保 vendor/ 所在分区有至少 2× 当前 vendor/ 大小的空闲空间(解压 + 原始 ZIP + 重命名开销)
  • 若磁盘确实紧张,可临时将 vendor/ 移到另一分区,用符号链接回原位:
    mv vendor /mnt/bigdisk/myproject-vendor
    ln -s /mnt/bigdisk/myproject-vendor vendor

限制 Composer 下载并发与压缩级别降低 I/O 压力

默认 Composer 并发下载 4 个包,并使用 zlib 最高压缩比解压 ZIP,这对低内存或小磁盘设备很不友好。可通过配置降低资源峰值占用:

ClipDrop Relight
ClipDrop Relight

ClipDrop推出的AI图片图像打光工具

下载
  • 设置并发数为 1:composer config -g process-timeout 3600 && composer config -g use-include-path false && composer config -g github-protocols ["https"] && composer config -g cache-dir "/tmp/composer-cache"(再配合 COMPOSER_MEMORY_LIMIT=-1 防 OOM)
  • 强制使用更轻量的解压方式:在 composer.json 中添加
    "config": {
    "fxp-asset": {
    "installer-paths": {"npm-asset-library": "assets/npm"}
    },
    "discard-changes": true,
    "preferred-install": "dist",
    "github-oauth": {}
    }
    并确保不启用 fxp/composer-asset-plugin 这类高内存插件
  • 禁用 ZIP 解压缓存(不推荐长期使用):composer config -g cache-files-ttl 0,让每次下载都跳过本地 ZIP 复用,但会增加网络请求

检查系统级磁盘占用而非仅 Composer 问题

No space left on device 不一定源于 Composer 自身——可能是 /tmp 分区满(Composer 默认用系统 tmp)、Docker overlay2 占满、journal 日志撑爆 /var/log,或 inode 耗尽(df -i 查看)。

  • 运行 df -hdf -i 确认是空间还是 inode 不足
  • 清理 /tmpsudo find /tmp -type f -mtime +7 -delete(注意别误删正在使用的临时文件)
  • Docker 用户重点检查:docker system df -v,必要时 docker system prune -a --volumes
  • systemd 日志:journalctl --disk-usagejournalctl --vacuum-size=200M
真正卡住的往往不是 Composer 某条命令,而是它暴露了底层磁盘管理的盲点——比如缓存路径落在根分区却没监控,或者 CI 环境反复拉取未清理。动手前先 df -h && df -i,比盲目 composer update 重试有效得多。

相关专题

更多
composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

149

2023.12.25

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

409

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

532

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

309

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

74

2025.09.10

数据库Delete用法
数据库Delete用法

数据库Delete用法:1、删除单条记录;2、删除多条记录;3、删除所有记录;4、删除特定条件的记录。更多关于数据库Delete的内容,大家可以访问下面的文章。

269

2023.11.13

drop和delete的区别
drop和delete的区别

drop和delete的区别:1、功能与用途;2、操作对象;3、可逆性;4、空间释放;5、执行速度与效率;6、与其他命令的交互;7、影响的持久性;8、语法和执行;9、触发器与约束;10、事务处理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

208

2023.12.29

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

573

2023.07.26

Java 项目构建与依赖管理(Maven / Gradle)
Java 项目构建与依赖管理(Maven / Gradle)

本专题系统讲解 Java 项目构建与依赖管理的完整体系,重点覆盖 Maven 与 Gradle 的核心概念、项目生命周期、依赖冲突解决、多模块项目管理、构建加速与版本发布规范。通过真实项目结构示例,帮助学习者掌握 从零搭建、维护到发布 Java 工程的标准化流程,提升在实际团队开发中的工程能力与协作效率。

10

2026.01.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7万人学习

Git 教程
Git 教程

共21课时 | 2.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号