본문 바로가기
C.W.K.
Stream
Lesson 01 of 05 · published

MacPorts가 정답일 때

~10 min · macports, overview, comparison

Level 0입문자
0 XP0/55 lessons0/16 achievements
0/80 XP to next level80 XP to go0% complete

MacPorts는 이 분야의 선배야. 처음에는 DarwinPorts라는 이름으로 2002년에 등장했으니 Homebrew보다 7년 앞섰지. 커뮤니티 규모는 더 작지만 꾸준히 유지되고 있으며, 프로젝트 성격에 따라서는 지금도 더 나은 선택이야.

Homebrew와 구별되는 첫 번째 특징은 기본적으로 소스에서 빌드한다는 점이야. sudo port install python312를 실행하면 MacPorts가 현재 Mac의 도구 모음으로 Python을 컴파일해. Homebrew의 미리 빌드된 bottle보다 오래 걸리지만, 현재 macOS와 아키텍처에 맞춘 재현 가능한 빌드를 얻고 구성을 세밀하게 조정할 수 있어.

둘째, MacPorts는 완전히 독립된 환경을 꾸려. OpenSSL, readline, zlib을 비롯한 의존성을 자체 경로에 따로 설치하고 macOS의 시스템 라이브러리를 건드리지 않아. Apple이 시스템 라이브러리를 바꾸더라도 MacPorts 도구가 영향을 덜 받는 이유야.

셋째, port마다 켜고 끌 수 있는 빌드 시점 옵션인 variants를 제공해. X11 없이 Python 3.12를 지원하는 vim이 필요하면 sudo port install vim +python312 -x11, Fortran을 포함한 GCC가 필요하면 sudo port install gcc14 +fortran을 실행하면 돼. Homebrew formula는 대개 이만큼 세밀한 빌드 제어를 노출하지 않아.

그 대가도 세 가지야. 거의 모든 작업에 sudo가 필요하고, 내려받기만 하는 방식보다 컴파일이 느리며, 커뮤니티가 작아서 일부 서드파티 도구가 없을 수 있어. 빌드 구성을 직접 정하거나 강한 격리가 중요하면 MacPorts를, 속도와 선택 폭이 중요하면 Homebrew를 고르면 돼.

Code

MacPorts와 Homebrew 한눈에 비교·text
                  MacPorts              Homebrew
  Prefix          /opt/local/           /opt/homebrew/ (Apple Silicon)
  디폴트          Source 빌드           사전 컴파일 bottle
  Sudo 필수       Yes (항상)            No (절대 안)
  Variants        Yes (port 별 +/-)     제한적
  Port 수         ~29,000+              ~7,000+ formulae (+ casks)
  macOS 지원      10.5 Leopard 까지 거꾸로  Rolling, 옛 버전 drop
  적합한 때       빌드 flag 필요        지금 install 하고 싶음

External links

Exercise

https://ports.macports.org를 둘러보고 variants가 여러 개인 port 세 개를 찾아 봐. 설명에 표시된 '+variant'를 확인하고 각 variant가 무엇을 제어하는지 적어. 이 기능만으로도 MacPorts가 Homebrew와 별도로 존재할 이유가 되는지 판단해 봐.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.