티스토리 뷰

하나의 서비스를 하는 회사에서도 실제적으로는 많은 프로젝트들을 동시에 진행하기도 합니다.

이럴때에 각 서비스들의 version 등과 같은 환경을 다 동일하게 맞추면 좋지만 버전 업데이트를 위해서는 많은 시간을 들여야 할수도 있습니다.

 

그래서 프로젝트 별로 조금 다른 버전을 사용하여서 개발할수도 있습니다.

이러한 문제점을 없애기 위해서 direnv를 이용할 수 있습니다.

 

동작원리는 사용자가 지금 사용하고 있는 디렉토리의 .envrc 파일을 생성하고 읽어 들이면서 필요한 설정들을 불러오는 방식입니다.

그리고 해당 디렉토리에서 벗어나면 당연스럽게도 해제를 해주어서 여러가지 환경에서 개발하기에 좋도록 만들어줍니다.

 

맥에서 받고 싶으면 다음과 같이 합니다.

물론 brew는 설치가 되어 있어야 합니다.

$ brew install direnv

설치 여부 확인은 다음과 같이 합니다.

$ direnv --version

 

그리고 shell 설정 파일에 값을 추가하여 줍니다.

공식적으로는 BASH, ZSH, FISH, TCSH, Elvish를 지원한다고 합니다.

# BASH
~/.bashrc에 아래 내용 추가
$ eval "$(direnv hook bash)"

# ZSH
~/.zshrc에 아래 내용 추가
$ eval "$(direnv hook zsh)"

# FISH
~/.config/fish/config.fish에 아래 내용 추가
$ eval (direnv hook fish)

# TCSH
~/.cshrc에 아래 내용 추가
$ eval `direnv hook tcsh`

# Elvish
$ direnv hook elvish > ~/.elvish/lib/direnv.elv
~/.elvish/rc.elv에 아래 내용 추가
$ use direnv

하고 난 다음에는 source를 이용하여서 적용하여 주도록 합니다.

저는 zsh을 이용하기 때문에 다른분들은 자신의 환경에 맞는걸로 찾아보도록 해요.

$ source ~/.zshrc

그리고 적용 방법 하나의 폴더를 만들고 내부에서 적용할수 있는 .envrc 파일을 만들어 줍니다.

$ cd myDir
$ vi .envrc

파일이 생성되면 allow 해달라고 나오는데요. 이때에 direnv allow를 하면 됩니다.

$ direnv allow

간략하게 direnv를 사용하는 방법에 대해서 알아봤습니다.

세부적인 세팅이나 사용법에 대해서는 각자의 환경에 맞도록 찾아보시면 많은 자료들이 있으니 찾아보시길 추천 드립니다.

 

그럼 모두들 수고하세요.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함