Toolbox: ํ™ˆ ๊ฒฝ๋กœ ์กฐ์ •

์— ๋งŒ๋“  2019๋…„ 12์›” 11์ผ  ยท  17์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: containers/toolbox

๋‚˜๋Š” ๋‹ค์–‘ํ•œ ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ๋„๊ตฌ ์ƒ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค์„ ์ ์ ˆํžˆ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ(์˜ˆ: container1:/home/user -> host:/var/home/user/container1)์— ๋งˆ์šดํŠธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. #183๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ ๋ณด์•ˆ ์ค‘์‹ฌ์ ์ด์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.
์ผ๊ด€๋œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ํ˜„์žฌ ์ด๋ฅผ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ(์ฝ”๋“œ ์ค„์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์ง€ ์•Š๊ณ  ๋‹ค์Œ ์—…๋ฐ์ดํŠธ ํ›„์— ํŒŒ์ผ์„ ๋‹ค๋ฅธ ๊ณณ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค ;))?

์—…๋ฐ์ดํŠธ: ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž ์ปจํ…์ŠคํŠธ ์•„๋ž˜์— ์žˆ๋Š” ๊ฒƒ์„ ์‹ค์ œ๋กœ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค(์‹ฌ์ง€์–ด ๊ฐ์‚ฌํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค). ๊ทธ๋Ÿฌ๋‚˜ ๋™์ผํ•œ ์ผ๋ฐ˜ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ถ„๋ช…ํ•œ ๊ตฌ๋ณ„๊ณผ ๋ถ„๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์„ "์ข‹์€ ๋ฐฉ๋ฒ•"์œผ๋กœ ์ตœ์ข… ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ผ ๋ธŒ๋ผ์šฐ์ €๋ฅผ sudo๋กœ ์—ฌ๋Š” ์ถ”๊ฐ€ ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค... (์—ฌ๊ธฐ์„œ ํฌ๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด ๋จ)

๋ฏธ๋ฆฌ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
ํฌ๋ฆฌ์Šค

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ €๋„ ์ด๋Ÿฐ๊ฑฐ ๋ณด๊ณ ์‹ถ์Šต๋‹ˆ๋‹ค. Toolbox์˜ ์ฃผ์š” ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์ž‘์—…ํ•˜๊ฑฐ๋‚˜ ์†Œ์Šค์—์„œ ์ผ๋ถ€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋น ๋ฅด๊ฒŒ ์ปดํŒŒ์ผํ•˜๊ธฐ ์œ„ํ•ด ์ผํšŒ์šฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ๋งŒ ์ปดํŒŒ์ผํ•˜๊ธฐ ์œ„ํ•ด ์ข…์†์„ฑ ๋“ฑ์˜ ์ž„์˜ ํŒŒ์ผ๋กœ ์‹œ์Šคํ…œ์„ ์˜ค์—ผ์‹œํ‚ค๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Toolbox๋Š” ํ˜ธ์ŠคํŠธ๋ฅผ ๊นจ๋—ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ฒฉ๋ฆฌ๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ณตํ•œ๋‹ค๊ณ  ์ฃผ์žฅํ•˜๋ฏ€๋กœ ์ด์— ์™„๋ฒฝํ•ด ๋ณด์˜€์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ์˜ˆ์ƒํ•œ ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค. Toolbox ๋Š” ํ˜ธ์ŠคํŠธ OS๋ฅผ ๊นจ๋—ํ•˜๊ฒŒ ์œ ์ง€ํ•˜์ง€๋งŒ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ „ํ˜€ ๊นจ๋—ํ•˜๊ฒŒ ์œ ์ง€ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์™„์ „ํžˆ ์˜ค์—ผ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, rust ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฌด์–ธ๊ฐ€๋ฅผ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•ด ์ผํšŒ์šฉ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‚ด ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—ฌ๋Ÿฌ ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • ~/.cargo ๋””๋ ‰ํ† ๋ฆฌ๋Š” ์ด 123MB์— ๋Œ€ํ•ด ๋งŽ์€ Rust ๊ด€๋ จ ๋ฐ”์ด๋„ˆ๋ฆฌ, ์†Œ์Šค ํŒจํ‚ค์ง€ ๋“ฑ์„ ํฌํ•จํ•˜์—ฌ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ~/.rustup ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋” ๋งŽ์€ Rust ๊ด€๋ จ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ด 683MB์— โ€‹โ€‹์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‚ด ~/.bash_profile ํŒŒ์ผ์€ ~/.cargo/bin ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ๋ณด๋‹ค ๋จผ์ € $PATH์— ์ถ”๊ฐ€ํ•˜๋„๋ก ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‚ด ~/.profile ํŒŒ์ผ์€ ~/.cargo/bin ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ๋ณด๋‹ค ๋จผ์ € $PATH์— ์ถ”๊ฐ€ํ•˜๋„๋ก ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ˆ„๊ฐ€ ๋˜ ๋ญ˜ ์•Œ๊ฒ ์–ด.

