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
설치 프로그램은 다음 일을 합니다.
- 사용 중인 시스템에 맞는 최신 릴리스를 내려받습니다.
- 릴리스의 서명과 내려받은 파일의 체크섬을 확인하고, 하나라도 맞지 않으면 중단합니다.
- 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에 들어가게 하세요.
#직접 설치하기
- 최신 릴리스에서 사용 중인 시스템에 맞는 압축 파일을 내려받습니다. 이름은
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를 출력해야 합니다. 둘 중 하나라도 그렇지 않으면 설치하지 마세요.