安装 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
安装程序会:
- 下载适合你系统的最新发布版本。
- 检查发布版本的签名和下载文件的校验和,只要有一项不对就停止。
- 把 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 中。
#手动安装
- 从最新发布版本下载适合你系统的压缩包。压缩包的名称形如
frost_0.1.0_linux_amd64.tar.gz,Windows 上是.zip。 - 在运行其中的任何内容之前,先验证下载的文件,方法见下面的“验证下载”一节。
- 把它解压到一个新的空文件夹中。
- 在解压出来的文件夹中运行自带的安装程序,并告诉它启动器要放在哪个文件夹。
在 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。只要有一项不是这样,就不要安装。