경고:

oh-my-zsh를 설치할 사람은 아래의 oh-my-zsh부터 설치하는 것이 좋다. ~/.zshrc 파일의 내용을 지우고 자신의 내용을 쓰기 때문이다. 만약 늦게 설치하는 경우 ~/.zshrc 파일의 내용을 어디에 적어두고 나중에 추가하자. 문서의 순서를 바꿀까 고민했지만 모두가 설치하는 확장은 아니기 때문에 지금의 순서를 유지한다.

2021년 3월 15일에 M1 맥북 에어를 쓰며 작성한 글을 2022년 1월 13일에 M1 Max 기종을 쓰며 업데이트하였다.

Homebrew 설치

2011년 1월 29일에 Macports를 버리고 Homebrew 가야한다는 글을 쓴적이 있다.

1. 관리자 권한이 필요하다.
2. 기존의 맥에 설치된 프로그램을 이용하지 않아 컴파일 시간이 길고 설정을 망가트릴 수 있다.
3. 디폴트 패키징 버전이 나빠 심지어 디폴트 맥보다 구버전인 경우도 종종 있다.
4. 다른 버전으로 변경하려 할 때 패키지를 망가트려 다시 설치하는 경우가 발생한다.
5. 여러 버전을 동시에 이용하는 것이 쉽지 않다.
6. 패키징을 만드는게 너무나 복잡하다.

이런 점들은 여전히 유효하고 Arm을 사용하는 맥북을 구매하고는 제일 먼저 한 일도 Homebrew를 까는 것이었다. 맥에서 Homebrew를 설치를 할 때는 Arm과 인텔용(에뮬레이션)을 설치할 수 있는데 2022년 1월 13일 시점에서는 더 이상 인텔용 Homebrew를 깔지 않아도 되겠다. 2021년 3월 M1 맥북을 쓸 때는 둘다 깔아 썼으나 어느 순간 부터 더 이상 인텔 버전을 사용하지 않는다. 굳이 설치하고 싶은 사람은 글 하단의 내용을 참고하라.

Homebrew를 설치하는 방법은 간단하다.

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

설치가 끝나고 나오는 멘트에 따라서 추가적인 설정을 진행하라.

크롬, 비주얼 스튜디오 코드 설치

Google ChromeVisual Studio Code도 아래와 같이 설치했다.

brew install --cask google-chrome
brew install --cask visual-studio-code

맥을 설치 후 먼저 Rust를 사용하고 싶기에 아래의 커맨드도 입력했다.

Rust 설치

brew install rustup
rustup-init

혹시 Rust언어에 궁금하신 분은 The Rust Programming Language (한국어판)을 읽어보라.

M1에 대응되어 있는 패키지 목록은 Homebrew Formulae that are reported to support Apple Silicon에서 확인할 수 있다.

백쿼트를 제대로 쓰기

맥에서 한글 상태에서 백쿼트를 원화로 바꾼다. 매우 개떡같다. 터미널에서 아래 커맨드를 입력해서 수정하자.

/bin/sh -c "$(curl -fsSL https://gist.githubusercontent.com/dalinaum/5440f140a68f91a197028eba083cf8bc/raw/259f2382253db541dcb1f99168f1f13e78435433/no-won.sh)"

이제 터미널이나 앱을 종료 후 다시 켜면 백쿼트를 사용할 수 있다.

자세한 내용을 알고 싶으면 no-won.sh을 확인하라.

iterm2 설치

기본 터미널보다 iTerm2가 나은 선택이다. 커맨드라인에 다음의 명령을 입력하자.

brew install iterm2

Oh my zsh 설치

iTerm2를 사용하는 경우에 zsh과 oh-my-zsh를 설치하는 경우가 많다. zsh는 이제 맥의 기본이니 oh-my-zsh만 깔면 된다. 다음의 키워드를 입력하자. (curl이 고생이 많다.)

설치에 앞서 ~/.zshrc파일을 백업해 두자. oh-my-zsh가 제대로 망가트릴 것이다.

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

아래와 같이 경고가 뜰 수 있다.

zsh compinit: insecure directories, run compaudit for list.

경고가 뜨면 아래의 커맨드를 입력한다.

