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

Variants, Sandboxing, Snapshots

~11 min · macports, concepts, internals

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

MacPorts 의 디자인 선택은 의도적. 각각이 격리, 컨트롤, 또는 audit 가능성 위해 편의 거래 — 그리고 각각 알 만한 가치 있는 이름이 있음.

Variants 가 가장 많이 쓰이는 개념. port 의 Portfile (Homebrew formula 의 MacPorts 등가물) 에 선언된 빌드 타임 스위치. 어떤 건 상호 배타적 (+darwin vs +universal); 어떤 건 자유롭게 stack (+python312 +lua +cscope). install 한 variant set 이 패키지의 정체성 일부가 됨 — vim +python312vim +ruby 동시 install 가능, sudo port activate 로 active 전환.

샌드박스 빌드. MacPorts 가 port 컴파일할 때 빌드는 trace 샌드박스 안에서 돌면서 모든 파일시스템 접근 모니터링. port 의 빌드 스크립트가 /usr/local (Homebrew 와 충돌) 또는 ~/Documents 만지려 하면 샌드박스 잡음. MacPorts 빌드가 더 재현 가능한 이유 중 하나 — 의존성 깔끔하게 선언하도록 강제됨.

self-contained 의존성. sudo port install nginx 하면 MacPorts 가 자기 OpenSSL, pcre, zlib 끌고 옴 — macOS 시스템 복사본 절대 X. 단점은 디스크 더 씀; 장점은 macOS 업데이트가 거의 절대 MacPorts 셋업 안 깨뜨림.

Snapshots 는 'macOS 업그레이드가 모든 거 깨' 에 대한 MacPorts 의 답. 메이저 macOS 업그레이드 전에 sudo port snapshot --note "before sequoia" 돌려. 업그레이드와 새 MacPorts 재설치 후 sudo port restore --snapshot "before sequoia" 가 그 전에 active 였던 모든 port (variants 포함) 재설치. MacPorts 의 Brewfile 에 가장 가까운 거.

Code

macOS 업그레이드 전 snapshot·bash
# 지금 snapshot
sudo port snapshot --note "pre-sequoia-upgrade"

# snapshot 목록
port snapshot --list

# macOS 업그레이드 + 새 MacPorts install 후:
sudo port restore --snapshot "pre-sequoia-upgrade"
# 같은 variants 의 모든 active port 재설치.

External links

Exercise

'sudo port snapshot --note "first-snapshot"' 한 번 돌리고 'port snapshot --list' 로 확인. restore 안 해도 돼 — 핵심은 습관 시작. snapshot 은 싸고, macOS Sequoia 가 install brick 하는 날 안 가진 후회는 그렇지 않아.

Progress

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

댓글 0

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

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