๊ทธ๋ ‡๊ตฐ์š”. ์ผ์‹œ์ ์ด๊ณ  ํ๊ธฐํ•˜๊ธฐ ์‰ฌ์šด ์‹œ์Šคํ…œ์œผ๋กœ ์—ฌ๊ฒจ์กŒ๋˜ ๊ฒƒ์ด ๋‚ด ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ์— ๋งŽ์€ ์˜๊ตฌ์ ์ธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ž๋™์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. ์œ„์˜ ์„ค๋ช…์„ ํ†ตํ•ด ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜๋™์œผ๋กœ $HOME ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Œ์„ ๊นจ๋‹ฌ์•˜์ง€๋งŒ ์ด๊ฒƒ์€ ์ง๊ด€์ ์ด๊ฑฐ๋‚˜ ์˜ˆ์ƒํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. Toolbox๋Š” ์ปจํ…Œ์ด๋„ˆ์— ๋“ค์–ด๊ฐ€๋Š” ๋‹จ์ˆœํ™”๋˜๊ณ  ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ๋ฐฉ๋ฒ•(๋˜๋Š” ์ ์–ด๋„ ๋‚ด๊ฐ€ ์ดํ•ดํ•˜๋Š” ํ•œ)์ด์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ๋” ๋‚˜์€ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚ด ์ƒ๊ฐ์— Toolbox์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ณ ์œ ํ•œ ์‚ฌ์šฉ์ž์™€ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด ๊ตฌํ˜„ํ•˜๊ธฐ์— ๋„ˆ๋ฌด ๋ณต์žกํ•˜๋‹ค๋ฉด ์ƒˆ ๋„๊ตฌ ์ƒ์ž๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๊ธฐ๋ณธ $HOME์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์†Œํ•œ -h ๋˜๋Š” --home ์ธ์ˆ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ๋„๊ตฌ ์ƒ์ž์— ๋“ค์–ด๊ฐˆ ๋•Œ $HOME ๊ฐ’์ด ์ž๋™์œผ๋กœ ์„ค์ •๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, toolbox create -c temp-myproject -h ~/Toolboxes/temp-myproject ํ–‰์„ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


