asdf 및 direnv 설정

⚙️ 환경 설정



ASDF 버전 관리자


asdf는 도구 버전 관리자입니다. 모든 도구 버전 정의는 프로젝트의 Git 리포지토리에 체크인하여 팀과 공유할 수 있는 하나의 파일(.tool-versions)에 포함되어 모든 사람이 정확히 동일한 버전의 도구를 사용하고 있는지 확인할 수 있습니다.

참조: https://asdf-vm.com/guide/introduction.html

asdf 설치


  • curl , gitunzip가 설치되어 있는지 확인하십시오.

  • asdf 다운로드

    git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.10.0
    


  • bash를 사용하는 경우 ~/.bashrc 파일에 다음을 추가합니다.

    . $HOME/.asdf/asdf.sh
    
    # configure completions
    . $HOME/.asdf/completions/asdf.bash
    


  • zsh를 사용하는 경우 ~/.zshrc 파일에 다음을 추가합니다.

    . $HOME/.asdf/asdf.sh
    
    # if using oh-my-zsh, add `asdf` to your plugins list
    # for example: plugins=(... asdf ...)
    
    # if you are not using oh-my-zsh, add the following to your `.zshrc` file:
    
    # append completions to fpath
    fpath=(${ASDF_DIR}/completions $fpath)
    
    # initialise completions with ZSH's compinit
    autoload -Uz compinit && compinit
    


  • 플러그인 설치


    asdf를 설치한 후 .tool-versions 파일에 있는 모든 플러그인을 추가합니다. 저장소에 따라 .tool-versions 파일에 정의된 도구에 따라 다릅니다.

    # Add all the plugins to asdf.
    cat .tool-versions | awk '{print $1}' | xargs -I _ asdf plugin add _
    
    # Install all tools according to .tool-versions.
    asdf install
    


    예시



    프로젝트.tool-versions 파일에 다음이 포함된 경우:

    ruby 2.6.3
    python 3.10.4
    nodejs 16.0.0
    


    그런 다음 asdf install를 실행하여 지정된 버전으로 모든 도구를 설치할 수 있습니다.

    글로벌 도구 버전



    선택적으로 홈 디렉터리에 다음.tool-versions 파일을 추가할 수 있습니다.

    direnv 2.31.0
    nodejs 16.13.2
    pnpm 7.1.5
    java adoptopenjdk-8.0.272+10
    minikube 1.25.1
    helm 3.6.3
    helmfile 0.139.9
    kubectl 1.23.3
    kubespy 0.6.0
    kubectx 0.9.4
    jq 1.6
    golang 1.15.15
    poetry 1.1.13
    


    !!! 메모
    최신 또는 안정적인 버전의 도구로 최신 상태를 유지하십시오.

    자세한 내용은 official asdf documentation을 참조하십시오.

    디렌브



    direnv 은 쉘의 확장입니다. 현재 디렉토리에 따라 환경 변수를 로드 및 언로드할 수 있는 새로운 기능으로 기존 셸을 보강합니다.
  • 설치 direnv

  • Hook 셸과 함께 direnv

  • 다음과 같은 direnv 파일을 생성하여 .envrc로 프로젝트를 설정합니다.

    #!/usr/bin/env bash
    export CR_PAT=<YOUR_GITHUB_PAT_WITH_REPO_READ_AND_WRITE>
    export NODE_AUTH_TOKEN=$CR_PAT
    export DEBUG="*"
    
    cat <<EOF >.env
    VITE_BASE_URL=${VITE_BASE_URL}
    NODE_AUTH_TOKEN=${CR_PAT}
    EOF
    


    direnv로 asdf 후크



    설정



  • 다음을 사용하여 direnv용으로 설치asdf-plugin:

    asdf plugin-add direnv
    


  • 설정 쉘

    # change --shell flag based on your current shell (bash, zsh, fish, etc.)
    asdf direnv setup --shell zsh --version latest
    


  • direnv가 연결되면 프로젝트 루트에 .envrc 파일이 있는 경우 프로젝트의 루트 디렉터리에서 다음 명령을 실행하여 환경을 업데이트할 수 있습니다.

    asdf direnv local
    


  • 임시 환경 만들기



    편집하지 않고 임시 환경을 생성할 수 있습니다.envrc 또는 .tool-versions.

    # Enter a new shell having python and node
    asdf direnv shell python 3.8.10 nodejs 14.18.2
    
    # Just execute a npx command under some node version
    asdf direnv shell nodejs 14.18.2 -- npx create-react-app
    


    참조:
  • https://asdf-vm.com/guide/introduction.html#direnv
  • https://github.com/asdf-community/asdf-direnv#setup
  • https://github.com/asdf-community/asdf-direnv#per-project-environments
  • 좋은 웹페이지 즐겨찾기