
Acabei com a fonte errada para um pacote na minha loja nix. Isso aconteceu há algum tempo, então não consigo rastrear o arquivo de log para descobrir como aconteceu. Qualquer tentativa de reconstruir a mesma versão do pacote resulta no uso da mesma fonte incorreta. Existe uma maneira de invalidar um arquivo de origem ou forçar uma nova busca?
Eu poderia montar a loja rw
e deletar o arquivo, mas parece que deveria haver uma solução que não subvertesse ro
o design do nixos.
Responder1
Você sempre pode, nix-store --delete /nix/store/path
se não mantiver o caminho ativo por algumas referências, mas você deve observar alguns detalhes. Presumo que suas fontes sejam obtidas por fetchurl
uma derivação de saída fixa semelhante. Eles especificam o hash da saída, e o caminho que você tem no armazenamento nix corresponde a esse hash, portanto, é na verdade a fonte correta (considerando o que você pediu ao nix).
O caminho mais fácil típico é substituir o hash fetchurl
por algum valor incorreto, por exemplo, substituir alguns caracteres por zeros, e o nix tentará buscar novamente e imprimir o hash resultante (incompatível) que você poderá atualizar. Também é nix-prefetch-url
necessário evitar fazer buscas duas vezes, etc.