사용자 지정 바이너리 캐시를 사용하도록 Nix 설정하기#
Nix는 substituters 및 trusted-public-keys 설정을 통해 바이너리 캐시를 단독으로 사용하거나 cache.nixos.org에 더해 추가로 사용하도록 설정할 수 있습니다.
경고
Nix는 설정된 공개 키에 대응하는 개인 키로 서명된 스토어 객체라면 요청된 것은 무엇이든 받아들입니다. 따라서 해당 개인 키에 접근할 수 있으면 임의의 파일을 Nix 스토어에 대체해 넣을 수 있습니다. 여기에는 높은 권한으로 실행되거나 자동으로 실행될 수 있는 실행 파일도 포함됩니다!
무조건 신뢰할 수 있는 공개 키만 추가하십시오.
예를 들어 공개 키가 My56...Q==%인 바이너리 캐시가 https://example.org에 있고 default.nix에 어떤 derivation이 있다면, 설정을 명령줄 플래그로 전달하여 Nix가 한 번만 해당 캐시를 단독으로 사용하게 할 수 있습니다:
$ nix-build --substituters https://example.org --trusted-public-keys example.org:My56...Q==%
공개 캐시보다 사용자 지정 캐시를 먼저 시도하도록 영구적으로 설정하려면, Nix 설정 파일에 더 낮은 priority 값과 함께 extra-substiters로 추가하십시오:
$ echo "extra-substituters = https://example.org?priority=30" >> /etc/nix/nix.conf
$ echo "extra-trusted-public-keys = example.org:My56...Q==%" >> /etc/nix/nix.conf
항상 사용자 지정 캐시만 사용하려면 다음과 같이 하십시오:
$ echo "substituters = https://example.org" >> /etc/nix/nix.conf
$ echo "trusted-public-keys = example.org:My56...Q==%" >> /etc/nix/nix.conf
NixOS
NixOS에서는 nix.settings 옵션을 통해 Nix를 설정합니다:
1{ ... }: {
2 nix.settings = {
3 substituters = [ "https://example.org?priority=30" ];
4 trusted-public-keys = [ "example.org:My56...Q==%" ];
5 };
6}
다음 단계#
튜토리얼을 따라 자신만의 HTTP 바이너리 캐시를 구축하십시오
팁
외부 트래픽을 줄이려면 원격 빌드 머신을 우선 바이너리 캐시로 사용하십시오.