Environment Setting Automation For Mac

wansook0316·2021년 12월 26일
0

Productibility

목록 보기
1/3
post-thumbnail

왜 필요한가?

  • 주기적인 포맷이 필요하다는 것을 느꼈다. 7년동안 정리를 안하다보니 나도 스트레스를 받더라..
  • 그럴 때마다 기존에 사용하는 환경을 다시 구축하는게 너무나 시간낭비고 하기 싫었다.
  • 셀스크립트를 통해 자동화를 해둔다면 생산성 향상이 있을 것이라 판단!

장단점

  • 장점
    • 주기적인 기기 변경이나 여러 디바이스에 동일한 환경을 세팅해야 하는 필요가 있을 때 매우 유용하다.
  • 단점
    • 시간을 내서 만들어놔야 하므로 귀찮다.

목표

  • 내가 사용할 앱들에 대해서 스크립트 한번으로 세팅이 가능하도록 만든다.
  • 결과물 해당 링크에서 받아서 사용하면 된다.

설치할 프로그램 목록

해당 항목이 마음에 들지 않는다면, github에서 받아 Brewfile을 수정하면 된다. 개인적으로 추가도 가능하다.

기본 설치

  • bat
  • fasd
  • fzf
  • git
  • git-lfs
  • mas
  • neofetch
  • neovim
  • tig
  • zsh
  • mas
  • wget
  • python3

Brew로 설치

  • quicktype

웹으로부터 설치

  • alfred
  • appcleaner
  • gitkraken
  • hammerspoon
  • iterm2
  • notion
  • slack
  • telegram
  • visual-studio-code
  • zoom
  • keka
  • monitorcontrol
  • camo-studio
  • dash
  • figma
  • google-chrome
  • postman
  • karabiner-elements
  • charles
  • mattermost
  • zeplin
  • telegram

앱스토어로부터 설치

  • Accelerate for Safari
  • BetterJSON for Safari
  • ColorSlurp
  • Dark Reader for Safari
  • Enpass - Password Manager
  • Gifski
  • KakaoTalk
  • Keynote
  • Magnet
  • Microsoft Excel
  • Microsoft PowerPoint
  • Microsoft Word
  • Movist
  • SnippetsLab
  • Spark – Email App by Readdle
  • Unicorn Blocker
  • Yoink
  • Unicorn HTTPS
  • Paste JSON as Code • quicktype
  • Slack
  • Twitter
  • ScreenBrush
  • Xcode

방법

  1. HomeBrew를 다운로드 한다.
# 설치확인 명령어
brew doctor
# Homebrew 설치 명령어
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
  1. cask, mas 설치한다.
  • cask: 웹사이트에서 받을 수 있는 어플리케이션 설치를 도와주는 라이브러리
  • mas: 앱스토어에서 받을 수 있는 어플리케이션 설치를 도와주는 라이브러리
brew install cask
brew install mas
  1. brewfile을 만든다.
touch Brewfile
  1. 설치하고 싶은 패키지가 brew에 있는지 확인한다.

만약 기본 저장소에 있다면 Formulae에 있다고 뜨고, 웹 저장소가 연결되어 있다면 casks에 있다고 뜬다.
이 차이를 기반으로 Brewfile을 작성해주면 된다.

혹은 터미널 창에서 brew search를 통해서 찾는 방법도 있다.

  1. 만약 없다면 앱스토어에서 찾아본다.

mas 패키지는 앱스토어와 연결해서 여러 명령을 처리할 수 있는 라이브러리이다. 아래의 다양한 명령어 중에서 search를 사용해서 찾으면 된다. 이 때, id까지 명시해서 brewfile에 작성한다.

