Skip to content

v1.11.13

Choose a tag to compare

@github-actions github-actions released this 11 Oct 15:22
· 50 commits to main since this release

修一个会让安装脚本整个中止的错。

1.11.12 里我在 systemd unit 的注释中写了一个美元号加变量名。那个 unit 是用一个未加引号分隔符的 heredoc 写的(故意的:unit 里的 $BIN、$INTERVAL 等都要展开),而代价就是它正文里每一个美元号都是代码——包括注释里的。于是在 set -u 之下,展开一个未设置的变量直接让脚本中止。在机器上重跑安装命令时就是这样挂的:

sh: 486: STATE_DIRECTORY: parameter not set

修法是把那句注释里的美元号去掉,意思不变,只是不再像一个变量引用。同时在那段 heredoc 上方写清了这条规矩和检查办法,因为这种事不能靠"小心写":改完之后跑一遍 awk 把 heredoc 正文里的美元号列出来,确认每一个都是真想展开的。

验证没有只看仓库里的文件。我按行号取出那份 unit 正文,在 set -eu 下真展开了一遍,确认它以 0 退出、输出 49 行,并且里面确实有 StateDirectory=monitor-agent。然后把本地 hub 实际发出的 /install.sh 拉下来又做了一遍同样的检查——因为真正被执行的永远是 hub 内嵌的那一份,而不是仓库里的那一份。

如果你刚才在机器上重跑安装命令时遇到这个报错:它死在第 486 行,也就是"开始写 unit"之前,所以原来的 unit 与配置应当完好;二进制也多半没被动过。升级到本版之后重新执行那条命令即可。

这一版包含 1.11.12 的全部内容,只是修掉这个安装期错误。