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=/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/*

踩坑记录

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

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

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

总结

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

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

相关推荐
nice_lcj5201 小时前
LRU 缓存入门:它是什么、怎么用、面试怎么手写
java·数据结构·缓存·面试·lru
羑悻的小杀马特1 天前
Redis持久化三剑客:RDB二进制快照、AOF文本日志、混合模式如何守护你的数据安全?
数据库·redis·缓存·aof·持久化存储·rdb
时间的拾荒人1 天前
Redis 进阶实战:渐进式遍历、持久化机制与事务详解
数据库·redis·缓存
2501_933923252 天前
解读Redis:单线程模型
数据库·redis·缓存
时间的拾荒人2 天前
Redis 集合类型详解:Set 与 Zset
redis·缓存·面试
Alluxio3 天前
Alluxio + OCI:为 AI 工作负载实现亚毫秒访问延迟与可扩展吞吐
运维·数据库·人工智能·分布式·缓存·ai·语言模型
青瓦梦滋3 天前
Redis主从复制
服务器·数据库·redis·缓存·bootstrap
衡石科技4 天前
兼顾查询速度与数据时效:衡石的缓存和分析加速
缓存·数据缓存·数据时效
瑞克-桑切斯4 天前
redis
数据库·redis·缓存