direnv(Directory Environment) 란?
direnv는 이름 그대로 폴더별로 환경을 관리해주는 도구이다.
direnv로 설정을 해 놓으면 폴더 이동을 할 때마다 자동으로 설정해놓은 환경변수나 원하는 런타임 버전 지정 등을 알아서 할 수 있다. 그래서 한번 설정해 놓으면 해당 프로젝트에서 다른 설정에 대해서는 잊어버리고 쉽게 작업을 할 수 있고 어떤 환경 설정을 해놨는지가 궁금해지면 설정 파일을 열어보면 그만이다.
direnv는 Go로 작성되었는데 홈페이지에 나온대로 각 OS의 패키지 매니저를 이용해서 설치하거나(macOS라면 brew install direnv
) 릴리스 페이지에서 OS에 맞는 바이너리를 받아서 설치해서 사용하면 된다.
direnv 를 cli 에 적용하기
설치 후에는 쉘에서 direnv가 실행되도록 해야 하므로 bash
를 쓰고 있다면 ~/.bashrc
파일에 eval "$(direnv hook bash)"
를 추가하면 폴더 이동을 할 때마다 자동으로 실행되게 된다. bash
외에 다른 쉘을 쓰고 있다면 zsh, fish, tcsh를 다 지원하므로 홈페이지를 참고해서 설정하면 된다.
위 명령어를 통해 cli 에서 디렉토리를 이동하는 경우에 훅을 걸어 특정 설정을 적용시킬 수 있다.
.direnv 파일의 예
Comments