다른 Rust 설치 방법
어떤 설치 프로그램을 사용해야 합니까?
Rust는 여러 플랫폼에서 실행되며, Rust를 설치하는 방법도 여러 가지입니다. 가장 간단하고 권장되는 방식으로 Rust를 설치하고 싶다면, 메인 installation page에 있는 안내를 따르십시오.
해당 페이지에서는 rustup을 통한 설치를 설명하는데, 이는 Rust가 지원하는 모든 플랫폼에서 일관된 방식으로 여러 Rust 툴체인을 관리하는 도구입니다 (rustup 문서 참조). 그렇다면 왜 이러한 안내를 따라 설치하고 싶지 않을 수도 있을까요?
- 오프라인 설치.
rustup은 필요에 따라 인터넷에서 구성 요소를 다운로드합니다. 인터넷에 접속하지 않고 Rust를 설치해야 한다면,rustup은 적합하지 않습니다. - 시스템 패키지 매니저를 선호하는 경우. 특히 Linux에서, 그리고 Homebrew, MacPorts 또는 pkgsrc를 사용하는 macOS와 Chocolatey 또는 Scoop을 사용하는 Windows에서도, 개발자들은 때때로 자신의 플랫폼 패키지 매니저로 Rust를 설치하는 것을 선호합니다.
curl | sh방식을 선호하지 않는 경우. Unix에서는 보통curl을 통해 셸 스크립트를 실행하여rustup을 설치합니다. 이러한 방식의 보안성에 우려를 가진 사람들도 있으며, 이들은 설치 프로그램을 직접 다운로드하여 실행하는 것을 선호합니다.- 서명 검증.
rustup이 HTTPS를 통해 다운로드를 수행하기는 하지만, 오늘날 Rust 설치 프로그램의 서명을 검증하는 유일한 방법은 독립형 설치 프로그램으로 수동으로 확인하는 것입니다.
Rust의 플랫폼 지원은 three tiers에서 정의되며, 이는 사용 가능한 설치 방법과 밀접하게 대응합니다. 일반적으로 Rust 프로젝트는 모든 Tier 1 및 Tier 2 플랫폼에 대해 바이너리 빌드를 제공하며, 이들은 모두 rustup을 통해 설치할 수 있습니다. 다만 일부 Tier 2 플랫폼은 컴파일러 자체가 아니라 표준 라이브러리만 제공됩니다. 즉, 이들은 크로스 컴파일 타깃일 뿐이며, Rust 코드는 해당 플랫폼에서 실행될 수 있지만 컴파일러 자체는 그 플랫폼에서 실행되지 않습니다. 이러한 대상은 rustup target add 명령으로 설치할 수 있습니다.
rustup을 설치하는 다른 방법
rustup의 다른 설치 방법을 참조하십시오.
독립 실행형 설치 프로그램
공식 Rust 독립 실행형 설치 프로그램은 Rust의 단일 릴리스를 포함하며, 오프라인 설치에 적합합니다. 이들은 세 가지 형태로 제공됩니다: 모든 유닉스 계열 환경에서 동작하는 tarball(.tar.xz 확장자), Windows 설치 프로그램(.msi), Mac 설치 프로그램(.pkg)입니다. 이 설치 프로그램에는 rustc, cargo, rustdoc, 표준 라이브러리, 표준 문서가 포함되어 있지만, rustup이 제공하는 것과 같은 추가 크로스 타깃에 대한 접근은 제공하지 않습니다.
이들을 사용하는 가장 흔한 이유는 다음과 같습니다:
- 오프라인 설치
- Windows에서 플랫폼에 더 잘 통합된 그래픽 설치 프로그램을 선호하는 경우
이 바이너리들은 각각 Rust 빌드 인프라에 의해 GPG를 사용하여 [keybase.io에서 확인할 수 있는] [Rust 서명 키]로 서명됩니다. 아래 표에서 .asc 파일이 서명입니다.
이전 릴리스는 아카이브에서 찾을 수 있습니다.
소스 코드
Rust 툴체인을 소스 코드에서 빌드하고 싶다면, 다음 링크를 이용해 소스 코드 tarball을 다운로드할 수 있습니다.
| Channel | Archives + Signatures |
|---|---|
| stable (1.98.1) | tar.xz tar.xz.asc |
| beta | tar.xz tar.xz.asc |
| nightly | tar.xz tar.xz.asc |
게시된 소스 타르볼이 rust git 저장소의 내용과 일치하는지 확인하고자 한다면, 다음 스크립트를 템플릿으로 사용할 수 있습니다.
Script for reproducing source tarball contents
#!/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