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

MacPorts를 오래 쓰는 법

~10 min · macports, wisdom, gotchas

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

MacPorts는 서두르지 않는 사용자에게 보답하는 도구야. Homebrew에서 흔한 sudo 손상이나 PATH 오염과는 다른 함정이 있으며, 대부분 소스 빌드 방식과 엄격히 분리된 설치 경로에서 생겨.

항상 selfupdate부터 실행해. 오래된 port tree는 오래되었거나 취약한 소프트웨어를 설치하게 만들 수 있어. sudo port selfupdate를 모든 MacPorts 작업의 첫 명령으로 익혀 둬.

빌드 시간을 고려해. Homebrew의 bottle은 몇 초면 설치되지만 MacPorts는 직접 컴파일할 수 있어. gcc, llvm, qt5나 C 확장이 있는 Perl 모듈처럼 무거운 port는 꽤 오래 걸려. 당장 필요하다면 먼저 설치를 시작해 두고 다른 일을 하는 편이 좋아.

같은 패키지를 MacPorts와 Homebrew 양쪽에 설치하지 마. 서로 다른 패키지를 맡기면 별도 경로 덕분에 잘 공존해. 하지만 Python을 양쪽에 설치하면 PATH에 서로 다른 실행 파일이 생겨, 스크립트가 어느 쪽을 쓰는지 찾느라 시간을 허비하게 돼.

port reclaim을 활용해. MacPorts는 소스 압축 파일, 빌드 디렉터리, 비활성화된 예전 버전을 보관해. 매달 sudo port reclaim을 실행하면 이 찌꺼기를 한꺼번에 정리할 수 있어.

제거하기 전에 port dependents를 확인해. 다른 port가 의존하는 대상을 지우면 환경이 깨질 수 있어. port dependents <name>으로 영향을 받을 범위를 먼저 확인해.

Code

제거 전 의존성 확인·bash
# 이 port 에 뭐가 의존?
port dependents readline
# python312 depends on readline
# ipython depends on readline

# 이제 알겠지 — readline uninstall 하면 python312, ipython 깨짐.
# 계획 없이 하지 마.

External links

Exercise

MacPorts가 설치되어 있다면 'sudo port reclaim'을 실행하고 확보된 디스크 공간을 확인해. 설치되어 있지 않다면 MacPorts Guide의 variants 절(https://guide.macports.org/#using.variants)을 읽고, variants가 Homebrew에는 없는 무엇을 제공하는지 자기 말로 설명해 봐. 설명할 수 있어야 제대로 이해한 거야.

Progress

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

댓글 0

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

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