์ด๊ฒ์ Ubuntu Online, Fedora Online, Windows ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ ๋๋ MAC OS ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ์ ๊ฐ์ ์ฌ๋ฌ ๋ฌด๋ฃ ์จ๋ผ์ธ ์ํฌ์คํ ์ด์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ OnWorks ๋ฌด๋ฃ ํธ์คํ ๊ณต๊ธ์์์ ์คํํ ์ ์๋ ๋ช ๋ น direnv์ ๋๋ค.
ํ๋ก๊ทธ๋จ:
์ด๋ฆ
direnv - .profile ์ ๋ฆฌ
๊ฐ์
๋ ๋ ํ ๋ช ๋ น ...
๊ธฐ์
๋ ๋ ํ ์์ ํ๊ฒฝ ๋ณ์ ๊ด๋ฆฌ์์ ๋๋ค. bash์ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์ต๋๋ค.
ํ์ฌ์ ๋ฐ๋ผ ํ๊ฒฝ ๋ณ์๋ฅผ ๋ก๋ํ๊ฑฐ๋ ์ธ๋ก๋ํ๋ zsh ๋ฐ fish shell
์๋ฐฐ ๊ท์น์. ์ด๋ ๊ฒ ํ๋ฉด ๋ณต์กํ์ง ์์ ํ๋ก์ ํธ๋ณ ํ๊ฒฝ ๋ณ์๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
"~ / .profile" ํ์ผ.
๊ฐ ํ๋กฌํํธ ์ ์ ํ์ฌ ํ์ผ์ ".envrc" ํ์ผ์ด ์๋์ง ํ์ธํ๊ณ
์์ ๋๋ ํ ๋ฆฌ. ํ์ผ์ด ์กด์ฌํ๋ฉด bash ํ์ ์ ธ์ ๋ก๋๋๊ณ ๋ชจ๋
๋ด๋ณด๋ธ ๋ณ์๋ direnv์ ์ํด ์บก์ฒ๋ ๋ค์ ํ์ฌ ์ฌ์ฉ์์๊ฒ ์ ๊ณต๋ฉ๋๋ค.
๊ป์ง.
direnv๋ ๋จ์ผ ์ ์ ์คํ ํ์ผ๋ก ์ปดํ์ผ๋๊ธฐ ๋๋ฌธ์ ์ถฉ๋ถํ ๋น ๋ฆ ๋๋ค.
๊ฐ ํ๋กฌํํธ์์ ๋์ ๋์ง ์์ต๋๋ค. ๋ํ ์ธ์ด์ ๊ตฌ์ ๋ฐ์ง ์์ผ๋ฉฐ ๋น๋ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
rbenv, pyenv, phpenv, ...์ ์ ์ฌํ ์๋ฃจ์
์
$ cd ~/my_project
$ ์์ฝ ${FOO-์๋์}
์๋
$ ์์ฝ ๋ด๋ณด๋ด๊ธฐ FOO=foo > .envrc
.envrc๋ ํ์ฉ๋์ง ์์ต๋๋ค.
$ direnv ํ์ฉ .
direnv: ๋ค์ ๋ก๋
direnv: .envrc ๋ก๋ ์ค
direnv ๋ด๋ณด๋ด๊ธฐ: +FOO
$ ์์ฝ ${FOO-์๋์}
ํธ
$cd ..
direnv: ์ธ๋ก๋
๋๋ ํ ๋ฆฌ ๋ด๋ณด๋ด๊ธฐ: ~PATH
$ ์์ฝ ${FOO-์๋์}
์๋
์ค์
direnv๊ฐ ์ ๋๋ก ์๋ํ๋ ค๋ฉด ์์ ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค. ๊ฐ ๊ป์ง์๋ ๊ณ ์ ํ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
ํ์ฅ ๋ฉ์ปค๋์ฆ:
BASH
" ๋์ ๋ค์ ์ค์ ์ถ๊ฐํ์ญ์์ค.~ / .bashrc" ํ์ผ:
ํ๊ฐ "$(๋๋ ๋ธ ํ ์ธ๊ฒ ๋๋ฆฌ๋ค)"
์กฐ์ํ๋ rvm, git-prompt ๋ฐ ๊ธฐํ ์ ธ ํ์ฅ ํ์๋ ํ์๋๋์ง ํ์ธํ์ญ์์ค.
๋น์ ์ ํ๋กฌํํธ.
ZSH
" ๋์ ๋ค์ ์ค์ ์ถ๊ฐํ์ญ์์ค.~ / .zshrc" ํ์ผ:
ํ๊ฐ "$(๋๋ ๋ธ ํ zsh)"
๋ฌผ๊ณ ๊ธฐ
" ๋์ ๋ค์ ์ค์ ์ถ๊ฐํ์ญ์์ค.~ / .config / fish / config.fish" ํ์ผ:
ํ๊ฐ (๋๋ ๋ธ ํ ๋ฌผ๊ณ ๊ธฐ)
HSCT
" ๋์ ๋ค์ ์ค์ ์ถ๊ฐํ์ญ์์ค.~/.cshrc" ํ์ผ:
ํ๊ฐ `direnv ํํฌ tcsh`
์ฌ์ฉ๋ฒ
์ผ๋ถ ๋์ ํด๋์์ ".envrc" ํ์ผ์ ๋ง๋ค๊ณ ์ผ๋ถ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์์ถ(1) ๊ทธ ์์ ์๋ ์ง์๋ฌธ.
๋ค์ ํ๋กฌํํธ์์ direnv๊ฐ ์ฐจ๋จ๋ ".envrc"์ ๋ํด ๋ถํํ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์ ํ์ผ์ด ์๋์ผ๋ก ๋ก๋๋์ง ์๋๋ก ํ๋ ๋ณด์ ๋ฉ์ปค๋์ฆ์ ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ชจ๋ ์์
๊ฐ์ ธ์ค๋ ์ ์ฅ์ ๋๋ ์์ถ์ ํผ tar ์์นด์ด๋ธ๋ ํ๋ ๋๋ผ์ด๋ธ๋ฅผ ์ง์ธ ์ ์์ต๋๋ค.
์ผ๋จ ๋น์ cd ๊ทธ๊ฒ์ผ๋ก.
๊ทธ๋์ ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ด ๋์ ์ผ์ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. ์ ํ ๋ ๋ ํ ์ . ๋ณด๊ณ
direnv๊ฐ ์ ํ๊ฒฝ์ ๋ก๋ํฉ๋๋ค. ์ฐธ๊ณ ๋ ๋ ํ ํธ์ง . ์ด ์ ์๋ ํธ๋ฆฌํ ๋ฐ๋ก ๊ฐ๊ธฐ์ ๋๋ค.
$EDITOR์ ์๋ ํ์ผ์ ์์ ํ๊ณ ํ์ผ ์์ ์๊ฐ์ด
๋ฐ๊พธ์์ต๋๋ค.
์ด์ ํ๊ฒฝ์ด ๋ก๋๋์์ผ๋ฏ๋ก cd ๋๋ ํ ๋ฆฌ ๋ฐ์ผ๋ก
์๋์ผ๋ก ์ธ๋ก๋๋ฉ๋๋ค. ๋ง์ฝ ๋๋ผ๋ฉด cd ๋ค์ ๋ก๋๋ฉ๋๋ค. ๊ทธ๊ฒ ๊ธฐ์ด๋ค.
๋ฉ์ง ๊ฒ์ ๋ง๋ค ์ ์๋ ๋ฉ์ปค๋์ฆ์ ๋๋ค.
์๋์ผ๋ก ๋ณ์๋ฅผ ๋ด๋ณด๋ด๋ ๊ฒ์ ์ฝ๊ฐ ๋ฐ๋ณต์ ์ด๋ฏ๋ก direnv๋ ์ ํธ๋ฆฌํฐ ์ธํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
".envrc" ํ์ผ์ ์ปจํ ์คํธ์์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ. ์ ์ฒดํฌ ํด๋ด ๋๋ ๋ธ-
ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ(1) ์์ธํ ๋ด์ฉ์ ๋งค๋ด์ผ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ญ์์ค. ๋ด๋ถ์์ ๊ณ ์ ํ ํ์ฅ์ ์ ์ํ ์๋ ์์ต๋๋ค.
"~/.direnvrc" ํ์ผ.
์์ํ๊ธฐ์ ์ถฉ๋ถํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ธฐ์ฌ
๋ฒ๊ทธ ๋ณด๊ณ ์, ๊ธฐ์ฌ ๋ฐ ํฌํฌ๋ฅผ ํ์ํฉ๋๋ค.
๋ชจ๋ ๋ฒ๊ทธ ๋๋ ๊ธฐํ ํํ์ ํ ๋ก ์ โจ์์ ์ด๋ฃจ์ด์ง๋๋ค.http://github.com/direnv/direnv/issuesโฉ
์ฌ์ฉ ํจํด์ด๋ ๊ธฐํ ํ์ ๊ณต์ ํ ์ ์๋ ์ํค๋ ์์ต๋๋ค.
ํธ๋ฆญ โจhttps://github.com/direnv/direnv/wikiโฉ
๋๋ FreeNode โจirc://#direnv@FreeNodeโฉ์ #direnv ์ฑ๋์ ๋ค๋ฌ ์ฑํ ์ ํ์ญ์์ค.
์ ์๊ถ
Copyright (C) 2014 zimbatm ๋ฐ MIT ๋ผ์ด์ ์ค์ ๋ฐ๋ฅธ ๊ธฐ๊ณ ์.
onworks.net ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ direnv ์จ๋ผ์ธ ์ฌ์ฉ