安装 Frost

在 macOS、Linux 和 Windows 上,一条命令就能装好 Frost。每个发布版本都自带运行时,所以不需要事先安装任何东西。

#支持的系统

系统 处理器
macOS Apple 芯片(arm64)和 Intel(amd64)
Linux amd64 和 arm64
Windows amd64 和 arm64

没有面向 32 位 ARM 的安装包,比如较旧的树莓派系统。在 Windows 上,WSL 会安装 Linux 版的安装包。

#安装程序

在 macOS 或 Linux 上,在终端中运行:

curl -fsSL https://getfro.st/install.sh | sh

在 Windows 上,在 PowerShell 中运行:

irm https://getfro.st/install.ps1 | iex

安装程序会:

  1. 下载适合你系统的最新发布版本。
  2. 检查发布版本的签名和下载文件的校验和,只要有一项不对就停止。
  3. 把 Frost 安装到你的用户目录中,并在 PATH 中的某个文件夹里放一个 frost 启动器。

在 macOS 和 Linux 上,它需要 curl 或 wget、OpenSSH 8.1 或更新版本中的 ssh-keygen,以及 sha256sum 或 shasum 来验证下载。在 Windows 上,它需要 Windows 10 和 11 自带的 Windows PowerShell 5.1,或者 PowerShell 7。它用发布版本里自带的运行时来检查签名,前提是 Windows 已确认这个运行时由 OpenJS Foundation 签名。

在 macOS 和 Linux 上,如果你有 /usr/local/bin 的写入权限,启动器会放在那里,否则放在 ~/.local/bin。如果这个文件夹还不在你的 PATH 中,安装程序会打印出添加它的命令。在 Windows 上,启动器放在 %LocalAppData%\frost\bin,安装程序会把这个文件夹加入你的 PATH。安装之前就已打开的终端需要重新打开,才能找到 frost。

curl 安装程序也能在 Windows 的 Git Bash 中使用。在那里,它需要 Git Bash 提供的 cygpath,用 unzip 或 PowerShell 解压,并把启动器放在 ~/bin。

安装完成后,运行 frost init 来设置你的第一次备份。参见设置 Frost。

#安装程序选项

变量 作用
FROST_INSTALL_DIR 把启动器放到这个文件夹中。Windows 安装程序不会为它修改你的 PATH
FROST_VERSION 安装指定的发布版本,比如 v0.1.0,而不是最新版本

例如,在 macOS 或 Linux 上:

curl -fsSL https://getfro.st/install.sh | FROST_INSTALL_DIR="$HOME/bin" sh

在 Windows 上,先在同一个 PowerShell 窗口中设置变量:

$env:FROST_VERSION = 'v0.1.0'; irm https://getfro.st/install.ps1 | iex

更改启动器所在的文件夹,不会移动 Frost 本身。文件与文件夹列出了所有内容的位置。

#使用 npm 或 pnpm

如果你已经装有 Node.js 22 或更新版本,可以用 npm 安装 Frost:

npm install -g getfrost

或者用 pnpm:

pnpm add -g getfrost

这个包叫 getfrost,它提供的命令是 frost。第一次运行 frost 时,它会下载适合你系统的发布版本,像安装程序一样检查签名和校验和,并把它安装到你的用户目录中,然后运行你的命令。此后,每个 frost 命令都会直接交给已安装的 Frost,而 Frost 会自己保持更新。

使用 pnpm 时,如果你以前没有运行过 pnpm setup,请先运行它,这样 pnpm 的全局命令才会在你的 PATH 中。

#手动安装

  1. 从最新发布版本下载适合你系统的压缩包。压缩包的名称形如 frost_0.1.0_linux_amd64.tar.gz,Windows 上是 .zip。
  2. 在运行其中的任何内容之前,先验证下载的文件,方法见下面的“验证下载”一节。
  3. 把它解压到一个新的空文件夹中。
  4. 在解压出来的文件夹中运行自带的安装程序,并告诉它启动器要放在哪个文件夹。

在 macOS 或 Linux 上:

./runtime/bin/node install.mjs "$PWD" "$HOME/.local/bin"

在 Windows 上,使用 PowerShell:

.\runtime\bin\node.exe .\install.mjs "$PWD" "$env:LOCALAPPDATA\frost\bin"

如果启动器所在的文件夹还不在 PATH 中,请把它加进去。在 Windows 上,frost.cmd 可以在命令提示符和 PowerShell 中使用,frost 可以在 Git Bash 中使用。

如果想直接运行解压出来的安装包而不安装,可以直接使用其中的 frost 启动器(Windows 上是 frost.cmd),并让它的所有文件保持在一起。

#验证下载

安装程序会自动完成这一步。如果想自己检查压缩包,请从同一个发布版本中下载它以及 checksums.txt 和 checksums.txt.sig,再从代码仓库下载 release-signing.pub。把 archive 设为压缩包的文件名,然后运行:

(
  set -e
  archive='frost_X.Y.Z_linux_amd64.tar.gz'
  printf 'frost-release %s\n' "$(cat release-signing.pub)" > allowed_signers
  ssh-keygen -Y verify -f allowed_signers -I frost-release -n file -s checksums.txt.sig < checksums.txt
  selected_checksum=$(awk -v archive="$archive" '$2 == archive { line = $0; count++ } END { if (count != 1) exit 1; print line }' checksums.txt)
  printf '%s\n' "$selected_checksum" | shasum -a 256 -c -
)

如果签名有误,或者签名列表中对应压缩包的记录不是恰好一条,这组命令就会停止。第一项检查应当输出 Good "file" signature,第二项应当在压缩包名称后面输出 OK。只要有一项不是这样,就不要安装。