# Barn 1.0.0：首个稳定版

> Barn 首个稳定版加固破坏性操作、数据盘恢复、目录完整性与取消流程，并更新镜像目录至 revision 2026110502。

---

LLMS 索引： [llms.txt](/zh/llms.txt)

---

**发布日期：2026-11-05。** Barn 1.0.0 是首个稳定版。最新稳定版请参见 **[Barn 1.1.0](../1.1.0/)**。

Barn 1.0.0 完成了发布前对破坏性操作、数据盘恢复、目录完整性与进程取消的审计。本版内置签名镜像目录 revision `2026110502`，其中 Debian 13 的 amd64 与 arm64 镜像均更新为 `20261103.2651.1`。

[安装 Barn](/zh/docs/start/installation/) · [GitHub 发布页与下载](https://github.com/pgsty/barn/releases/tag/v1.0.0) · [变更日志](https://github.com/pgsty/barn/blob/v1.0.0/CHANGELOG.md)

## 变更 {#changes}

- **整套部署重建会保留清单中缺少的节点。** 不带节点参数的 `barn recreate` 遇到清单缺少已有节点时，会在停止任何虚拟机前拒绝执行（`conflict`，reason `nodes_removed`，退出码 4）。此前版本会删除被省略的节点却不重建。需要删除时请执行 `barn destroy NODE`，否则把节点加回清单。确认提示会列出将被替换的每个节点；销毁锁内会再次核对范围，预检期间已应用状态发生变化时返回 `deployment_changed`。
- **删除控制节点后环境仍可用。** 剩余的第一个节点接任控制节点，`ssh-config`、`hosts`、`exec` 与 `provision` 可继续使用。请在清单中更新控制角色，再执行 `barn up` 安装其控制 SSH 访问。如果接任节点留有无法完成的准备记录，Barn 会在删除任何内容之前拒绝销毁控制节点，并在错误中给出接任节点名称。
- **只在识别出损坏时重置数据盘。** 空白磁盘会被初始化。ext4 或 XFS 只有在检查工具报告可识别的损坏时才会重置，持久数据盘也一样。带分区表、签名缺少 UUID、使用不支持的文件系统特性或检查工具未知失败的磁盘会保留数据并给出警告。已有客机会在下一次 `barn up` 时获得更新后的脚本。
- **修改宿主前确认一次。** 在终端中，`up`、`start`、`restart` 与 `reload` 安装软件包或 Barn 网络前，会展示宿主准备计划并询问一次。没有终端时只报告缺少的条件；无人值守准备请执行 `barn setup --yes`。
- **销毁命令接受 `--yes`。** `destroy`、`recreate`、`mac destroy` 与 `mac recreate` 接受 `--yes`。`--force` 继续有效，`mac stop --force` 仍表示强制断电。
- **目录校验失败退出 7。** 目录签名或签名 revision 校验失败时退出 7（`integrity`，reason 为 `catalog_signature` 或 `catalog_equivocation`）。缓存签名的权限或 I/O 错误仍属于运行时错误（退出 1）。两个官方仓库共享内置升级基线，对相同目录字节的新可信签名会被接受。
- **取消操作可以传递给 `sudo`。** 被取消的命令会收到 SIGTERM，`sudo` 会将其转发；Barn 最多等待 10 秒让进程及其继承的管道结束。
- **宿主网络与 Mac 镜像。** 存在其他宿主网络接口时，`barn network uninstall` 会保留全局 networkd 单元状态（`preserve_networkd`、`checks.networkd`）。Mac 镜像清理会保留中断的重建仍引用的 base。
- **命令行。** 不带命令运行 `barn` 会输出完整帮助；`--json` 与 `--yaml` 仍返回 `actions[]` 文档。显式的 `--json`、`--yaml` 与 `--verbose` 优先于 `BARN_OUTPUT` 和 `BARN_VERBOSE`，这些变量取值无效时仍可查看帮助。
- **依赖。** Go 1.27.3、`golang.org/x/net` 0.62.0 与 `go.yaml.in/yaml/v3` 3.0.6。

## 升级 {#upgrade}

请沿用安装时的渠道升级。安装脚本默认选择最新稳定版（`1.1.0`），用发布附带的 `checksums.txt` 校验归档，并在无需 sudo 的情况下安装到 `~/.local/bin`；需要固定 `1.0.0` 时设置 `BARN_VERSION=1.0.0`。DEB 与 RPM 软件包附在 GitHub 发布页中。

```bash {tab="Homebrew" group="barn-upgrade" value="brew"}
brew update
brew upgrade pgsty/infra/barn
barn version
```

```bash {tab="Linux 安装脚本" value="installer"}
curl -fLO https://github.com/pgsty/barn/releases/download/v1.0.0/install.sh
BARN_VERSION=1.0.0 bash install.sh
barn version
```

从 0.9.3 升级会保留 `~/.barn` 下的虚拟机磁盘、SSH 密钥、状态与配置，无需重建。替换原生组件前请先停止 macOS 虚拟机。Apple Silicon 归档与 Homebrew 安装包含已签名公证的 `Barn.app`、CLI 与宿主辅助程序；Intel macOS 与 Linux `amd64`/`arm64` 归档提供 CLI 与宿主辅助程序。

请检查脚本是否受三项变化影响：目录签名校验失败的退出码由 1 变为 7；清单缺少已有节点时，整套部署 `recreate` 退出 4；交互式 `up` 准备宿主前会询问。

## 已知限制 {#limitations}

- Mac 恢复日志格式损坏时，`barn mac image ls`、`barn mac doctor` 中的空间估算与镜像清理都会停止，直到日志修复。
- 某一台 Mac 机器的状态无法读取时，`barn mac ls` 会停止，其他机器仍可按名称使用。
- macOS 宿主上的 Linux 客机共享目录需要客机内核支持 9p。

安全修复发布在最新的 1.x 补丁版本中，0.x 版本不再提供修复。详见 [Linux 快速上手](/zh/docs/start/tutorial/)与 [Mac 指南](/zh/docs/start/macos/)。
