대상: 이천이십육년 원격 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초 골격.
운영 단계 다섯 가지 체크리스트
- 잠금:
nix flake lock·커밋·릴리스 노트에 입력 리비전. - 설정: launchd·셸
NIX_CONFIG와 파일 충돌 제거. - 순서 실험: 공용 우선 vs 리전 우선을 주 단위로 바꿔 p구간 기록.
- 디스크: 빌드 전
df게이트. - 장애: narinfo 결측은 키·URL, 타임아웃은 동시성 한 단계 하향.
짧은 FAQ 구조화 데이터와 본문 연결
키 경고: 미등록 substituter는 받지 않음. 키 회전은 문서 버전과 함께.
폴백 폭주: 연속 미스면 입력 해시·store 로그로 미러 점검.
스키마: BlogPosting·BreadcrumbList·HowTo·FAQPage.