Frost 설치

Frost는 macOS, Linux, Windows 어디서든 명령어 하나로 설치할 수 있습니다. 모든 릴리스에 자체 런타임이 들어 있으므로 미리 설치할 것은 없습니다.

#지원하는 시스템

시스템 프로세서
macOS Apple 실리콘(arm64)과 Intel(amd64)
Linux amd64와 arm64
Windows amd64와 arm64

예전 Raspberry Pi 같은 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이 필요합니다. 서명은 릴리스에 들어 있는 런타임으로 확인하며, 그 전에 이 런타임이 OpenJS Foundation의 서명을 받았는지 Windows가 먼저 확인합니다.

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를 출력해야 합니다. 둘 중 하나라도 그렇지 않으면 설치하지 마세요.