macOS 다시 설치하고 설정하기 01

Table of Contents

MACBOOK setting

맥북 세팅할 때마다 헤매서 나중에 다시 보려고 모아서 정리해둔 노트다.

ToC는 다음과 같다.

1. OS install

1) Booting Option Shorcut

  • command(⌘)-R
    • 맥에 설치되어있던 최신 OS 다시 설치
  • Option(⌥)-Command(⌘)-R
    • 호환되는 최신 OS로 업그레이드
  • Shift(⇪)-Option(⌥)-Command(⌘)-R
    • 맥과 함께 제공된 OS 또는 현재 사용할 수 있는 최신 버전 OS로 다시 설치

2) Trouble Shooting

  • OS를 다시 깔았는데 OS X Mountain Lion이다?
    • OS X El Capitan(10.11)로 업그레이드 한 다음에 macOS Catalina(10.15)로 업그레이드 한다.
    • USB 부팅 드라이브를 미리 만들어서 쓰는게 편하다.
      • 필요한 버전의 OS 파일을 다운로드
      • macOS 확장으로 포맷된 12GB 이상 USB 드라이브 준비
      • MyVolume으로 이름 지정
      • createinstallmedia 명령 사용
      • 설치 방법은 나중에 구글링해서 보는걸로1

(1) createinstallmedia

  • Catalina
    sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
    
  • El Capitan
    sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume --applicationpath /Applications/Install\ OS\ X\ El\ Capitan.app
    

2. Brew install

터미널 입력창에 그대로 복붙하면 된다. 자세한건 공식 홈페이지2에서 보자.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

1) Brew install list

목록을 정리해서 일괄적으로 한꺼번에 설치할 수 있는 방법3이 있던데 당장 중요한건 아니니까 링크만 기록해두고 목록 정리해서 남겨둔다. 아래 목록들은 구분자를 이용해서 한 줄만 입력해서도 다 설치할 수 있다.

brew install cask
brew install mas

brew install zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

brew cask install visual-studio-code
brew cask install firefox
brew cask install notion
brew cask install dropbox
brew cask install keka
brew cask install iterm2
brew cask install spectacle
brew cask install itsycal
brew cask install basictex
brew cask install skim

2) Python install

Catalina 다음 버전에는 Python 2.x가 없어질거란 이야기가 있던데, 아직까진 기본 설치되기 때문에 조금이라도 편해지려면 터미널 세팅을 몇 가지 해줘야 한다.

(1) Brew install list for Python

일단 설치해야할 것들의 목록이다.

brew install python
brew install pyenv
brew install pyenv-virtualenv
brew install autoenv
- .zshrc edit

아래 설정을 적용하면 python, pip 실행 파일의 경로가 자꾸 로컬로 잡혀서 해당 내용은 진행하지 않는다. alias가 적용되지 않은 상태여야지 which python pip로 확인했을 때 .pyenv 경로로 지정된다.

설치가 다 되었으면 .zshrc.bash_profile의 설정을 변경해줘야 터미널에서 python이라고 쳤을 때 python3으로 자동으로 바뀌어서 작동한다. 변경해주면서 pip3pip로 작동하게끔 바꿔줬다.

echo 명령어를 이용하는 방법도 있지만 나에겐 익숙하지 않아서 nanocode 명령어를 이용해서 직접 입력/수정했다.

zshoh-my-zsh를 설치했고, VSCode를 쓰기 때문에 code .zshrc 명령어를 이용해서 편집을 진행했다.

# Python
alias python=/usr/local/bin/python3
alias pip=/usr/local/bin/pip3

echo 명령어로 입력하는 방법은 다음과 같다.

echo "alias pip=/usr/local/bin/python3" >> ~/.zshrc
echo "alias pip=/usr/local/bin/pip3" >> ~/.zshrc
-pyenv

내가 참고한4 글에 이런 내용이 있다.

“The basic premise of all Python development is to never use the system Python. You d not want the Mac OS x ‘default Python’ to be ‘python3’ You want to never care about default python.”

- Moshe Zadka

