cache-files-ttl 控制 composer 缓存文件最大存活时间(默认6个月),仅在执行 composer clear-cache --gc 且缓存目录可写时按秒数清理过期 zip/tar 包,不作用于元数据,需三者同时满足才生效。

cache-files-ttl 是控制 Composer 缓存文件自动过期的核心参数,它不依赖定时任务或外部脚本,而是由 Composer 自身在执行 clear-cache --gc 时按需清理。
cache-files-ttl 设置后不会实时删除,只影响垃圾回收判断
这个参数决定的是“缓存文件最多能活多久”,单位是秒,默认值 15552000(6个月)。但设置后缓存不会自己消失——必须触发垃圾回收才会检查并清理过期项。
- 修改方式:在全局或项目级
composer.json的config段里加"cache-files-ttl": 2592000(30天) - 生效范围:仅对
~/.composer/cache/files/下的 ZIP/TAR 包和提取产物起作用,不影响repo/或archived/中的元数据 - 验证是否生效:运行
composer config --global cache-files-ttl,输出应为你的设定值
必须配合 --gc 才能真正清理过期缓存
composer clear-cache 默认清空全部;只有加 --gc(garbage collection)才会按 cache-files-ttl 和 cache-files-maxsize 规则筛选清理。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 推荐部署脚本中固定使用:
composer clear-cache --gc - CI/CD 流程里可放在
post-install-cmd后,避免缓存无限膨胀 - 注意:
--gc不报错也不输出提示,除非加-v查看详细日志,否则看起来像没反应
容易被忽略的路径与权限问题
即使设置了 cache-files-ttl,如果 Composer 无法写入缓存目录,--gc 会静默跳过清理逻辑,导致过期文件堆积。
- 检查缓存根目录权限:
ls -ld $(composer config --global cache-dir),确保当前用户有读写权 - 确认不是挂载在只读文件系统(如某些 Docker volume 或 NFS),否则
--gc无法删除文件 - 若用
cache-read-only: true,cache-files-ttl仍生效,但--gc将完全跳过清理(因为不允许写)
真正起作用的不是「设了就删」,而是「设了+触发gc+有写权限」三者缺一不可。很多团队发现缓存没变小,其实卡在最后一步——--gc 根本没跑成功。