๊ธฐ๋ณธ์ ์œผ๋กœ Toolbox์— ์„ธ ๊ฐ€์ง€ ๋ชจ๋“œ ์ค‘ ํ•˜๋‚˜๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ๋ฐฉ๋ฒ•์ด ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์‹ฌ๋ฆฌ์Šค ๋ชจ๋“œ: ํ˜„์žฌ ์ž‘๋™ ๋ฐฉ์‹. ์ปจํ…Œ์ด๋„ˆ ์‚ฌ์šฉ์ž๋Š” ์‹ค์ œ ํ˜ธ์ŠคํŠธ ์‚ฌ์šฉ์ž์ธ ๊ฒƒ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜์—ฌ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฐ˜ ๊ฒฉ๋ฆฌ ๋ชจ๋“œ: ์ปจํ…Œ์ด๋„ˆ๋Š” ํ˜ธ์ŠคํŠธ ์‚ฌ์šฉ์ž์˜ ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž์ฒด ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์— ์ฝ๊ธฐ/์“ฐ๊ธฐ๋ฅผ ํ•˜๋ ค๋ฉด ํ˜ธ์ŠคํŠธ ์‚ฌ์šฉ์ž์˜ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ์— ์ˆ˜๋™์œผ๋กœ ์•ก์„ธ์Šคํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์œ„์˜ Seamless ๋ชจ๋“œ์™€ ๊ฐ™์ง€๋งŒ ๋ณ„๋„์˜ ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ์™„์ „ ๊ฒฉ๋ฆฌ(์‹ ๋ขฐํ•  ์ˆ˜ ์—†์Œ) ๋ชจ๋“œ: ์ปจํ…Œ์ด๋„ˆ์—๋Š” ํ˜ธ์ŠคํŠธ ์‚ฌ์šฉ์ž์˜ ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์ „ํ˜€ ์—†๋Š” ๋ณ„๋„์˜ ๋ณ„๋„ ์‚ฌ์šฉ์ž ๋ฐ ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์ฝ๋„๋ก ํ—ˆ์šฉํ•˜๊ณ  ์‹ถ์ง€ ์•Š์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  17 ๋Œ“๊ธ€

๋‚˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์ „์— HOME=/home/user1/container1 ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋ณ„์นญ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์—ฝ๋‹ˆ๋‹ค. ( alias toolbox1='HOME=/home/user1/container1/toolbox "$@"' )

์˜ˆ, $HOME ๋ฅผ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ €๋„ ์ด๋Ÿฐ๊ฑฐ ๋ณด๊ณ ์‹ถ์Šต๋‹ˆ๋‹ค. Toolbox์˜ ์ฃผ์š” ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์ž‘์—…ํ•˜๊ฑฐ๋‚˜ ์†Œ์Šค์—์„œ ์ผ๋ถ€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋น ๋ฅด๊ฒŒ ์ปดํŒŒ์ผํ•˜๊ธฐ ์œ„ํ•ด ์ผํšŒ์šฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ๋งŒ ์ปดํŒŒ์ผํ•˜๊ธฐ ์œ„ํ•ด ์ข…์†์„ฑ ๋“ฑ์˜ ์ž„์˜ ํŒŒ์ผ๋กœ ์‹œ์Šคํ…œ์„ ์˜ค์—ผ์‹œํ‚ค๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Toolbox๋Š” ํ˜ธ์ŠคํŠธ๋ฅผ ๊นจ๋—ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ฒฉ๋ฆฌ๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ณตํ•œ๋‹ค๊ณ  ์ฃผ์žฅํ•˜๋ฏ€๋กœ ์ด์— ์™„๋ฒฝํ•ด ๋ณด์˜€์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ์˜ˆ์ƒํ•œ ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค. Toolbox ๋Š” ํ˜ธ์ŠคํŠธ OS๋ฅผ ๊นจ๋—ํ•˜๊ฒŒ ์œ ์ง€ํ•˜์ง€๋งŒ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ „ํ˜€ ๊นจ๋—ํ•˜๊ฒŒ ์œ ์ง€ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์™„์ „ํžˆ ์˜ค์—ผ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, rust ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฌด์–ธ๊ฐ€๋ฅผ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•ด ์ผํšŒ์šฉ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‚ด ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—ฌ๋Ÿฌ ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • ~/.cargo ๋””๋ ‰ํ† ๋ฆฌ๋Š” ์ด 123MB์— ๋Œ€ํ•ด ๋งŽ์€ Rust ๊ด€๋ จ ๋ฐ”์ด๋„ˆ๋ฆฌ, ์†Œ์Šค ํŒจํ‚ค์ง€ ๋“ฑ์„ ํฌํ•จํ•˜์—ฌ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ~/.rustup ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋” ๋งŽ์€ Rust ๊ด€๋ จ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ด 683MB์— โ€‹โ€‹์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‚ด ~/.bash_profile ํŒŒ์ผ์€ ~/.cargo/bin ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ๋ณด๋‹ค ๋จผ์ € $PATH์— ์ถ”๊ฐ€ํ•˜๋„๋ก ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‚ด ~/.profile ํŒŒ์ผ์€ ~/.cargo/bin ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ๋ณด๋‹ค ๋จผ์ € $PATH์— ์ถ”๊ฐ€ํ•˜๋„๋ก ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ˆ„๊ฐ€ ๋˜ ๋ญ˜ ์•Œ๊ฒ ์–ด.

