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 磨损降到最低。代价只是每次构建时重新下载依赖(走内存),对日常使用影响很小。

相关推荐
天河归来21 小时前
请求原子性实现方式:Redis 互斥与数据库事务协同
数据库·redis·缓存
斯普信专业组1 天前
Redis RESP3 协议规范:从入门到实战
数据库·redis·缓存
SHENGWEI胜为1 天前
服务器 IP 地址冲突如何排查?从 DHCP 租约到 ARP 缓存定位故障
服务器·tcp/ip·缓存
Hello_Pyhx1 天前
SCSKiller v1.3.2 使用流程:从着色器预编译到检查缓存状态
缓存·着色器
microrain1 天前
SagooIoT 的缓存换后端只改一行配置,文件后端连 Redis 都不需要
物联网·缓存·golang·sagooiot
2601_968900772 天前
推理部署配置实践:缓存窗口、硬件配比与协议统一的核查清单
缓存
一条泥憨鱼2 天前
【Redis | 黑马点评】基于Redis的消息队列 | stream消息队列 源码解读
java·数据库·redis·缓存·lua
每天一道题2 天前
Redis 缓存为什么会出问题?穿透、击穿、雪崩与缓存一致性
数据库·redis·缓存
charlotte102410242 天前
Redis 简介:从诞生到数据类型,再到缓存三大问题
数据库·redis·缓存
极光通讯2 天前
国产存储替代进展:长鑫DDR5与长江存储企业级SSD的适配现状
服务器·数据库·内存