背景
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=/tmp、BUN_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/*
踩坑记录
-
一开始把源码克隆到
~/tools/miniclaude(SSD),编译过程产生约 285MB 临时文件写入 SSD,违背原则。后面统一搬到/tmp执行。 -
用 bun 官方脚本安装时下载慢且容易断,改成
sudo npm i -g bun解决。 -
成品
claude一度显示缺失,最终确认~/.local/bin/claude正常可执行。
总结
原则很简单:反复写入的临时文件进内存盘,可复用的大缓存留 SSD,最终成品才落盘。
这套做法把 SSD 磨损降到最低。代价只是每次构建时重新下载依赖(走内存),对日常使用影响很小。