๊ทธ๋ ‡๊ตฐ์š”. ์ผ์‹œ์ ์ด๊ณ  ํ๊ธฐํ•˜๊ธฐ ์‰ฌ์šด ์‹œ์Šคํ…œ์œผ๋กœ ์—ฌ๊ฒจ์กŒ๋˜ ๊ฒƒ์ด ๋‚ด ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ์— ๋งŽ์€ ์˜๊ตฌ์ ์ธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ž๋™์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. ์œ„์˜ ์„ค๋ช…์„ ํ†ตํ•ด ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜๋™์œผ๋กœ $HOME ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Œ์„ ๊นจ๋‹ฌ์•˜์ง€๋งŒ ์ด๊ฒƒ์€ ์ง๊ด€์ ์ด๊ฑฐ๋‚˜ ์˜ˆ์ƒํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. Toolbox๋Š” ์ปจํ…Œ์ด๋„ˆ์— ๋“ค์–ด๊ฐ€๋Š” ๋‹จ์ˆœํ™”๋˜๊ณ  ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ๋ฐฉ๋ฒ•(๋˜๋Š” ์ ์–ด๋„ ๋‚ด๊ฐ€ ์ดํ•ดํ•˜๋Š” ํ•œ)์ด์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ๋” ๋‚˜์€ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚ด ์ƒ๊ฐ์— Toolbox์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ณ ์œ ํ•œ ์‚ฌ์šฉ์ž์™€ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด ๊ตฌํ˜„ํ•˜๊ธฐ์— ๋„ˆ๋ฌด ๋ณต์žกํ•˜๋‹ค๋ฉด ์ƒˆ ๋„๊ตฌ ์ƒ์ž๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๊ธฐ๋ณธ $HOME์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์†Œํ•œ -h ๋˜๋Š” --home ์ธ์ˆ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ๋„๊ตฌ ์ƒ์ž์— ๋“ค์–ด๊ฐˆ ๋•Œ $HOME ๊ฐ’์ด ์ž๋™์œผ๋กœ ์„ค์ •๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, toolbox create -c temp-myproject -h ~/Toolboxes/temp-myproject ํ–‰์„ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


