[맥북 / macOS] Homebrew를 이용하여 앱(패키지) 설치 및 버전 관리를 간편하게!

Homebrew는 macOS를 위한 패키지 관리 도구입니다. 터미널 커맨드로 동작하며, 각종 터미널 내에서 동작하는 앱 이외에도 GUI에서 동작하는 앱(패키지) 역시 관리할 수 있기 때문에 아주 편리합니다.

 

“GUI에서도 다 할 수 있는 앱 다운로드/업데이트/관리를 왜 굳이 터미널 커맨드를 써가면서 해야할까?”

 

위의 질문에 대한 답은 아래와 같을 수 있습니다.

  1. 앱스토어를 통해 다운받은 앱 이외에 다른 패키지들은 업데이트 등의 버전 관리를 하기가 힘듭니다. 앱이 많으면 많을 수록 하나하나 찾아가며, 할 순 없기 때문입니다.
  2. 1번의 문제 사항을 해결해줄 GUI 내, 앱이 없습니다(버전을 잘 관리해주는 앱).
  3. Homebrew를 통해 설치된 앱의 설치/삭제/리스트 조회가 매우 편리합니다.

혹 이전에 터미널을 사용해보지 않았더라도, 충분히 쉽게 활용할 수 있으므로 한번 시도해보시기 바랍니다.


Homebrew 설치하기

1) Homebrew를 사용하기 위해선 우선 설치를 해야합니다. 터미널 앱을 열고, 아래 커맨드를 실행합니다. ▼

* 만약, 아래 커맨드가 동작하지 않을 시, 공식 홈페이지 링크를 통해 재확인 바랍니다. macOS에는 Ruby가 기본적으로 설치되어 있기 때문에, 아래 Ruby로 동작하는 내용에 대한 다른 사전 준비 사항은 필요없습니다.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

* 터미널 앱은 Spotlight (cmd + space) > “Terminal” 커맨드로 찾으실 수 있습니다.

설치가 완료되었으면, brew update 커맨드로 Homebrew가 정상적으로 동작하는지, 최신 버전이지 확인합니다.

~ (227) $brew update
Already up-to-date.

Homebrew 사용방법

위에서 잠깐 보셨듯이 Homebrew는 모두 brew 커맨드를 필두로 시작합니다. 즉, brew install …, brew remove …, brew update 등으로 커맨드가 구성됩니다.

brew update //Homebrew 업데이트
brew search <패키지 이름> //패키지 검색
brew install <패키지 이름> //패키지 설치
brew remove <패키지 이름> //패키지 삭제
brew list //패키지 리스트
brew upgrade <패키지 이름> //패키지 업데이트

앱 검색

크롬을 다운받고 싶은데, brew install chrome이라고 치면 되나? 모를 수 있습니다. 그래서 brew에 존재하는 기능이 search입니다. 대충, brew search chrome라고 검색해봅니다. 그럼 아래에 caskroom/cask/google-chrome이라고 우리가 원하는 그 “크롬”의 키워드를 정확하게 알 수 있습니다.

~ (228) $brew search chrome
==> Searching local taps...
chrome-cli chrome-export
==> Searching taps on GitHub...
caskroom/cask/chrome-devtools
caskroom/cask/chrome-remote-desktop-host
caskroom/cask/dmm-player-for-chrome
caskroom/cask/google-chrome
caskroom/versions/google-chrome-beta
caskroom/versions/google-chrome-canary
caskroom/versions/google-chrome-dev
==> Searching blacklisted, migrated and deleted formulae...
~ (229) $

*cask가 붙어 있는 앱은 GUI에서 동작하는 앱이고, cask가 없는 앱은 터미널 커맨드라인 베이스로 동작하는 앱입니다. 즉, 우리가 찾는 크롬은 cask가 붙어있는 웹브라우저입니다.

 

앱 설치

위에서 찾은 google-chrome을 설치하고자 합니다. 이제 brew install 커맨드를 이용하여 설치해보겠습니다.

brew install caskroom/cask/google-chrome

cask가 붙어 있는 앱을 설치할 땐, 위 커맨드 말고도

brew cask install google-chrome

이라고 해도 동작합니다.

결과는 아래와 같이 주루룩 나오게 되는데, 필자는 이미 chrome이 있기 때문에, 있다고 하고 설치가 멈췄습니다.

~ (228) $brew search chrome
==> Searching local taps...
chrome-cli chrome-export
==> Searching taps on GitHub...
caskroom/cask/chrome-devtools
caskroom/cask/chrome-remote-desktop-host
caskroom/cask/dmm-player-for-chrome
caskroom/cask/google-chrome
caskroom/versions/google-chrome-beta
caskroom/versions/google-chrome-canary
caskroom/versions/google-chrome-dev
==> Searching blacklisted, migrated and deleted formulae...
~ (229) $brew install caskroom/cask/google-chrome
==> brew cask install caskroom/cask/google-chrome
==> Satisfying dependencies
==> Downloading https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg
######################################################################## 100.0%
==> Verifying checksum for Cask google-chrome
==> Installing Cask google-chrome
==> Purging files for version 66.0.3359.170 of Cask google-chrome
Error: It seems there is already an App at '/Applications/Google Chrome.app'.

 

“그럼 이미 설치된 앱은 Homebrew에서 관리할 수 없는건가??”

 

아닙니다. 할수 있습니다. –force 키워드를 통해 강제로 Homebrew에 집어넣어주면 가능합니다.

brew cask install google-chrome --force

결과 값:

~ (239) $brew cask install google-chrome --force
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (caskroom/cask, homebrew/core).
No changes to formulae.

