Como invalidar um arquivo fonte na loja nix

Como invalidar um arquivo fonte na loja nix

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 rwe deletar o arquivo, mas parece que deveria haver uma solução que não subvertesse roo design do nixos.

Responder1

Você sempre pode, nix-store --delete /nix/store/pathse não mantiver o caminho ativo por algumas referências, mas você deve observar alguns detalhes. Presumo que suas fontes sejam obtidas por fetchurluma 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 fetchurlpor 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-urlnecessário evitar fazer buscas duas vezes, etc.

informação relacionada