compaudit | xargs chmod g-w,o-w

~/.zshrc 파일을 망가트릴테니 백업해두라고 언급했다. 이제 백업해둔 내용을 파일 아래에 추가하자. 혹시나 잊었을 경우를 위해 아래에 적어두었다.

export PATH=/usr/local/m1-homebrew/bin:$PATH
alias ibrew='arch -x86_64 /usr/local/bin/brew'

키보드 변경

시스템 환경설정 > 키보드를 열어 몇가지 설정을 기호에 맞게 설정하자.

나는 키보드 > 보조키에서 한/AControl로 바꾸었다. 원래 이 자리는 전통적으로 Control을 위한 자리였는데 이 자리에 별로 필요하지 않은 Capslock을 넣은 사람이나 한/A 키를 넣은 사람이나 모두 제정신은 아니라고 생각한다.

입력 소스에서도 한/A키로 ABC 입력소스 전환도 비활성화했다.

안드로이드 스튜디오 설치

Arm 버전 안드로이드 설치도 Homebrew로 쉽게할 수 있다.

brew install --cask android-studio

안드로이드 에뮬레이터도 기본으로 Arm용으로 설치되니 이제 더 이상 고민할 내용이 없다.

굳이 Arm용 Homebrew와 인텔 버전을 함께 쓰기

이제는 크게 의미가 없다고 생각하는 부분. 나는 더 이상 인텔 Homebrew가 필요없었다. 그래도 필요한 분들은 참고하시라.

Arm(M1)용 Homebrew 설치

Arm(M1)용의 Homebrew를 분리하기 위해 별도의 경로에 설치했다. 나는 /usr/local/m1-homebrew 경로에 설치했기 때문에 아래의 스크립트를 사용하였다.

터미널을 열어 아래를 입력하자. (터미널을 잘 모른다면 우측 상단의 돋보기를 클릭하고 터미널을 입력하라.)

/bin/sh -c "$(curl -fsSL https://gist.githubusercontent.com/dalinaum/85cd0806d0d23272bc42a44375d19fbf/raw/7a198d0b90b70031ff0892c028e47a8abcf82f73/m1-homebrew.sh)"

다른 경로를 원한다면 m1-homebrew.sh를 다운로드 받아 brew_root를 수정하고 다음과 같이 실행하자.

/bin/sh m1-homebrew.sh

인텔용 Homebrew 설치

인텔 버전의 Homebrew도 필요하다 생각하여 설치했다. 어떤 프로그램은 M1에서 제대로 안돌테니까.

먼저 터미널을 Rosetta로 열어 인텔 환경으로 세팅한다.

응용 프로그램 > 유틸리티

응용 프로그램 > 유틸리티 항목에서 터미널을 찾아 우클릭 해 문맥 메뉴를 연다.

문맥 메뉴

문맥 메뉴에서 정보 가져오기를 클릭하여 로제타를 설정하자.

로제타 설정

이제 터미널을 열자. 이전에 열린 터미널이 있다면 꼭 Command + Q로 닫고 새로 열어야 한다.

로제타가 처음 수행될 때는 다운로드 절차가 있기 때문에 잠시 기다려야 한다.

제대로 열렸는지 확인하고 싶다면 활성 상태 보기를 열고 CPU를 선택하자. (활성 상태 보기를 어떻게 열어야 하는지 모른다면 우측 상단의 돋보기 아이콘을 클릭하고 입력하면 된다.)

활성 상태 보기

터미널 옆에 Intel이 떠 있어야 제대로 로제타가 뜬 것이다.

로제타 터미널이 맞으면 다음의 커맨드를 입력하자.

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

설치가 만료되며 터미널을 닫고 응용 프로그램 > 유틸리티 > 터미널로 가 로제타 설정을 끄자. 그렇지 않으면 앞으로 인텔 코드를 쓰게 된다.

이제 터미널을 켜고 아래의 커맨드라인을 입력해 인텔 버전의 Homebrew를 ibrew로 별칭을 정하자.

echo "alias ibrew='arch -x86_64 /usr/local/bin/brew'" >> ~/.zshrc

터미널을 다시 켜면 이제 Arm용 brew와 인텔용 ibrew로 나누어 사용할 수 있다.