๊ธฐ๋ณธ์ ์œผ๋กœ Toolbox์— ์„ธ ๊ฐ€์ง€ ๋ชจ๋“œ ์ค‘ ํ•˜๋‚˜๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ๋ฐฉ๋ฒ•์ด ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์‹ฌ๋ฆฌ์Šค ๋ชจ๋“œ: ํ˜„์žฌ ์ž‘๋™ ๋ฐฉ์‹. ์ปจํ…Œ์ด๋„ˆ ์‚ฌ์šฉ์ž๋Š” ์‹ค์ œ ํ˜ธ์ŠคํŠธ ์‚ฌ์šฉ์ž์ธ ๊ฒƒ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜์—ฌ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฐ˜ ๊ฒฉ๋ฆฌ ๋ชจ๋“œ: ์ปจํ…Œ์ด๋„ˆ๋Š” ํ˜ธ์ŠคํŠธ ์‚ฌ์šฉ์ž์˜ ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž์ฒด ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์— ์ฝ๊ธฐ/์“ฐ๊ธฐ๋ฅผ ํ•˜๋ ค๋ฉด ํ˜ธ์ŠคํŠธ ์‚ฌ์šฉ์ž์˜ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ์— ์ˆ˜๋™์œผ๋กœ ์•ก์„ธ์Šคํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์œ„์˜ Seamless ๋ชจ๋“œ์™€ ๊ฐ™์ง€๋งŒ ๋ณ„๋„์˜ ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ์™„์ „ ๊ฒฉ๋ฆฌ(์‹ ๋ขฐํ•  ์ˆ˜ ์—†์Œ) ๋ชจ๋“œ: ์ปจํ…Œ์ด๋„ˆ์—๋Š” ํ˜ธ์ŠคํŠธ ์‚ฌ์šฉ์ž์˜ ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์ „ํ˜€ ์—†๋Š” ๋ณ„๋„์˜ ๋ณ„๋„ ์‚ฌ์šฉ์ž ๋ฐ ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์ฝ๋„๋ก ํ—ˆ์šฉํ•˜๊ณ  ์‹ถ์ง€ ์•Š์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚˜์—๊ฒŒ ๋งค์šฐ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ๋“ค๋ฆฐ๋‹ค. @debarshiray ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์„ธ์š”??

๋‚˜๋Š” ์ด @JaneSmith ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฉ‹์ง€๊ฒŒ ๋„ฃ์–ด์ฃผ์„ธ์š”!

๋‚˜๋„ ๋‘ ๋ฒˆ์งธ ์•„์ด๋””์–ด. ๊ทธ๋Ÿฌ๋‚˜ ๊ตฌํ˜„๋  ๋•Œ๊นŒ์ง€ direnv ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋””๋ ‰ํ† ๋ฆฌ๋ณ„๋กœ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํŽธ๋ฆฌํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ์ž‘์—… ํ๋ฆ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

