sqzass.git

sqzass

~ A static site generator written in Rust
git clone https://github.com/debuman/sqzass.git

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)입니다.