0

0

如何清理Composer缓存以释放磁盘空间?

冰火之心

冰火之心

发布时间:2026-01-05 11:13:43

|

875人浏览过

|

来源于php中文网

原创

能,但只清理 ~/.composer/cache/ 下的已下载包、元数据和 ZIP 归档,不涉及 vendor/、composer.lock 或项目级缓存;实际路径需通过 composer config --global cache-dir 或 Composer\Config::getCacheDir() 确认。

如何清理composer缓存以释放磁盘空间?

composer clear-cache 命令是否真能删掉所有缓存?

能,但只清理 ~/.composer/cache/ 下的已下载包、元数据和 ZIP 归档。它不会碰 vendor/composer.lock 或项目级缓存(如 Symfony 的 var/cache/)。如果你刚执行过 composer installupdate,缓存目录可能占几百 MB 甚至上 GB。

执行前建议先确认缓存大小:

du -sh ~/.composer/cache

常见误操作是反复运行 composer clear-cache 却发现磁盘没释放——大概率因为缓存路径被自定义过,或你正在清理的是某个项目的本地缓存而非全局。

如何确认 Composer 实际使用的缓存路径?

Composer 不一定用默认的 ~/.composer/cache。它会按顺序检查环境变量和配置项,优先级从高到低:

  • COMPOSER_CACHE_DIR 环境变量
  • cache-dir 配置项(可通过 composer config --global cache-dir 查看)
  • 默认路径 ~/.composer/cache(Linux/macOS)或 %APPDATA%\Composer\Cache(Windows)

最稳妥的方式是直接查当前生效路径:

composer config --global cache-dir

如果输出为空,再运行:

php -r "echo Composer\Config::getCacheDir();"

注意:后者需确保 composer.phar 或 Composer 可执行文件在 include_path 中,否则报错。推荐优先用 config --global 方式。

清理后为什么某些包安装反而变慢?

因为缓存不只是“下载过的 ZIP”,还包含解析后的 packages.json、压缩包哈希、依赖图快照等。清空后首次 composer update 会重新下载并重建全部元数据,网络 + 解压耗时明显增加。

速创猫AI简历
速创猫AI简历

一键生成高质量简历

下载

这不是 bug,是设计使然。如果你频繁切换分支或测试不同版本,可以考虑保留部分缓存:

  • 只删 ZIP 缓存:rm -rf ~/.composer/cache/files
  • 只删元数据缓存:rm -rf ~/.composer/cache/repo
  • 保留 cache-dir 下的 http 子目录(用于 HTTP 304 缓存协商)

不过手动删子目录有风险:若 Composer 正在写入,可能损坏缓存结构。稳妥做法仍是用 composer clear-cache,再配合 --no-cache 临时跳过缓存(仅调试用)。

Windows 用户容易忽略的权限问题

在 Windows 上,composer clear-cache 有时提示 “Permission denied” 或静默失败,原因通常是:

  • 缓存目录被杀毒软件或 Windows Search 索引进程占用
  • PowerShell 或 CMD 没以管理员身份运行(虽不必须,但某些组策略会拦截)
  • 路径含中文或特殊字符,导致 PHP 的 rmdir() 调用失败

解决方法不是提权,而是绕过:

composer config --global cache-dir "C:/temp/composer-cache"

然后删掉旧路径,再运行 clear-cache。新路径选纯英文、无空格、非系统盘路径更稳。

缓存路径一旦改过,记得同步更新 COMPOSER_CACHE_DIR 环境变量,否则 CI/CD 脚本可能仍往旧位置写。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2234

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1484

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1386

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

951

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1412

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1233

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1444

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1303

2023.11.13

PPT动态图表制作教程大全
PPT动态图表制作教程大全

本专题整合了PPT动态图表制作相关教程,阅读专题下面的文章了解更多详细内容。

12

2026.01.07

热门下载

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

精品课程

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

共137课时 | 8.4万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 6.9万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.8万人学习

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

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