깔끔한 방법으로 macOS에서 Rust 설정하기

6061 단어 macosrust

소개



내가 처음 Rust를 시작하고 싶었을 때, 적어도 Mac 장치에서 Rust의 툴체인에 대해 제안된 설치 방법에 대해 약간 혼란스러웠습니다. 익숙하지 않다면 사람들이 Mac에 Rust를 설치하는 일반적인 3가지 방법이 있습니다.
  • 많은 사람들이 Rust 웹사이트에서 제안한 대로 다음 명령을 실행합니다: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh이 방법에 대한 우려는 향후에 완전히 제거하는 방법이 즉시 명확하지 않다는 것입니다. 또한 쉘 스크립트가 정확히 무엇을 하는지 이해하려면 쉘 스크립트를 읽어야 합니다.
  • 또 다른 옵션은 rust 공식을 brew로 설치하는 것입니다.
    그러나 이것은 기본적으로 주어진 기본 하드웨어에 대해 단일 도구 체인을 설치하는 것입니다. rustup가 이 공식의 일부가 아닌 것처럼 보이기 때문에 다른 도구 체인을 추가하여 쉽게 크로스 컴파일할 수 없습니다.
  • 마지막 옵션은 대신 rustup-init formula을 설치하는 것입니다. 이 방법이 최선의 옵션이라고 생각하지만 몇 가지 추가 수동 작업이 필요하므로 안내해 드리겠습니다.

  • rustup을 위한 환경 변수 설정



    나는 $HOME 디렉토리를 깨끗하게 유지하는 것을 좋아하므로 가능한 한 XDG Base Directory Specification을 따르려고 노력합니다. 다음은 내 ~/.zshenv에서 설정한 XDG 변수입니다.

    export XDG_CONFIG_HOME="$HOME"/.config
    export XDG_DATA_HOME="$HOME"/.local/share
    export XDG_CACHE_HOME="$HOME"/.cache
    


    Rust를 사용하면 환경 변수와 함께 툴체인의 위치를 ​​구성할 수 있습니다. 여기에서 가장 중요한 두 가지를 설정했습니다.

    export CARGO_HOME="$XDG_DATA_HOME"/cargo
    export RUSTUP_HOME="$XDG_DATA_HOME"/rustup
    


    설치



    이제 rustup-init를 설치하고 실행할 수 있습니다.

    brew install rustup-init
    rustup-init
    


    녹 설치 과정으로 인사드리겠습니다.

    Welcome to Rust!
    
    This will download and install the official compiler for the Rust
    programming language, and its package manager, Cargo.
    
    Rustup metadata and toolchains will be installed into the Rustup
    home directory, located at:
    
      /Users/xs/.local/share/rustup
    
    This can be modified with the RUSTUP_HOME environment variable.
    
    The Cargo home directory located at:
    
      /Users/xs/.local/share/cargo
    
    This can be modified with the CARGO_HOME environment variable.
    
    The cargo, rustc, rustup and other commands will be added to
    Cargo's bin directory, located at:
    
      /Users/xs/.local/share/cargo/bin
    
    This path will then be added to your PATH environment variable by
    modifying the profile files located at:
    
      /Users/xs/.profile
      /Users/xs/.zshenv
    
    You can uninstall at any time with rustup self uninstall and
    these changes will be reverted.
    
    Current installation options:
    
    
       default host triple: aarch64-apple-darwin
         default toolchain: stable (default)
                   profile: default
      modify PATH variable: yes
    
    1) Proceed with installation (default)
    2) Customize installation
    3) Cancel installation
    


    제안된 디렉터리가 env vars를 사용하여 설정한 디렉터리와 일치하는지 확인합니다. 수동으로 제어하는 ​​것을 좋아하기 때문에 개인적으로 PATH var 수정을 비활성화하는 것을 좋아합니다. 여기 내 PATH의 현재 .zshrc가 있습니다.

    path=(
        "$HOME"/go/bin
        "$XDG_DATA_HOME"/cargo/bin
        "$HOME"/.krew/bin
        /opt/homebrew/opt/make/libexec/gnubin
        /opt/homebrew/opt/man-db/libexec/bin
        /opt/homebrew/opt/grep/libexec/gnubin
        /opt/homebrew/opt/gnu-tar/libexec/gnubin
        /opt/homebrew/opt/gnu-sed/libexec/gnubin
        /opt/homebrew/opt/findutils/libexec/gnubin
        /opt/homebrew/opt/coreutils/libexec/gnubin
        $path
    )
    


    쉘 완성 설정



    기본적으로 대부분의 수식은 $(brew --prefix)/share/zsh/site-functions 에 셸 완성을 설치합니다. Homebrew 디렉토리를 수동으로 변경하지 않는 것을 선호하므로 홈 디렉토리에 다른 디렉토리를 설정할 수 있습니다. 내 $fpath.zshrc 변수를 다음과 같이 설정하고 싶습니다.

    fpath=(
        /opt/homebrew/share/zsh/site-functions
        "$XDG_DATA_HOME"/zsh/site-functions
        $fpath
    )
    


    그래서 저는 단순히 "$XDG_DATA_HOME"/zsh/site-functions에 디렉토리를 만들고 거기에 쉘 완성 파일을 작성합니다.

    rustup completion zsh cargo > $XDG_DATA_HOME/zsh/site-functions/_cargo
    rustup completion zsh rustup > "$XDG_DATA_HOME"/zsh/site-functions/_rustup
    


    참고: bash 또는 fish 를 사용하는 경우 rustup completions --help 를 사용하여 더 읽을 수 있습니다.

    셸을 다시 시작하면 셸 완성이 의도한 대로 작동합니다. 이제 마침내 rustup toolchain 명령을 사용하여 모든 도구 체인을 쉽게 관리할 수 있습니다. 나는 이것이 Mac에서 Rust를 설치하고 관리하는 "가장 깔끔한"방법이라고 생각하며 이것이 일부 사람들에게 도움이 되었기를 바랍니다.

    좋은 웹페이지 즐겨찾기