Homebrew로 Mac 개발 환경 세팅 자동화
이경희
2020-05-26
Overview
최근 Mac 초기화를 하려고 설치된 목록을 정리해보았습니다. 사용 중인 목록을 정리하고 보니 각각 수동으로 설치할 경우 시간도 오래 걸리고, 개발자들끼리 환경이 조금씩 다른 점을 발견하였습니다. 불편함을 해결하기 위해 Homebrew로 간편하게 설치하는 방법을 찾아보았습니다.
Homebrew를 사용하면 두 가지의 불편함을 해결할 수 있습니다. 이 외에도 여러 장점들이 있겠지만 이 두 가지가 최고의 장점이라 생각이 됩니다.
- 먼저, 설치 목록 관리가 용이하며 문서화를 따로 할 필요가 없습니다.
- 둘째, 개발 환경 세팅에 소요되는 시간이 줄어듭니다. 일일이 찾아서 설치하는 번거로움 대신 다른 일을 할 수 있습니다.
이제 Homebrew를 이용하여 좀 더 편하고 쉽게 개발 환경 세팅을 할 수 있는 방법을 공유드리겠습니다.
시작하기에 앞서
1. Homebrew 설치
Homebrew 설치 확인 후 설치되어 있지 않다면 터미널에 명령어를 붙여넣기 하여 설치합니다.
# 설치확인 명령어
brew doctor
# Homebrew 설치 명령어
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
2. cask, mas 설치
Homebrew가 설치되었다면 cask와 mas도 설치합니다.
brew install cask
brew install mas
3. 개발 환경을 구성할 때 설치하는 패키지 및 애플리케이션 정리
아래 목록은 필자가 사용하고 있는 개발 환경 구성 목록입니다.
- 개발 관련 패키지
python3, node, mysql, zsh - 웹사이트에서 설치
Zeplin, Chrome, Notion, Visual Studio Code, Sublime Text, Fork, MySQL Workbench - App Store에서 설치
Slack, Evernote, Polaris Office
BrewFile 만들기
1. BrewFile 만들기
- Homebrew에는 bundle 기능이 있습니다. 아래 명령어를 사용하여 Mac에 설치된 항목들을 BrewFile로 저장하거나, 파일을 생성합니다.
# Mac 에 설치된 항목들을 BrewFile로 저장
brew bundle dump
# 혹은 BrewFile 생성
touch Brewfile
- 생성된 BrewFile 확인해 봅니다. 확인하였더니 Mac에 설치된 항목들이 전부 담겨있지 않았습니다. 원하는 항목을 정의하는 방법에 대해서 자세히 알아봅시다.
cat BrewFile
2. tap, brew, cask 그리고 mas
Brewfile 파일 앞부분에 적혀있는 tap, brew, cask 그리고 mas에 대해 간단하게 알아보았습니다.
- tap : Homebrew 내의 기본 저장소(Formulae라고도 함) 외의 서드 파티 저장소입니다.
- brew : Homebrew에서 제공하는 패키지를 설치할 수 있습니다.
- cask : Homebrew로 제공하진 않지만 GUI 기반의 애플리케이션 (ex. Chrome, Notion 등)을 설치할 수 있습니다.
- mas : App Store에서 받을 수 있는 애플리케이션을 설치할 수 있습니다.
3. Homebrew 작성
brew
- 먼저 정식 명칭을 확인하기 위해 brew search 명령어를 통해 패키지를 검색합니다. 아래는 node를 검색했을 경우 화면이고, node 옆에 체크 표시는 이미 필자의 Mac에 설치되었다는 것을 의미합니다.
- 또한 검색 결과를 보면 Formulae와 Casks, 두 가지 리스트를 확인할 수 있습니다. Homebrew에서 공식적으로 지원하는 경우 Formulae 리스트 안에 있습니다. node의 경우 공식적으로 지원하기 때문에 Formulae에서 확인할 수 있습니다.
# BrewFile에 아래와 같이 작성합니다.
brew "node"
cask
- VisualStudioCode를 검색한 화면입니다. Casks에서 명칭을 확인할 수 있습니다.
# BrewFile에 아래와 같이 작성합니다.
cask "visual-studio-code"
mas
- App Store에서 설치할 애플리케이션의 경우 mas search 명령어를 사용하여 정식 명칭을 검색합니다.
- 아래는 Xcode를 검색한 화면입니다.
# BrewFile에 아래와 같이 작성합니다.
mas "Xcode", id: 497799835
- 아래는 지금까지 작성한 BrewFile 내용입니다.
Shell Script 작성
Brewfile을 이용하면 쉽게 사용할 툴들을 설치할 수 있지만, 설치뿐만 아니라 여러 설정들을 하기 위해서 Shell Scrpit를 사용합니다. install.sh 파일을 생성하고 아래와 같이 스크립트를 작성합니다.
touch install.sh
#!/usr/bin/env bash
# Homebrew 설치 여부 확인
if ! which brew
then
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
fi
# 스크립트 내에서 일부 sudo 권한이 필요한 명령을 수행하기 위해 root 패스워드를 입력
# sudo 권한이 필요한 이유 : cask로 설치한 애플리케이션을 바로 실행하기 위해 다운로드 된 파일에 대한 격리 속성 제거 작업
read -r -s -p "[sudo] sudo password for $(whoami):" pass
# BrewFile 실행 명령어
brew bundle
# cask로 다운로드시 웹에서 다운로드한 것과 동일하기 때문에 실행을 하면 Security 문제로 실행되지 않음
# cask로 설치한 애플리케이션을 바로 실행하기 위해 다운로드 된 파일에 대한 격리 속성 제거 작업 명령어
sudo xattr -dr com.apple.quarantine /Applications/Google\ Chrome.app
sudo xattr -dr com.apple.quarantine /Applications/Visual\ Studio\ Code.app
sudo xattr -dr com.apple.quarantine /Applications/Sublime\ Text.app
sudo xattr -dr com.apple.quarantine /Applications/Zeplin.app
sudo xattr -dr com.apple.quarantine /Applications/Notion.app
sudo xattr -dr com.apple.quarantine /Applications/Slack.app
sudo xattr -dr com.apple.quarantine /Applications/Fork.app
sudo xattr -dr com.apple.quarantine /Applications/MySQLWorkbench.app
# awscli를 사용하여 AWS 인증 정보 설정
aws configure
# 설치 성공 완료 메세지 노출
printf '\n install success! \n'
스크립트 작성이 완료되었다면 권한을 꼭 주도록 합니다!
chmod +x ./install.sh
이제 스크립트를 실행하여, 관리자 권한이 필요한 명령어가 실행될 때 중간중간 관리자의 패스워드와 AWS 인증정보 입력만 해주면 간단하게 설치를 할 수 있습니다!
Conclusion
이제 Homebrew와 Shell Script를 사용하여 Mac을 좀 더 쉽고 간편하게 재설정할 수 있게 되었습니다. 앞으로 새로 오실 분들 혹은 저처럼 초기화하실 분들에게 이 글이 도움이 되었으면 합니다.
여러분도 나만의 BrewFile을 만들어 보세요!
참고
https://brew.sh/index_ko
https://github.com/mas-cli/mas
https://github.com/Homebrew/homebrew-bundle