Ohmyzsh: chruby ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋Š๋ฆฝ๋‹ˆ๋‹ค

์— ๋งŒ๋“  2016๋…„ 02์›” 13์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ohmyzsh/ohmyzsh

chruby ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ๊ฑฐํ•˜๊ณ  .zshrc ์— ์ˆ˜๋™์œผ๋กœ chruby๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ํ„ฐ๋ฏธ๋„ ์‹œ์ž‘ ์‹œ๊ฐ„์ด 500ms ๋‹จ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

์ด ์ˆ˜์ • ์‚ฌํ•ญ์— ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. @T0mK0!

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

๋‚ด OS X 10.9.5 ์‹œ์Šคํ…œ์—์„œ ์žฌ์ƒ์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

+ 1455372625.828910 /Users/janke/.oh-my-zsh/oh-my-zsh.sh:81> plugin=chruby
+ 1455372625.828954 /Users/janke/.oh-my-zsh/oh-my-zsh.sh:82> [ -f /Users/janke/.oh-my-zsh-custom/plugins/chruby/chruby.plugin.zsh ']'
+ 1455372625.829008 /Users/janke/.oh-my-zsh/oh-my-zsh.sh:84> [ -f /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh ']'
+ 1455372625.829074 /Users/janke/.oh-my-zsh/oh-my-zsh.sh:85> source /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh
+ 1455372625.829375 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:17> alias 'rubies=chruby'
+ 1455372625.829660 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:36> _ruby-build_installed
+ 1455372625.829715 _ruby-build_installed:1> whence ruby-build
+ 1455372625.830336 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:66> _homebrew-installed
+ 1455372625.830387 _homebrew-installed:1> whence brew
+ 1455372625.830445 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:66> _chruby-from-homebrew-installed
+ 1455372625.831099 _chruby-from-homebrew-installed:1> brew --prefix chruby
+ 1455372626.053828 _chruby-from-homebrew-installed:1> [ -r /usr/local/opt/chruby ']'
+ 1455372626.054501 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:67> brew --prefix chruby
+ 1455372626.269022 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:67> source /usr/local/opt/chruby/share/chruby/chruby.sh
...
+ 1455372626.271227 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:68> brew --prefix chruby
+ 1455372626.494185 /Users/janke/.oh-my-zsh/plugins/chruby/chruby.plugin.zsh:68> source /usr/local/opt/chruby/share/chruby/auto.sh

๋Œ€๋ถ€๋ถ„์˜ ์‹œ๊ฐ„์€ brew --prefix chruby ํ˜ธ์ถœ์— ์‚ฌ์šฉ๋˜๋ฉฐ ๊ทธ ์ค‘ ์ตœ๋Œ€ 3๊ฐœ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. brew ๋ช…๋ น์€ ๋ฃจ๋น„ ํ”„๋กœ๊ทธ๋žจ์ด๋ฉฐ ๋น ๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘ํ•˜๋Š” ๋™์•ˆ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ˜ธ์ถœํ•  ํ•ญ๋ชฉ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ chruby ํ”Œ๋Ÿฌ๊ทธ์ธ์€ brew --prefix chruby ๋ฅผ ํ•œ ๋ฒˆ ํ˜ธ์ถœํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ณ€์ˆ˜์— ์บ์‹œํ•˜์—ฌ ์ค‘๋ณต ํ˜ธ์ถœ์„ ๋ฐฉ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์€ ์ผ๋ฐ˜ brew --prefix ์‚ฌ์šฉ์œผ๋กœ ์ „ํ™˜ํ•˜๊ณ  $(brew --prefix)/opt/chruby ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ zsh์—์„œ chruby ๊ฒฝ๋กœ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜ brew --prefix ํ˜ธ์ถœ์€ ์ตœ์ ํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ ๋น ๋ฅธ ์‹œ์Šคํ…œ์—์„œ ์•ฝ 15msec๋งŒ ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.

๋‚˜์ค‘์— ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ”„๋กœํŒŒ์ผ๋ง์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ์ง„๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

~/.zshrc ์‹œ์ž‘ ๋ถ€๋ถ„์— ์ด๊ฒƒ์„ ๋ถ™์ด์‹ญ์‹œ์˜ค.

# Debugging prompt with timestamp for profiling
PS4=$'+ %D{%s.%6.} %N:%i> '

๊ทธ๋Ÿฐ ๋‹ค์Œ zsh -lx 2>zsh-startup.log ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์—ด๋ฆฌ๋Š” ๊ฒฐ๊ณผ ์…ธ์—์„œ ์ฒซ ๋ฒˆ์งธ ๋ช…๋ น์œผ๋กœ exit ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์‹œ์ž‘ ์‹œํ€€์Šค์˜ ํƒ€์ž„์Šคํƒฌํ”„ ์ถ”์ ์œผ๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์–ด๋–ค ๋ถ€๋ถ„์ด ๊ทธ๋ ‡๊ฒŒ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์— ๋ถ™์—ฌ๋„ฃ๊ณ  ํ›„์† ํ–‰์—์„œ ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ๋น„๊ตํ•˜์—ฌ ์‹คํ–‰ ์‹œ๊ฐ„์„ ๋” ์‰ฝ๊ฒŒ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ์•”ํ˜ธ๋‚˜ ํ† ํฐ์„ ์ง€์šฐ๊ณ  ๋ถ„์„์— ๋„์›€์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์š”์ ์œผ๋กœ ๊ฒŒ์‹œํ•˜์‹ญ์‹œ์˜ค.

์ด ์ˆ˜์ • ์‚ฌํ•ญ์— ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. @T0mK0!

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