Rust 최신 버전의 설치 파일과 관련 컴포넌트를 다운로드하는 Bash 스크립트입니다. 이 스크립트는 온라인 환경에서 필요한 파일들을 다운로드하여 오프라인 환경으로 옮길 수 있게 만들어줍니다.
◎ Rust 최신 버전 다운로드 스크립트
#!/bin/bash # Rust의 최신 버전 정보 가져오기 RUST_VERSION=$(curl -s https://api.github.com/repos/rust-lang/rust/releases/latest | jq -r .tag_name) RUST_ARCH="x86_64-unknown-linux-gnu" # 다운로드 디렉토리 설정 DOWNLOAD_DIR="rust_downloads" mkdir -p $DOWNLOAD_DIR cd $DOWNLOAD_DIR # 최신 Rust 설치 스크립트 다운로드 echo "다운로드 중: rustup-init" curl -LO "https://static.rust-lang.org/rustup/dist/$RUST_ARCH/rustup-init" # Rust 최신 버전 및 표준 라이브러리 다운로드 echo "다운로드 중: rust-$RUST_VERSION" curl -LO "https://static.rust-lang.org/dist/rust-$RUST_VERSION-$RUST_ARCH.tar.gz" echo "다운로드 중: rust-std-$RUST_VERSION" curl -LO "https://static.rust-lang.org/dist/rust-std-$RUST_VERSION-$RUST_ARCH.tar.gz" # 다운로드 완료 후 echo "다운로드 완료!" echo "다음 파일들이 다운로드되었습니다:" echo " - rustup-init" echo " - rust-$RUST_VERSION-$RUST_ARCH.tar.gz" echo " - rust-std-$RUST_VERSION-$RUST_ARCH.tar.gz" |
- 설명:
- curl을 사용하여 GitHub API를 통해 최신 Rust 버전을 자동으로 가져옵니다.
- rustup-init은 Rust를 설치할 때 필요한 초기 설치 스크립트입니다.
- 최신 Rust 버전 및 표준 라이브러리(rust-std)를 다운로드합니다.
- 다운로드 디렉토리는 rust_downloads로 설정되며, 이 디렉토리 내에 필요한 파일들이 저장됩니다.
- 사용 방법:
- 이 스크립트를 복사하여 .sh 파일로 저장합니다 (예: download_rust.sh).
> 스크립트에 실행 권한을 부여합니다.
# chmod +x download_rust.sh |
> 스크립트를 실행합니다.
# ./download_rust.sh |
스크립트가 완료되면 rust_downloads 디렉토리 내에 필요한 파일들이 다운로드됩니다.
이후 파일들을 오프라인 시스템으로 scp나 다른 방법으로 전송하여 설치할 수 있습니다.
◎ 오프라인 시스템에서 Rust 설치 스크립트
이 스크립트는 미리 다운로드한 파일들을 사용하여 Rust를 오프라인으로 설치할 수 있게 도와줍니다.
- Rust 오프라인 설치 스크립트
#!/bin/bash # 설치할 디렉토리 지정 INSTALL_DIR="$HOME/.cargo" mkdir -p $INSTALL_DIR # 필요한 파일이 있는지 확인 if [ ! -f "rustup-init" ] || [ ! -f "rust-$RUST_VERSION-$RUST_ARCH.tar.gz" ] || [ ! -f "rust-std-$RUST_VERSION-$RUST_ARCH.tar.gz" ]; then echo "필요한 파일이 누락되었습니다. 다운로드한 파일들이 모두 있는지 확인하세요." exit 1 fi # rustup 설치 echo "Rust 설치 중..." # rustup-init 실행 chmod +x rustup-init ./rustup-init --no-modify-path --default-toolchain none # Rust 툴체인 설치 echo "Rust toolchain 설치 중..." tar -xzf rust-$RUST_VERSION-$RUST_ARCH.tar.gz cd rust-$RUST_VERSION-$RUST_ARCH ./install.sh --prefix=$INSTALL_DIR # Rust 표준 라이브러리 설치 echo "Rust 표준 라이브러리 설치 중..." tar -xzf rust-std-$RUST_VERSION-$RUST_ARCH.tar.gz cd rust-std-$RUST_VERSION-$RUST_ARCH ./install.sh --prefix=$INSTALL_DIR # 환경 변수 설정 echo "Rust 환경 설정 중..." echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc source ~/.bashrc # 설치 완료 메시지 echo "Rust 설치가 완료되었습니다. 터미널을 재시작하거나, `source ~/.bashrc` 명령어를 실행하여 적용하세요." echo "설치된 Rust 버전:" rustc --version |
- 설명:
> 파일 확인:
- rustup-init, rust-$RUST_VERSION-$RUST_ARCH.tar.gz, rust-std-$RUST_VERSION-$RUST_ARCH.tar.gz 파일들이 있는지 확인합니다. 이 파일들은 미리 다운로드한 파일이어야 합니다.
> rustup 설치:
- rustup-init를 실행하여 rustup을 설치합니다. 이때 --no-modify-path 옵션을 사용하여 시스템의 PATH를 수정하지 않도록 하고, --default-toolchain none 옵션으로 기본 툴체인 자동 다운로드를 방지합니다.
> Rust 툴체인 설치:
- 미리 다운로드한 rust-$RUST_VERSION-$RUST_ARCH.tar.gz 파일을 풀고, 이를 시스템에 설치합니다.
> Rust 표준 라이브러리 설치:
- rust-std-$RUST_VERSION-$RUST_ARCH.tar.gz 파일을 풀고, 이를 시스템에 설치합니다.
> 환경 변수 설정:
- Rust 설치 후, $HOME/.cargo/bin을 PATH 환경 변수에 추가하여 cargo, rustc 등을 터미널에서 사용할 수 있도록 합니다.
> 설치 완료 메시지:
- 설치가 완료되면, rustc --version 명령어로 Rust 버전을 확인합니다.
- 사용 방법
> 오프라인 시스템에 파일 복사:
- 먼저, 온라인 시스템에서 다운로드한 rustup-init, rust-$RUST_VERSION-$RUST_ARCH.tar.gz, rust-std-$RUST_VERSION-$RUST_ARCH.tar.gz 파일들을 오프라인 시스템으로 복사합니다.
> 스크립트 실행:
- 이 스크립트를 오프라인 시스템에 저장하고 실행합니다. 예를 들어 install_rust_offline.sh로 저장합니다.
# chmod +x install_rust_offline.sh # ./install_rust_offline.sh |
> 설치 후 확인:
- 설치가 완료되면, rustc --version 명령어로 정상적으로 설치되었는지 확인합니다.
- 추가적으로:
> 다른 쉘 사용 시: 만약 bash가 아닌 다른 쉘을 사용하고 있다면, ~/.bashrc 대신 해당 쉘의 설정 파일을 수정해야 합니다. 예를 들어, zsh를 사용한다면 ~/.zshrc에 환경 변수를 추가합니다.
> 설치 디렉토리 변경: $INSTALL_DIR을 다른 디렉토리로 변경하고 싶다면, 스크립트에서 해당 값을 수정할 수 있습니다.
◎ 오프라인 시스템에서 Rust 삭제 스크립트
이 스크립트는 설치된 Rust 파일과 관련된 디렉토리 및 환경 설정을 안전하게 제거하는 기능을 제공합니다.
- Rust 오프라인 삭제/제거 스크립트
#!/bin/bash # 설치된 Rust 디렉토리 및 관련 파일들 INSTALL_DIR="$HOME/.cargo" RUSTUP_DIR="$HOME/.rustup" # Rust 관련 환경 변수 파일 (bash, zsh 등) SHELL_RC_FILE="$HOME/.bashrc" # 환경 변수에서 Rust 관련 PATH 제거 echo "환경 변수에서 Rust 관련 PATH 제거 중..." if grep -q 'cargo' "$SHELL_RC_FILE"; then sed -i '/cargo/d' "$SHELL_RC_FILE" echo "환경 변수에서 PATH 제거 완료." else echo "환경 변수에 PATH가 설정되지 않았습니다." fi # .cargo 및 .rustup 디렉토리 삭제 echo "Rust 파일 및 디렉토리 삭제 중..." if [ -d "$INSTALL_DIR" ]; then rm -rf "$INSTALL_DIR" echo "$INSTALL_DIR 디렉토리 삭제 완료." else echo "$INSTALL_DIR 디렉토리가 존재하지 않습니다." fi if [ -d "$RUSTUP_DIR" ]; then rm -rf "$RUSTUP_DIR" echo "$RUSTUP_DIR 디렉토리 삭제 완료." else echo "$RUSTUP_DIR 디렉토리가 존재하지 않습니다." fi # 추가적으로 설치한 Rust 패키지와 툴 삭제 (선택 사항) if command -v rustc &>/dev/null; then echo "rustc가 설치되어 있습니다. 삭제 중..." rm -rf "$(which rustc)" echo "rustc 삭제 완료." fi if command -v cargo &>/dev/null; then echo "cargo가 설치되어 있습니다. 삭제 중..." rm -rf "$(which cargo)" echo "cargo 삭제 완료." fi # bashrc 적용 echo "변경 사항을 적용 중..." source "$SHELL_RC_FILE" echo "Rust 삭제가 완료되었습니다." |
- 설명:
> 환경 변수에서 Rust 관련 PATH 제거:
- ~/.bashrc 또는 ~/.zshrc와 같은 쉘 설정 파일에서 cargo와 관련된 환경 변수 라인을 삭제합니다.
- sed -i '/cargo/d' 명령어로 PATH 변수에 추가된 cargo 경로를 제거합니다.
> Rust 설치 디렉토리 삭제:
- $HOME/.cargo와 $HOME/.rustup 디렉토리를 제거합니다. 이 디렉토리들은 Rust의 주요 설치 위치이므로 이들을 삭제합니다.
> Rust 관련 바이너리 삭제:
- rustc와 cargo가 설치된 위치를 확인한 후 삭제합니다. which 명령어로 경로를 찾고, 해당 경로에서 직접 삭제합니다.
> 환경 변수 적용:
- .bashrc 또는 .zshrc 파일을 수정한 후, source 명령어를 사용하여 변경 사항을 즉시 적용합니다.
- 사용 방법:
> 스크립트 실행:
위 스크립트를 uninstall_rust.sh라는 파일로 저장한 후, 실행 권한을 부여하고 실행합니다.
# chmod +x uninstall_rust.sh # ./uninstall_rust.sh |
> 삭제 완료:
- 스크립트가 완료되면, Rust와 관련된 모든 파일이 삭제되고 환경 변수에서 cargo와 관련된 항목도 제거됩니다.
> 검증:
- rustc --version 또는 cargo --version을 실행하여 Rust가 정상적으로 삭제되었는지 확인합니다. 명령어가 "command not found"로 나오면 삭제가 성공적으로 완료된 것입니다.
- 추가 참고 사항:
> 다른 쉘 사용 시:
- ~/.bashrc 외에 다른 쉘을 사용 중이라면 해당 쉘의 설정 파일 (~/.zshrc, ~/.fish, 등)을 지정해야 합니다. 스크립트에서 SHELL_RC_FILE 변수를 변경하여 적용할 수 있습니다.
> 추가적으로 설치된 패키지:
- 만약 오프라인 환경에서 rustup 외에 다른 방식으로 Rust를 설치했다면, 해당 설치 방식에 맞게 디렉토리 삭제 부분을 수정해야 할 수 있습니다.
'IT > Linux' 카테고리의 다른 글
Kali Linux 2025.2 릴리스: 보안 전문가를 위한 혁신적인 업데이트 (0) | 2025.07.13 |
---|---|
[Linux] 리눅스 IP Route 명령어 가이드: 임시/영구 라우팅 설정과 다중 인터페이스 관리 (0) | 2025.06.24 |
[Linux] USB를 EXT4로 포맷하는 방법과 Windows에서 EXT4 인식/포맷 가이드 (0) | 2025.06.23 |
[Linux] 리눅스 배포판 별 CLI에서 USB 마운트 및 언마운트 (0) | 2025.06.23 |
[Linux] 리눅스 ss 명령어 기본과 실전 활용 예제 (0) | 2025.06.18 |