Barn 0.4.0:一条命令、能用的数据盘、统一的输出
首次运行只需一条命令,默认数据盘在所有镜像上可用,就绪失败直接给出原因,全部命令统一输出风格。
说明
本文为 0.4.0 历史发布记录。旧版发行附件已下线,安装当前版本请参见安装指南。
Barn 0.4.0 将首次使用收敛为一条命令,修复了 Debian 与 Ubuntu 镜像上默认数据盘因缺少 xfsprogs 无法格式化的问题,并统一了全套 CLI 的输出风格;Pigsty 清单格式、固定 IP 部署模型、状态目录结构与内置镜像目录修订版 2026082903 保持不变。
主要变化
- 一条命令完成首次启动。 在交互式终端中,若宿主机尚未安装固定 IP 网络,运行
barn up会自动调用barn setup:先展示宿主准备计划并在提权步骤前请求确认,完成后直接继续启动虚拟机。barn init的下一步提示同步更新为barn up。 vm_disks[].fs默认值改为auto。 空白数据盘在客机具备mkfs.xfs时格式化为 XFS,否则自动回退为 ext4,与 Pigsty 的 Vagrant 行为保持一致。此前默认硬编码xfs会导致未预装xfsprogs的上游 Debian 与 Ubuntu 镜像挂载失败。按旧默认值创建的既有部署不会被判为配置漂移,持久盘保持兼容。- 客机初始化报错直达原因。 客机错误标记现会记录失败命令的最后一行输出,因此
up会直接报告guest bootstrap failed during data-disks: xfs requested but mkfs.xfs is unavailable,而不再只返回退出码。 - 统一 CLI 输出风格。 生命周期命令与
status统一打印节点状态表,并在up完成后提示next: barn ssh <node>。无变更时plan与validate仅输出一行简短结论;image list、network status、doctor与预检报错改为直接输出自然语言说明(spec hash等内部字段仅在--json中输出)。当传入未知节点名时,报错信息会一并列出当前可用节点。 - SSH 远程命令原样透传。
barn ssh <node> -- 'df -h /data; id'会按 OpenSSH 标准方式原样传递远程命令字符串。
升级说明
对于由 0.3.0 或更早版本创建且 /data 未能成功挂载的 Debian 12/13 或 Ubuntu 节点,执行一次 barn recreate <node> 即可将数据盘格式化为 ext4 并完成挂载。在无 TTY 的自动化环境中,若宿主机尚未初始化网络,运行 up 前仍需先执行 barn setup --yes。
验证范围
源码提交 8ecb8476c7dbc934d8cbbee935ac53884d00fcdb 已通过完整本地源码门禁(涵盖单元测试、竞态测试、go vet、Staticcheck、deadcode、errcheck、govulncheck、Shell 与模块检查、四目标交叉构建、镜像流水线与安装器测试及依赖许可证校验),标签工作流构建并验证了全部归档、原生软件包、SBOM 与安装脚本。各阶段的 macOS arm64/HVF 与 Ubuntu amd64/KVM 实测记录见验证历史。
安装或升级
从 Barn 0.4.0 GitHub 发布页下载安装脚本与发行资产:
同一预发布页附带 Homebrew 配方与 amd64/arm64 DEB/RPM 软件包。