대상: 이천이십육년 원격 Mac에서 Nix Flake와 substituter를 같이 다루는 팀. 산출물: 복붙 nix.conf, lock 갱신·롤백, 비교표, 디스크·재시도 밴드. 내비: 블로그·GHCR 매트릭스·디스크 FAQ.

왜 Flake 잠금과 substituter를 한 장에 묶어야 하나요?

1
lock 공백: flake.lock 없이 입력이 흔들리면 재현·감사가 동시에 깨집니다.
2
substituter: 키 누락·순서 오류가 곧바로 폴백·실패로 이어집니다.
3
병렬: max-jobs만 올리면 nar 풀과 컴파일이 APFS를 같이 씁니다.

비교표: 본질 바이너리 캐시 vs 원격 substituter vs 자체 캐시

행은 캐시 유형, 열은 운영 규율입니다. 국경 간 링크를 쓸수록 신뢰 키·방화벽·감사 로그를 표와 함께 고정해 두면 온콜이 덜 흔들립니다. 표를 주간 회의에 붙여 두세요.

경로 강점 약점 선택
공용 캐시 cache.nixos.org 서명·히트 넓음 먼 링크는 지연 substituters 맨 앞 기준선
리전 substituter 지연 짧음 TLS·키 운영 키 고정·폴백 순서 문서화
자체 캐시 비공개·대역 통제 SPOF·용량 업로드와 읽기 엔드포인트 분리

복붙 nix.conf 스니펫 substituters·trusted-public-keys·max-jobs·cores

substituters는 왼쪽 우선. 키는 운영자 값으로 교체. 공유 러너는 max-jobs = 2·cores = 0부터.

# 예시: 이천이십육 원격 Mac CI — 앞쪽 URL이 먼저 조회됩니다
substituters = https://cache.nixos.org https://substituter.apac.example.com
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWEx8fkFGl0Jq6llKeyKtJnSGmR84nM24=YChYoOdaKVk4lHVWdn/W+zdGEQQ81sj39lkJchSPM= substituter.apac.example.com-1:REPLACE_WITH_OPERATOR_KEY
max-jobs = 2
cores = 0

메모. 재시작 뒤 nix show-config로 병합 결과·경로 일치를 확인.

flake.lock 갱신과 롤백 명령 모음

브랜치에서 lock diff 리뷰 후 합치기. 롤백은 git이 가장 빠릅니다.

nix flake lock --update-input nixpkgs
nix flake metadata --json > reports/flake-metadata.json

git add flake.lock
git commit -m "chore(nix): refresh flake.lock"

# 롤백: 직전 커밋의 lock만 복원
git checkout HEAD~1 -- flake.lock

# 단일 입력만 이전 리비전에 고정
nix flake lock --override-input nixpkgs github:NixOS/nixpkgs/nixos-24.11

디스크 워터마크와 fetch 실패 재시도 사다리

스토어 볼륨은 경고·스로틀·중단 삼단계. 공유 호스트는 여유 이십기가바이트 밴드. HTTP 일시 오류는 이·사·팔 초 백오프에 지터, 시도 상한 다섯 회 전후.

프로필 디스크 경고·스로틀·중단 여유 하한 재시도 초
보수 공유 80·85·90% 20GB 2 4 8 … 최대 120
균형 전용 82·87·92% 25GB 1 2 4 8 … 최대 90
공격 단독 85·90·93% 30GB 0.5 1 2 4 … 최대 60

인용: max-jobs 2·cores 0 출발, 디스크 82·87·92%, 재시도 2·4·8초 골격.

운영 단계 다섯 가지 체크리스트

  1. 잠금: nix flake lock·커밋·릴리스 노트에 입력 리비전.
  2. 설정: launchd·셸 NIX_CONFIG와 파일 충돌 제거.
  3. 순서 실험: 공용 우선 vs 리전 우선을 주 단위로 바꿔 p구간 기록.
  4. 디스크: 빌드 전 df 게이트.
  5. 장애: narinfo 결측은 키·URL, 타임아웃은 동시성 한 단계 하향.

짧은 FAQ 구조화 데이터와 본문 연결

키 경고: 미등록 substituter는 받지 않음. 키 회전은 문서 버전과 함께.

폴백 폭주: 연속 미스면 입력 해시·store 로그로 미러 점검.

스키마: BlogPosting·BreadcrumbList·HowTo·FAQPage.

요약과 다음 행동

이천이십육년엔 lock·substituter·병렬·디스크를 한 세트로 묶는 쪽이 조용합니다.

·구매·도움말·요금·블로그로그인 없이.

Nix 스토어를 안정적으로 둘 원격 Mac

MacPull 전용 Apple Silicon에서 substituter·디스크·SSH 정책을 팀 그대로 유지하세요. 도움말·구매·요금·기술 블로그로그인 없이 이용할 수 있습니다.