์˜์–ดํ”„๋ž‘์Šค์–ด์ŠคํŽ˜์ธ์–ด

Ad


์˜จ์›์Šค ํŒŒ๋น„์ฝ˜

direnv - ํด๋ผ์šฐ๋“œ์˜ ์˜จ๋ผ์ธ

Ubuntu Online, Fedora Online, Windows ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋˜๋Š” MAC OS ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ํ†ตํ•ด OnWorks ๋ฌด๋ฃŒ ํ˜ธ์ŠคํŒ… ์ œ๊ณต์—…์ฒด์—์„œ direnv ์‹คํ–‰

์ด๊ฒƒ์€ 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 ์˜จ๋ผ์ธ ์‚ฌ์šฉ


๋ฌด๋ฃŒ ์„œ๋ฒ„ ๋ฐ ์›Œํฌ์Šคํ…Œ์ด์…˜

Windows ๋ฐ Linux ์•ฑ ๋‹ค์šด๋กœ๋“œ

Linux ๋ช…๋ น

Ad