C.W.K.
Stream
Lesson 05 of 05 · published

MacPorts Wisdom

~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 오염) 이 MacPorts 사용자에겐 다르게 박혀 — 보통 source-build 모델과 strict prefix 때문.

항상 selfupdate 먼저. 오래된 port tree 가 오래된 (가끔 취약한) 소프트웨어 install. 머슬메모리 박아 — sudo port selfupdate 가 모든 MacPorts 세션의 첫 명령.

빌드 시간 계획. Homebrew 의 binary bottle 은 초 단위 install; MacPorts 컴파일. 무거운 port (gcc, llvm, qt5, C extension 가진 perl module) 진짜 시간 걸림. 지금 필요하면 지금 install 시작하고 떠 — tab 옮겨서 2분 안에 끝날 거라 기대하지 마.

같은 패키지에 MacPorts + Homebrew 섞지 마. 다른 prefix 에 install 하니까 다른 패키지엔 공존 OK. 하지만 python 을 둘로 install 하면 PATH 에 두 다른 python 생기고 어느 거 스크립트가 쓰는지 저녁 보내.

port reclaim 써. MacPorts 는 source tarball, build 디렉토리, inactive port 버전 유지함. sudo port reclaim 가 다 정리. 매월 돌려.

uninstall 전에 port dependents 체크. 다른 port 가 의존하는 port 제거하면 깨질 수 있음. port dependents <name> 가 commit 전에 blast radius 보여줌.

Code

uninstall 전 안전 체크·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) 읽고 너 자신의 말로 articulate — variants 가 Homebrew 가 안 주는 무엇을 줘. articulate 하는 게 레슨.

Progress

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

댓글 0

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

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