==> Satisfying dependencies
==> Downloading https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg
######################################################################## 100.0%
==> Verifying checksum for Cask google-chrome
==> Installing Cask google-chrome
Warning: It seems there is already an App at '/Applications/Google Chrome.app'; overwriting.
==> Removing App '/Applications/Google Chrome.app'.
==> Moving App 'Google Chrome.app' to '/Applications/Google Chrome.app'.
🍺 google-chrome was successfully installed!
~ (240) $

앱 리스트 보기

아래 커맨드를 이용하여 Homebrew를 통해 설치된 앱들의 list를 볼 수 있습니다.

  • 커맨드 라인 앱의 경우 : brew list
  • GUI 앱에서 동작하는 앱의 경우 : brew cask list
~ (230) $brew cask list
betterzipql qlcolorcode qlvideo
iina qlimagesize
michaelvillar-timer qlmarkdown

앱 제거

설치된 앱 중 하나를 제거해보겠습니다. GUI에서 동작하는 앱의 경우, 앞에 cask를 꼭 붙여주셔야합니다. 아니면 아래와 같이 오류 메세지를 출력합니다.

brew remove <패키지 이름>
~ (231) $brew remove michaelvillar-timer
Error: No such keg: /usr/local/Cellar/michaelvillar-timer
~ (232) $brew cask remove michaelvillar-timer
==> Uninstalling Cask michaelvillar-timer
==> Backing App 'Timer.app' up to '/usr/local/Caskroom/michaelvillar-timer/1.3/T
==> Removing App '/Applications/Timer.app'.
==> Purging files for version 1.3 of Cask michaelvillar-timer
~ (233) $

현재 설치된 앱들의 버전 확인

  • 커맨드 라인 앱의 경우 : brew outdated
  • GUI 앱에서 동작하는 앱의 경우 : brew cask outdated

현재 설치된 버전과 최신 버전을 비교하여 보여줍니다.

~ (234) $brew cask outdated
qlcolorcode (2.0.8) != 2.0.9
qlvideo (1.89) != 1.91
~ (235) $

패키지를 업그레이드하기 위해선 아래 커맨드를 사용합니다.

  • 커맨드 라인 앱의 경우 : brew upgrade <패키지 이름>
  • GUI 앱에서 동작하는 앱의 경우 : brew cask upgrade <패키지 이름>
~ (235) $brew cask upgrade qlvideo
==> Upgrading 1 outdated package, with result:
qlvideo 1.91
==> Satisfying dependencies
==> Downloading https://github.com/Marginal/QLVideo/releases/download/rel-191/QL
######################################################################## 100.0%
==> Verifying checksum for Cask qlvideo
==> Starting upgrade for Cask qlvideo
==> Running uninstall process for qlvideo; your password may be necessary
==> Uninstalling packages:
uk.org.marginal.qlvideo
중략

모든 패키지와 Homebrew를 업데이트하고 싶다면, 아래 커맨드를 실행합니다.

brew upgrade && brew update

아래와 같이 12개의 outdated 패키지들을 업데이트한다고 결과값과 함께 보여줍니다.

~ (236) $brew upgrade && brew update
==> Upgrading 12 outdated packages, with result:
automake 1.15 -> 1.16.1, boost 1.65.1 -> 1.67.0_1, coreutils 8.27 -> 8.29, highlight 3.39 -> 3.43, htop 0.8.2.8 -> 2.2.0, icu4c 58.2 -> 61.1, libgpg-error 1.27 -> 1.31, lua 5.2.4_4 -> 5.3.4_3, node 8.1.0_1 -> 10.1.0, openssl@1.1 1.1.0e -> 1.1.0h, redis 3.2.9 -> 4.0.9, xz 5.2.3 -> 5.2.4

이전 버전의 패키지 삭제

업데이트 후 필요 없는 이전 버전의 패키지는 아래 커맨드로 삭제합니다.

  • 커맨드 라인 앱의 경우 : brew cleanup
  • GUI 앱에서 동작하는 앱의 경우 : brew cask cleanup
~ (238) $brew cask cleanup
==> Removing cached downloads
/Users/Travelholics/Library/Caches/Homebrew/Cask/betterzipql--latest.zip
/Users/Travelholics/Library/Caches/Homebrew/Cask/google-chrome--66.0.3359.170.dmg
/Users/Travelholics/Library/Caches/Homebrew/Cask/iina--0.0.15.1.dmg
/Users/Travelholics/Library/Caches/Homebrew/Cask/michaelvillar-timer--1.3.zip
/Users/Travelholics/Library/Caches/Homebrew/Cask/qlcolorcode--2.0.8.zip
/Users/Travelholics/Library/Caches/Homebrew/Cask/qlimagesize--latest.pkg
/Users/Travelholics/Library/Caches/Homebrew/Cask/qlmarkdown--1.3.5.zip
/Users/Travelholics/Library/Caches/Homebrew/Cask/qlvideo--1.89.pkg
/Users/Travelholics/Library/Caches/Homebrew/Cask/qlvideo--1.91.pkg
/Users/Travelholics/Library/Caches/Homebrew/Cask/suspicious-package--3.3.dmg
==> This operation has freed approximately 139.3MB of disk space.
~ (239) $

Homebrew를 이용하는 방법이 설치된 앱(앱스토어에 없는)을 하나씩 찾아다니며 업데이트하는 것보다 훨씬 더 간편하고 빠른 방법이라는 것을 이해하셨으리라 생각합니다. 🙂

이상입니다.

댓글 남기기