∙ mas account : 맥 앱스토어에서 로그인된 애플 ID를 출력합니다.
∙ mas help : 도움말을 볼 수 있습니다.
∙ mas install : 맥 앱스토어에서 배포중이거나 배포한 적이 있는 앱을 내려받을 수 있습니다.
∙ mas list : 맥 앱스토어를 통해 설치한 앱을 목록으로 보여줍니다.
∙ mas outdated : 다운로드가 중단되거나 실패한 앱을 내려받을 수 있습니다.
∙ mas search : 맥 앱스토어에서 앱을 검색합니다. App Bundle Id를 찾을 수 있습니다.
∙ mas signin/signout : 맥 앱스토어에서 로그인/로그아웃합니다.
∙ mas upgrade : 맥 앱스토어 업데이트 기능을 수행합니다.
∙ mas version : mas-cli 버전을 확인합니다.

  1. 완성된 brewfile은 다음과 같다.
tap "homebrew/core"
tap "homebrew/cask"
tap "homebrew/cask-fonts"
tap "homebrew/bundle"

# brew install
brew "bat"
brew "fasd"
brew "fzf"
brew "git"
brew "git-lfs"
brew "mas"
brew "neofetch"
brew "neovim"
brew "tig"
brew "zsh"
brew "mas"
brew "wget"
brew "python3"

# brew install app
brew install quicktype

# cask install
cask "alfred"
cask "appcleaner"
cask "gitkraken"
cask "hammerspoon"
cask "iterm2"
cask "notion"
cask "slack"
cask "telegram"
cask "visual-studio-code"
cask "zoom"
cask "keka"
cask "monitorcontrol"
cask "camo-studio"
cask "dash"
cask "figma"
cask "google-chrome"
cask "postman"
cask "karabiner-elements"
cask "charles"
cask "mattermost"
cask "zeplin"
cask "telegram"

# Mac App
mas "Accelerate for Safari", id: 1459809092
mas "BetterJSON for Safari", id: 1511935951
mas "ColorSlurp", id: 1287239339
mas "Dark Reader for Safari", id: 1438243180
mas "Enpass - Password Manager", id: 732710998
mas "Gifski", id: 1351639930
mas "KakaoTalk", id: 869223134
mas "Keynote", id: 409183694
mas "Magnet", id: 441258766
mas "Microsoft Excel", id: 462058435
mas "Microsoft PowerPoint", id: 462062816
mas "Microsoft Word", id: 462054704
mas "Movist", id: 461788075
mas "SnippetsLab", id: 1006087419
mas "Spark – Email App by Readdle", id: 1176895641
mas "Unicorn Blocker", id: 1231935892
mas "Yoink", id: 457622435
mas "Unicorn HTTPS", id: 1475628500
mas "Paste JSON as Code • quicktype", id: 1330801220
mas "Slack for Desktop", id: 803453959
mas "Twitter", id: 1482454543
mas "ScreenBrush", id: 1233965871
mas "Xcode", id: 497799835
  1. 해당 파일을 실행시킨다.
brew bundle --file=./Brewfile

혹은, 추가 설정이 필요하다면 셀 스크립트를 만들고 이를 실행시키는 방법도 있다. 브랜디 랩스의 기술 블로그를 참고했다.

#!/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

# 설치 성공 완료 메세지 노출
printf '\n install success! \n'
  1. 셀 스크립트의 실행 권한을 주자
chmod +x ./install.sh
  1. 실행하자.
sh install.sh

install.sh에는 개인적으로 세팅한 것들이 있다. 예를 들어 python 2.18 버전을 가상환경을 통해 설치하는 것이 대표적인 예가 될 수 있겠다. 해당 버전을 설치하게 된 이유는 이 글을 참고해주면 고맙겠다. 좀 맘에 안든다면, 해당 python 2버전을 설치하는 부분만 지워주면 되겠다.

현재 상태를 저장하고 싶다면

brew bundle dump

bundle이라는 기능을 통해서 현재 내 맥에 설치되어 있는 앱들을 Brewfile로 저장하거나 생성하는 것이 가능하다.

참고

profile
목표와 계획, 그리고 실천의 힘을 믿습니다.

0개의 댓글