기타 Rust 설치 방법
어떤 설치 프로그램을 사용해야 합니까?
Rust는 여러 플랫폼에서 실행되며, Rust를 설치하는 방법도 다양합니다. 가장 간단하고 권장되는 방법으로 Rust를 설치하려면 메인 설치 페이지의 안내를 따르십시오.
해당 페이지는 Rust가 지원하는 모든 플랫폼에서 여러 Rust 툴체인을 일관된 방식으로 관리하는 도구인 rustup을 통한 설치 방법을 설명합니다(rustup 문서 참고). 그렇다면 왜 이 안내에 따라 설치하기를 원하지 않을 수도 있겠습니까?
- 오프라인 설치.
rustup은 필요할 때 인터넷에서 구성 요소를 내려받습니다. 인터넷에 접속할 수 없는 환경에서 Rust를 설치해야 한다면rustup은 적합하지 않습니다. - 시스템 패키지 관리자 선호. 특히 Linux에서, 그리고 Homebrew, MacPorts 또는 pkgsrc를 사용하는 macOS와 Chocolatey 또는 Scoop을 사용하는 Windows에서도, 개발자들은 때때로 자신의 플랫폼 패키지 관리자로 Rust를 설치하는 것을 선호합니다.
curl | sh방식에 대한 거부감. Unix에서는 보통curl로 셸 스크립트를 실행하여rustup을 설치합니다. 이러한 방식의 보안을 우려하여 설치 프로그램을 직접 내려받아 실행하기를 선호하는 사람들도 있습니다.- 서명 검증.
rustup은 HTTPS를 통해 내려받기를 수행하지만, 현재 Rust 설치 프로그램의 서명을 검증하는 유일한 방법은 독립 실행형 설치 프로그램을 사용하여 수동으로 검증하는 것입니다.
Rust의 플랫폼 지원은 세 단계(tier)로 정의되며, 이는 사용 가능한 설치 방법과 밀접하게 대응합니다. 일반적으로 Rust 프로젝트는 모든 Tier 1 및 Tier 2 플랫폼에 대해 바이너리 빌드를 제공하며, 이들은 모두 rustup으로 설치할 수 있습니다. 다만 일부 Tier 2 플랫폼에서는 컴파일러 자체가 아니라 표준 라이브러리만 제공됩니다. 즉, 이들은 크로스 컴파일 대상일 뿐이며, 해당 플랫폼에서 Rust 코드는 실행할 수 있지만 컴파일러 자체는 실행되지 않습니다. 이러한 대상은 rustup target add 명령으로 설치할 수 있습니다.
rustup을 설치하는 다른 방법
rustup의 기타 설치 방법을 참고하십시오.
독립 실행형 설치 프로그램
공식 Rust 독립 실행형 설치 프로그램에는 Rust의 단일 릴리스가 포함되어 있으며, 오프라인 설치에 적합합니다. 설치 프로그램은 세 가지 형태로 제공됩니다. 모든 Unix 계열 환경에서 동작하는 tarball(확장자 .tar.xz), Windows 설치 프로그램(.msi), Mac 설치 프로그램(.pkg)입니다. 이 설치 프로그램에는 rustc, cargo, rustdoc, 표준 라이브러리, 표준 문서가 함께 제공되지만, rustup처럼 추가 크로스 타깃을 사용할 수 있게 해 주지는 않습니다.
이 설치 프로그램을 사용하는 가장 흔한 이유는 다음과 같습니다.
- 오프라인 설치
- Windows에서 플랫폼에 더 잘 통합된 그래픽 설치 프로그램을 선호하는 경우
각 바이너리는 Rust 빌드 인프라가 GPG를 사용해 Rust 서명 키로 서명하며, 이 키는 keybase.io에서 받을 수 있습니다. 아래 표에서 .asc 파일이 서명입니다.
이전 릴리스는 아카이브에서 찾을 수 있습니다.
소스 코드
소스 코드에서 Rust 툴체인을 빌드하려면 다음 링크에서 소스 코드 tarball을 내려받을 수 있습니다.
| Channel | Archives + Signatures |
|---|---|
| stable (1.99.1) | tar.xz tar.xz.asc |
| beta | tar.xz tar.xz.asc |
| nightly | tar.xz tar.xz.asc |
게시된 소스 tarball이 rust git 저장소의 내용과 일치하는지 확인하려면 다음 스크립트를 템플릿으로 사용할 수 있습니다.
소스 tarball 내용 재현용 스크립트
#!/bin/bash
set -e
# You can use either a commit SHA or a stable release version (e.g. 1.XY.Z)
TAG=a8cfc83801301c2b4f0fd030192e268eeb15d473
# TAG=1.77.1
# Clone Rust toolchain repository from GitHub
git clone https://github.com/rust-lang/rust
cd rust
git reset --hard ${TAG}
git submodule update --init --recursive
cat >config.toml << EOF
[rust]
# Use for a commit SHA
channel = "nightly"
# Use for a stable release
# channel = "stable"
[dist]
compression-formats = ["xz"]
compression-profile = "fast"
EOF
# Build the source tarball from git into build/dist/
./x dist rustc-src
# Download source tarball for a commit SHA
wget https://ci-artifacts.rust-lang.org/rustc-builds/${TAG}/rustc-nightly-src.tar.xz
# Download a source tarball for a stable release
# wget https://static.rust-lang.org/dist/rustc-${TAG}-src.tar.xz
# Decompress the tarballs and check if they're the same
xz --decompress rustc-*-src.tar.xz
xz --decompress build/dist/rustc-*-src.tar.xz
diff rustc-*-src.tar build/dist/rustc-*-src.tar