- install direnv and hook it to your shell
- create a temporary directory eg. ~/somedev
- add a .envrc file with the environment variables you want (in this case HOME=/home/user/somedev

์ด์ œ somedev ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•  ๋•Œ๋งˆ๋‹ค ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๊ฐ€์ •ํ•˜๊ณ  ๋น ์ ธ๋‚˜์˜ค๋ฉด ์žฌ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•˜๋‚˜์˜ ๋ช…๋ น์œผ๋กœ direnv๋ฅผ ์„ค์น˜ํ•œ ํ›„ ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

``` ๋ฐฐ์‰ฌ
mkdir ~/somedev && ์—์ฝ” ๋‚ด๋ณด๋‚ด๊ธฐ ํ™ˆ=/home/user/somedev > ~/somedev/.envrc
````
ํ˜„์žฌ ๋น„์Šทํ•œ ์ž‘์—… ํ๋ฆ„์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ ์–ด๋„ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งˆ์šดํŠธํ•˜์ง€ ์•Š๋Š” ์˜ต์…˜์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค(https://github.com/containers/toolbox/issues/183#issuecomment-623103780 ์ฐธ์กฐ). ์‚ฌ์‹ค, flatpak๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ - some dir in ~/.var/app , ์•„๋งˆ๋„ ๋” ๋‚˜์€ ~/.var/toolbox ์ •๋„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ดœ์ฐฎ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ํŒŒ์ผ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
ํ•œ ์ปจํ…Œ์ด๋„ˆ์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ ๊ณณ์— ์žˆ๊ณ  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ญ์ œํ•˜๋ฉด ๋ชจ๋“  ์•ฑ ๋ฐ์ดํ„ฐ๋„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ €๋Š” ๊ทธ ํ”Œ๋žซํŒฉ ๋ชจ๋ธ์„ ์•„์ฃผ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. (๋˜๋Š” ์ƒˆ๋กœ์šด "๋‚˜๋Š” ๋…น์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค" ํ”„๋กœ์ ํŠธ๊ฐ€ ์ฐจ์ง€ํ•œ ๊ณต๊ฐ„์„ ์ธก์ •ํ•˜์‹ญ์‹œ์˜ค), ์˜ˆ๋ฅผ ๋“ค์–ด (gnome-control-center์—์„œ ์ˆ˜ํ–‰๋œ ๊ฒƒ์ฒ˜๋Ÿผ)

๊ทธ๋Ÿฐ ๋‹ค์Œ ํŽธ์˜๋ฅผ ์œ„ํ•ด ํ•ญ์ƒ ํ˜„์žฌ $PWD์— ๋งˆ์šดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ํด๋”์—์„œ ์‹œ์ž‘ํ•˜๋ฉด ๊ฑฐ๊ธฐ์— ํŒŒ์ผ์ด ์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ~/rust-project ํด๋”๋Š” ~/Pictures/private/โ€ฆ ๋“ฑ์— ์•ก์„ธ์Šคํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์–ด์จŒ๋“ , ๋ฌผ๋ก  ์„ ํƒ์ ์œผ๋กœ ํ™ˆ์„ ์ฝ๊ธฐ ์ „์šฉ ๋˜๋Š” ์“ฐ๊ธฐ ๊ฐ€๋Šฅ์œผ๋กœ ๋งˆ์šดํŠธํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—๋Š” ์ด๊ฒƒ์ด ์‹ค์ œ๋กœ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ํ˜„์žฌ $PWD ๋ฅผ ๋งˆ์šดํŠธํ•  ์ˆ˜ ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์—ฌ๊ธฐ์— ์ƒˆ๋กœ์šด ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ "์ค‘๊ฐ„"์ด ์žˆ์Šต๋‹ˆ๋‹ค.

tlbx ํฌํฌ์—๋Š” ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ฐ”์ธ๋“œ ๋งˆ์šดํŠธํ•˜์ง€ ์•Š๋Š” -n ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/containers/toolbox/issues/183 ์˜ ๋ณต์ œ๋ณธ

์•„๋‹ˆ์š”... "๊ฐœ๋ฐœ ์ค‘์ธ ์ฝ”๋“œ์˜ ๋ฒ„๊ทธ ๋ฐ ๋งฌ์›จ์–ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒฉ๋ฆฌ๋œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ"๊ณผ ๋‹ค๋ฅธ $HOME์„ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ์‚ฌ์šฉ ์‚ฌ๋ก€/์ด์œ ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

IMHO, ์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋„๊ตฌ ์ƒ์ž์— ์žˆ์–ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ์™œ ์ข…๋ฃŒ๋˜์—ˆ๋Š”์ง€ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ ๋ณต์ œํ’ˆ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹จ์ง€ ๋ณด์•ˆ์— ๊ด€ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‚˜๋Š” Fedora Silverblue๋ฅผ ์‚ฌ๋ž‘ํ•˜๊ณ  ์• ์™„ ๋™๋ฌผ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋„๊ตฌ๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ๋‹ค๋Š” ์ ์„ ์ข‹์•„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ์žฌ๊ณ ๋˜๊ธฐ๋ฅผ ์ •๋ง๋กœ ํฌ๋งํ•˜์ง€๋งŒ ํ˜„์žฌ ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์œ„ํ•ด ํฌํฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค ... ๋‚˜๋Š” ์• ์™„ ๋™๋ฌผ ์ปจํ…Œ์ด๋„ˆ ์šฉ ๋„๊ตฌ ์ƒ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋‚ด ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ๋กœ ์ธํ•ด ์–ด์ˆ˜์„ ํ•ด์ง€๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณด์•ˆ๊ณผ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

@JaneSmith ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค๋ฉด ํฌํฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

Toolbox๋Š” ๋” ๋งŽ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง€์›ํ•˜๊ณ  Fedora์— ์ฆ‰์‹œ ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํฌํฌ๋ณด๋‹ค๋Š” Toolbox๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๊ณ„์—์„œ ๊ธฐ๊ณ„๋กœ ์ด๋™ํ•  ๋•Œ ํฌํฌ๋ฅผ ์„ค์น˜ํ•  ํ•„์š” ์—†์ด Toolbox๊ฐ€ ์ด๋ฏธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์— Toolbox๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ์ค‘ ํ•˜๋‚˜๋Š” ๋ฌด์ž‘์œ„ ์†Œํ”„ํŠธ์›จ์–ด ์„ค์น˜๋กœ ์‹œ์Šคํ…œ์ด ๋ณต์žกํ•ด์ง€๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค!

๋‚ด ๊ฒธ์†ํ•œ ์ƒ๊ฐ์— ์ด ๊ธฐ๋Šฅ ์š”์ฒญ์€ Toolbox์˜ ๋ชฉ์ ์— ์–ด๊ธ‹๋‚˜๋Š” ์ข…๋ฅ˜๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ•ต์‹ฌ์ ์ธ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์ด์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ •๋ง๋กœ "๋ฐ–์—์„œ" ํŠน์ดํ•œ ํŠน์ˆ˜ ๊ธฐ๋Šฅ์œผ๋กœ ๋ณด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ €๋Š” ์ด์— ๋Œ€ํ•œ ์ง€์ง€๋ฅผ ํ‘œ๋ช…ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด ๊ตฌํ˜„๋˜๊ธฐ๋ฅผ ํฌ๋งํ•ฉ๋‹ˆ๋‹ค.

@JaneSmith ๋ชจ๋“  ์š”์ ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ˜„์žฌ์˜ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋””์ž์ธ์ด ๋ณด์•ˆ ์นจํ•ด์— ๊ด€์—ฌํ•˜๊ธฐ ์œ„ํ•ด ์ฒ˜์Œ์œผ๋กœ ๊ณต๊ฐœ๋  ๋•Œ ์ด ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์„œ์˜ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์žฅ์€ _์™„์ „ํžˆ ๊ถŒํ•œ์ด ์—†๋Š” _์„ ์‹คํ–‰ํ•œ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ์•ˆ์ „ํ•œ ๊ฒƒ ๊ฐ™์ฃ ?

๋˜ํ•œ ์ฃผ์š” ์„ค๋ช…์—์„œ: _์ด ์‹œ์Šคํ…œ์˜ ์˜๋„๋Š” ํ˜ธ์ŠคํŠธ์— ์†Œํ”„ํŠธ์›จ์–ด ์„ค์น˜๋ฅผ ๊ถŒ์žฅํ•˜์ง€ ์•Š๊ณ  ๋Œ€์‹  ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ปจํ…Œ์ด๋„ˆ๋กœ(๋˜๋Š” ์•ˆ์—) ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค._ ๋˜ํ•œ ์ด ํ”„๋กœ์ ํŠธ๋Š” ์ƒ๋‹นํ•œ ๋ณด์•ˆ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค.

๋ฌธ์„œ์—์„œ๋Š” ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ผ์–ด๋‚˜๋Š” ์ผ๊ณผ ๊ด€๋ จ ์—†๋Š” SSH ํ‚ค ๋ฐ ํŒŒ์ผ์„ ํฌํ•จํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์†Œ์œ ํ•œ ๋ชจ๋“  ๋ฌธ์„œ๋ฅผ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ์™€ ๊ณต์œ ํ•œ๋‹ค๋Š” ์ ์„ ๊ฐ•์กฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ƒํ™ฉ์€ ์•ˆ์ „ํ•˜์ง€ ์•Š์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ชจ๋“  ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๊ฑฐ์˜ ์—†๋Š” ๊ฒฝ์šฐ ์ด์™€ ๊ฐ™์€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ƒ๋‹นํ•œ ๋ณด์•ˆ์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ์˜คํ•ด๋ฅผ ๋ถˆ๋Ÿฌ์ผ์œผํ‚ต๋‹ˆ๋‹ค!

README์—์„œ "home"์„ ๊ฒ€์ƒ‰ํ•˜๋ฉด ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ๊ณต์œ ๋œ๋‹ค๋Š” ๋ฌธ์„œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋‚˜๋„ ์ด๊ฒƒ์„ ์›ํ•œ๋‹ค. ์ค‘๊ฐ„ ์ง€์ (์ง‘์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์ง€๋งŒ HOME์œผ๋กœ ์ •์˜๋˜์ง€ ์•Š์Œ)๊ณผ ๋” ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋ชจ๋“œ(์ง‘์— ์ „ํ˜€ ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Œ).

๋‚˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์ „์— HOME=/home/user1/container1 ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋ณ„์นญ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์—ฝ๋‹ˆ๋‹ค. ( alias toolbox1='HOME=/home/user1/container1/toolbox "$@"' )

์ค‘๊ฐ„ ์†”๋ฃจ์…˜์ด ์ด๋ ‡๊ฒŒ ๊ฐ„๋‹จํ•˜๋‹ค๋ฉด... ๋„๊ตฌ ์ƒ์ž์— ์˜ต์…˜์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์—†๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋„๊ตฌ ์ƒ์ž๋ฅผ ๋งŒ๋“ค ๋•Œ ํ™ˆ ๊ฒฝ๋กœ๋ฅผ ์ธ์ˆ˜๋กœ ๊ฐ€์ ธ ์™€์„œ ์–ด๋”˜๊ฐ€์— ์ €์žฅํ•˜์‹ญ์‹œ์˜ค. ์•„๋งˆ๋„ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์ด ์ €์žฅ๋˜๋Š” ๋ฐฉ์‹๊ณผ ๊ฐ™์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ•ด๋‹น ๊ฒฝ๋กœ๋ฅผ ์ฝ๊ณ  ์ปจํ…Œ์ด๋„ˆ์— ๋“ค์–ด๊ฐˆ ๋•Œ ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค ...

์ข€ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ๋งŒ๋“ค๋ ค๋ฉด:

  • --new-home ์ด๋Š” toolbox enter์—๊ฒŒ ํ˜ธ์ŠคํŠธ $HOME์„ ๋งˆ์šดํŠธํ•˜์ง€ ์•Š๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค(๋˜๋Š” $HOME์ด ์•„๋‹Œ ์ปจํ…Œ์ด๋„ˆ์˜ ๋‹ค๋ฅธ ์œ„์น˜์— ๋งˆ์šดํŠธ)
  • --from-home path1:path2:pathN ์ด๊ฒƒ์€ ํ˜ธ์ŠคํŠธ $HOME์—์„œ ์ปจํ…Œ์ด๋„ˆ ํ™ˆ์œผ๋กœ์˜ ํŠน์ • ๊ฒฝ๋กœ๋ฅผ ๋งˆ์šดํŠธํ•˜๋„๋ก ๋„๊ตฌ ์ƒ์ž์— ์ž…๋ ฅํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ~/Projects์— ์†Œ์Šค ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ gpg๋กœ ์„œ๋ช…ํ•ด์•ผ ํ•˜๊ณ  ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ssh๊ฐ€ ํ•„์š”ํ•˜๊ณ  git config์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋„๊ตฌ ์ƒ์ž๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

toolbox create --new-home --from-home Projects:.ssh:.gnupg:.gitconfig

๊ทธ๋ž˜์„œ ์ด๊ฒƒ์€ ์—…์ŠคํŠธ๋ฆผ์—์„œ ๋ฐ›์•„๋“ค์—ฌ์งˆ ๊ฒƒ์ž…๋‹ˆ๊นŒ? ๊ณ„ํš์ด ํƒ€๋‹นํ•˜๋‹ค๋ฉด ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