跳到正文
minimachine.
← 学习路径
第 25 步 · 高效工作 进阶 · 12 分钟

🔄维护与更新

一台长期开机的机器需要在时间的流逝中保持整洁。操作系统、依赖、工具、智能体:哪些可以自动化,哪些需要手动更新,以及如何做到不弄坏任何东西。


一台 24 小时不间断运行、并且可以从外部访问的机器永远不会真正「完工」。它是活的,而正如一切有生命的事物一样,它需要一点点照料。好消息是:90% 的工作可以归结为两个习惯,一个自动完成,一个每月一次。我们来看看是哪两个,尤其是如何在更新时不弄坏任何东西。

操作系统:底层系统

您的 Ubuntu 是地基。维护分为两个层次:

# 日常动作:刷新软件包列表,然后安装更新
sudo apt update && sudo apt upgrade -y
# 清理掉那些已经没用的软件包
sudo apt autoremove --purge

至于安全,您已经在系统设置里用 unattended-upgrades 把一切都自动化好了:机器会自行应用关键修复。这就是我们刚才说的那个自动习惯。

每两年一次,Ubuntu 会发布一个新的 LTS 版本。迁移通过 sudo do-release-upgrade 完成,但请慢慢来:先做好备份(参见 Git、GitHub 与备份),并阅读版本说明。这并不紧急,一个 LTS 版本会被支持好几年。

依赖:您的项目所依靠的东西

这正是意外藏身之处,因为一个升了大版本的依赖可能会弄坏一个项目。

  • Node(通过 nvm):nvm install --lts 安装最新的 LTS,nvm alias default 把它设为默认。先保留旧版本,等确认您的项目都能正常运行之后再说。
  • 某个项目的软件包npm outdated 会显示哪些落后了,npm update 会在您的 package.json 限定的范围内更新。对于大版本,请先读一读 changelog:破坏性变更正是发生在这里。
  • 能救命的习惯:锁文件。 把您的 package-lock.json / requirements.txt 纳入版本管理。它们能保证您的项目在任何地方都重新安装完全相同的版本,不会在您背后悄悄变动。

工具与智能体

您技术栈里的其余部分都能干净地更新,各有各的方式:

  • Docker:跟随系统的 apt 更新。记得清理那些堆积起来的东西(见下文)。
  • Ollama:重新运行安装脚本即可升到最新版(curl -fsSL https://ollama.com/install.sh | sh)。至于模型,用 ollama pull <模型> 就能取到新的版本:本地版本会被替换。
  • 您的代码智能体:Claude Code 和 OpenCode 几乎能自己保持最新,否则一句 npm update -g(或它们各自的更新命令)就够了。一个最新的智能体,意味着免费到手的新能力。
  • Tailscalecloudflared:通过它们各自的软件源安装,会随系统一起更新。无需做任何特别的事。

磁盘空间:无声的陷阱

模型、Docker 镜像和旧软件包会在不知不觉中把磁盘填满,而一台塞满的机器会开始莫名其妙地崩溃。打扫只需三条命令:

df -h                      # 还剩多少空间
docker system prune -a     # 清除未使用的镜像和容器
ollama rm <>           # 删除一个您不再使用的模型
sudo apt autoremove --purge # 孤立的软件包

让智能体来帮您

这正是您的智能体最喜欢的那种苦差事。「检查一下这台机器上有什么需要更新的,给我总结一下重要的变更,并提出一个方案」:它会列出落后的软件包,替您读完 changelog,然后建议您一步一步地行动。您的手指始终按在按钮上,调查的活儿由它来干。