기본 설치된 Python을 신경쓰지 않기 위해서 pyenv를 사용하라는 뭐 그런 이야기로 이어진다.

brew install pyenv로 설치가 완료됐다면 pyenv의 명령어를 이용해 원하는 버전을 설치해준다. 나는 3.8.5를 설치해줬다. 설치 가능한 환경 목록들을 보고싶다면 pyenv install --list를 실행하면 볼 수 있다.

brew install pyenv
pyenv install 3.8.5
pyenv global 3.8.5

shell에서의 path를 제어할 수 있는 것에서 pyenv의 진가가 발휘된다는 뭐 그런 이야기가 나와있는데, .zshrc 파일에 아래 내용을 추가해주라고 나와있었다.

# pyenv, control over path of shell
if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.zshrc
-virtualenv

pyenvPython 버전 관리를 하는 툴이라면, pyenv-virtualenv는 프로젝트별로 버전에 맞게 개발 환경을 관리해주는 툴이라고 이해했다. 설치 및 사용 방법은 여기4를 참고했다.

brew install pyenv-virtualenv로 설치했다면 다음 명령어로 파이썬 개발 환경을 만들어준다.

pyenv virtualenv <파이썬 버전> <임의의 가상환경 이름>
pyenv activate <임의의 가상환경 이름>

비활성화 해주려면

pyenv deactivate

가상환경을 삭제할때는

pyenv uninstall <파이썬 버전>/<임의의 가상환경 이름>
-venv

3.5.x부터였나? 어느 버전부터 지원한건지 모르겠지만 Python 자체에서도 가상환경 설정을 지원한다. 로컬로 설치된 Python 버전을 따라가는 것 같은데, pyenv로 임의의 버전을 지정해서 global 환경을 지정해주고 사용하면 되지 않을까 추측해본다. 사용 방법은 공식 문서5를 보면 된다.

python -m venv <임의의 가상환경 이름>

이러면 터미널에서 명령어를 실행한 폴더 위치에서 임의의 가상환경 이름을 가진 폴더가 만들어진다. 가상환경을 활성화 시켜주려면

source <임의의 가상환경 이름>/bin/activate

하면 된다.

-autoenv

근데 매번 활성화 작업이 귀찮기 때문에 autoenv를 이용해준다. autoenv를 이용하면 폴더 진입할 때마다 가상환경이 알아서 자동으로 활성화된다. 설정이 자꾸 꼬였는지 하면서 자꾸 실패하다가 오늘 드디어 성공했다.

일단

brew install autoenv
# 설치가 완료됐다면
git clone git://github.com/inishchith/autoenv.git ~/.autoenv
echo "source ~/.autoenv/activate.sh" >> ~/.zshrc
source ~/.zshrc

가상환경 폴더가 들어있는 프로젝트 폴더에 .env 파일을 만들어준다. 거기에 다음과 같이 적어준다.

source <임의의 가상환경 이름>/bin/activate

폴더에서 벗어났을 때 자동으로 deactivate하려면

echo "export AUTOENV_ENABLE_LEAVE='"enabled"'" >> ~/.zshrc

그런 다음 가상환경 폴더가 들어있는 프로젝트 폴더에 .env.leave 파일을 만들어준다. 그리고 파일엔 deactivate 문구를 추가하면 된다.

source ~/.autoenv/activate.sh보다 먼저 와야하지 않을까 싶어서 VSCode에서 추가한 후 순서를 수정해줬다. 신기한건 enabledstring으로 받는다는 것. 아무래도 프로그램 안에서 변수?를 문자열로 받아서 처리하나보다. 해당 내용은 autoenv 공식 git repository6에도 나와있다.

일단 여기까지.

References





Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • macOS 다시 설치하고 설정하기 02 (작성중)
  • MAC에서 Manim 설치하기
  • pytube 에러 수정기: 'title', 'thumbnail_url', 'length' 기능 활성화하기
  • Python 코드 짜깁기: Google News 검색 결과 스크랩해서 저장하기
  • 논문 읽기 02-B: 'New development of Atomic Layer Deposition: Processes, Methods and Applications', Sci. Technol. Adv. Mater., 20, (2019), 66