docs/content/start/installation.ko.md (4599B)
1 +++
2 title = "설치"
3 description = "한 줄로, 미리 빌드된 바이너리로, 소스에서"
4 weight = 10
5 toc = true
6 +++
7
8 sqzass는 런타임 의존성이 없는 단일 바이너리입니다. Node도, Python도, 시스템
9 라이브러리도 필요 없습니다.
10
11 ## 한 줄
12
13 ```bash
14 curl -fsSL https://sqzass.sqzer.com/install.sh | sh
15 ```
16
17 스크립트가 하는 일은 정확히 넷이고, 실행 전에 [직접 읽어볼](/install.sh) 수
18 있습니다: 플랫폼 판별(x86_64 또는 ARM64 리눅스, Apple Silicon macOS), 최신 릴리스
19 타르볼과 `.sha256` 다운로드, 체크섬 검증, `/usr/local/bin`에 `install` — sudo는
20 그 디렉터리에 쓸 수 없을 때만 묻습니다. 다른 곳에 설치하려면
21 `SQZASS_INSTALL_DIR`을 주세요. 그 밖의 일은 하지 않습니다 — 셸 설정도, `PATH`도
22 건드리지 않습니다.
23
24 ## Cargo로
25
26 Rust가 이미 있다면 한 줄로 소스에서 빌드합니다.
27
28 ```bash
29 cargo install --git https://github.com/debuman/sqzass
30 ```
31
32 ## Arch Linux
33
34 AUR에 [`sqzass`](https://aur.archlinux.org/packages/sqzass)가 있습니다. 릴리스
35 태그에서 빌드합니다.
36
37 ```bash
38 yay -S sqzass # paru도, 클론해서 makepkg -si도 됩니다
39 ```
40
41 `sqzass-bin`은 만들지 않았습니다. Arch에서 Rust 도구를 소스에서 빌드하는 건
42 정상이고, 패키지가 둘이면 어느 쪽이 최신인지 묻는 일만 생깁니다.
43
44 ## 코딩 에이전트로
45
46 이걸 에이전트에 붙여 넣으면 추측 없이 끝냅니다.
47
48 ```
49 Set up sqzass in this project.
50 Read https://sqzass.sqzer.com/agent.md first — it covers the install (sqzass is
51 not on crates.io), the TOML front matter, how @/ links resolve, and the error
52 identifiers to match on.
53 ```
54
55 [`/agent.md`](/agent.md)이 긴 쪽입니다. 같은 설치 명령과, 파일 트리만 봐서는
56 알 수 없는 규칙들과, exit code 표가 들어 있습니다. 이 파일이 있는 이유는
57 "정적 사이트 생성기를 붙여 줘"라는 말을 들은 에이전트가 그냥 두면
58 `cargo install sqzass`부터 시도하기 때문입니다 — 그건 실패합니다. sqzass는
59 git이나 릴리스 타르볼에서 설치합니다.
60
61 ## 소스에서 빌드
62
63 ```bash
64 git clone https://github.com/debuman/sqzass
65 cd sqzass
66 cargo build --release
67 ```
68
69 바이너리는 `target/release/sqzass`에 생깁니다.
70
71 ## 요구사항
72
73 | 요구사항 | 버전 |
74 |---|---|
75 | Rust | 1.97 이상 |
76 | C 컴파일러 | rustc가 링커 구동에 씁니다. 기본 빌드는 구문 강조의 정규식 엔진인 Oniguruma도 이걸로 컴파일합니다. |
77 | 그 외 | — |
78
79 정적 릴리스가 싣는 구성 그대로, 즉 순수 Rust 정규식 엔진에 C 소스 컴파일이
80 없는 상태도 플래그 하나면 됩니다.
81
82 ```bash
83 cargo build --release --no-default-features --features pure-rust
84 ```
85
86 ## 미리 빌드된 바이너리
87
88 [릴리스](https://github.com/debuman/sqzass/releases)마다 정적 링크된 리눅스 빌드 둘
89 (`x86_64-unknown-linux-musl`, `aarch64-unknown-linux-musl`)과
90 `aarch64-apple-darwin` 빌드가 붙습니다. 각각 `.sha256`이 옆에 있습니다.
91
92 ```bash
93 curl -LO https://github.com/debuman/sqzass/releases/latest/download/sqzass-x86_64-unknown-linux-musl.tar.gz
94 tar xzf sqzass-x86_64-unknown-linux-musl.tar.gz
95 sudo install -m755 sqzass-*/sqzass /usr/local/bin/
96 ```
97
98 리눅스 빌드는 정적이라 glibc를 요구하지 않고, 빌드한 배포판보다 오래된 배포판에서도
99 돕니다. 타르볼 하나가 Debian에서도 Fedora에서도 Arch에서도 그대로 도는 이유가
100 이것입니다. 순수 Rust 정규식 엔진을 쓰는 빌드이기도 합니다 — 다른 모든 곳에서
101 sqzass는 코드가 많은 사이트에서 눈에 띄게 빠른 Oniguruma로 강조하는데, Oniguruma는
102 C 바인딩이고, musl 정적 빌드를 깨뜨리는 게 바로 C 바인딩입니다. 두 엔진의 문법 집합도
103 같지 않습니다. 순수 Rust 엔진이 일부 문법의 정규식을 못 돌리기 때문에 정적
104 아티팩트에는 문법 일곱 개가 통째로 빠집니다 — PowerShell, JavaScript (Babel),
105 Salt State, ARM Assembly 등이요. 네이티브 빌드가 온전히 칠하는 ` ```powershell `
106 이나 ` ```jsx ` 펜스가 거기서는 에러 없이 평문이 됩니다. ` ```js `
107 조차 마크업 구조가 다릅니다. 네이티브 빌드는 Babel 문법으로, 정적 빌드는 일반
108 JavaScript로 해석합니다. 각 바이너리 자체는 여전히 완전히 결정적입니다.
109
110 ## 설치 확인
111
112 ```bash
113 sqzass --version
114 ```
115
116 다음은 [첫 사이트 만들기](@/start/first-site.md)입니다.