결국 내 nix 스토어에서 잘못된 패키지 소스를 찾았습니다. 이 일은 얼마 전에 일어났기 때문에 로그 파일을 추적하여 어떻게 이런 일이 일어났는지 알 수 없습니다. 동일한 버전의 패키지를 다시 빌드하려는 시도는 모두 동일한 오류 소스를 사용하게 됩니다. 소스 아카이브를 무효화하거나 강제로 다시 가져오는 방법이 있습니까?
스토어를 설치하고 아카이브를 삭제할 수도 있지만, nixos 디자인을 전복하지 않는 솔루션이 rw
있어야 할 것 같습니다 .ro
답변1
nix-store --delete /nix/store/path
일부 참조를 통해 경로를 활성 상태로 유지하지 않으면 언제든지 수행할 수 있지만 주의해야 할 몇 가지 세부 사항이 있습니다. 귀하의 소스가 fetchurl
유사한 고정 출력 파생을 통해 획득 되었다고 가정합니다 . 이는 출력의 해시를 지정하고 nix 저장소의 경로가 해당 해시와 일치하므로 실제로 올바른 소스입니다(nix에 대한 요구 사항 고려).
일반적인 단순 경로는 해시를 fetchurl
일부 잘못된 값(예: 일부 문자를 0으로 바꾸는 등)으로 덮어쓰는 것입니다. 그런 다음 nix는 결과(일치하지 않는) 해시를 다시 가져오고 인쇄하여 업데이트할 수 있습니다. 또한 nix-prefetch-url
이중 추출 등을 피하십시오.