SSD 寿命洁癖:编译过程不入盘的原则与实践

背景

2026/8/2

对 SSD 写入寿命敏感,希望在编译/构建过程中尽量减少不必要的写入。基本原则是:可复用缓存留 SSD,一次性构建垃圾进内存盘,SSD 只留最终成品。

前提确认

当前机器的 /tmp 是 tmpfs 内存盘,7.5GB,仅用 119MB,足够容纳构建过程产生的临时文件。内存 14GB,扛构建无压力。

落点方案

内容 位置 介质 处理方式
bun 安装缓存 ~/.bun/install/cache SSD 保留(可复用)
npm 缓存 ~/.npm SSD 保留(可复用)
源码 + node_modules /tmp/minicl 内存盘 用完即删
编译临时文件 TMPDIR=/tmpBUN_INSTALL_CACHE_DIR=/tmp 内存盘 进程结束自动释放
最终成品 ~/.local/bin/claude SSD 只留这一个

构建命令

bash

复制代码
cd /tmp
git clone --depth 1 https://github.com/txl16095/MiniClaude.git minicl
cd /tmp/minicl
export TMPDIR=/tmp
export BUN_INSTALL_CACHE_DIR=/tmp   # 临时缓存走内存
bun install                          # 330 packages
bun run build --compile              # 产物 ./dist/cli

mkdir -p ~/.local/bin
cp dist/cli ~/.local/bin/claude
chmod +x ~/.local/bin/claude

成品约 176MB,单文件自包含,放 ~/.local/bin/claude(已在 PATH 中)。

构建后清理

清理项 位置 原因
官方脚本残留 ~/.bun 下载残留
下载中断残留 /tmp/bun-linux-x64.zip 无用
其他项目源码 /tmp/ccb(136MB) 不用了
重复副本 /tmp/minic(49MB) 重复
构建完源码 /tmp/minicl(284MB) 成品已出

保留(可复用缓存): ~/.bun/install/cache~/.npm/home/a1/tools/*

踩坑记录

  1. 一开始把源码克隆到 ~/tools/miniclaude(SSD),编译过程产生约 285MB 临时文件写入 SSD,违背原则。后面统一搬到 /tmp 执行。

  2. 用 bun 官方脚本安装时下载慢且容易断,改成 sudo npm i -g bun 解决。

  3. 成品 claude 一度显示缺失,最终确认 ~/.local/bin/claude 正常可执行。

总结

原则很简单:反复写入的临时文件进内存盘,可复用的大缓存留 SSD,最终成品才落盘。

这套做法把 SSD 磨损降到最低。代价只是每次构建时重新下载依赖(走内存),对日常使用影响很小。

相关推荐
李兆龙的博客16 小时前
问津集 #24:LiquidCache——面向过滤的缓存编码与计算下推
缓存
爱上网的小舟17 小时前
着色器缓存大小设置多少合适?N卡A卡缓存路径与清理方法
缓存·着色器
草莓熊Lotso17 小时前
【Redis 初阶】C++ 客户端实战:从 RESP 协议到 redis-plus-plus 工程化用法
linux·开发语言·网络·数据库·c++·redis·缓存
程序员阿鹏1 天前
为什么MySQL InnoDB选择B+树?
数据结构·数据库·b树·sql·mysql·算法·缓存
2601_962301011 天前
缓存知识点总结
缓存·知识点·总结·后端开发·面试复习
莫得感情 o2 天前
Redis 10 · 集群:16384槽、扩缩容与请求路由
redis·缓存
泡海椒2 天前
JQuick-java (JQuick-ASM)性能优化原理:字节码生成与缓存机制深度解析
java·缓存·性能优化
莫得感情 o2 天前
Redis 11 · 缓存问题:穿透、击穿与雪崩
redis·缓存
kiss strong2 天前
redis服务器登录(内网环境,无法使用客户端)
数据库·redis·缓存
来让爷抱一个2 天前
2026 语义缓存实战:把命中契约写进SPEC,MonkeyCode 云端跑通
人工智能·机器学习·缓存