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

相关推荐
工作10年+,存储芯片行业10 小时前
Linux NVMe 中断排查与性能优化:IRQ 优化(原理+排查)
linux·运维·性能优化·ssd·nvme·pcie·中断
ShineWinsu11 小时前
对于Redis:Hash类型的解析
c++·redis·分布式·缓存·面试·hash·哈希表
.Hypocritical.11 小时前
Redis从入门到实战:核心原理、场景落地与避坑指南
数据库·redis·缓存
程序猿乐锅14 小时前
【黑马点评 | 第十一篇】关注 Feed 流实现
java·数据库·redis·分布式·后端·缓存·maven
Eloudy14 小时前
NVLink GPU-to-GPU:本地GPU L2 是否缓存远端 GPU 数据
缓存
ShineWinsu14 小时前
对于Redis:List类型的解析
数据库·c++·redis·链表·缓存·面试·list
XS03010615 小时前
Redis 学习指南
数据库·redis·缓存
盟道科技16 小时前
电商小程序购物车系统设计:缓存与数据库双写一致性实战
数据库·缓存·小程序
hweiyu001 天前
Redis命令:HPERSIST
redis·缓存
hweiyu001 天前
Redis命令:HPEXPIRE
redis·缓存