Cómo invalidar un archivo fuente en la tienda nix

Cómo invalidar un archivo fuente en la tienda nix

Terminé con la fuente incorrecta para un paquete en mi tienda nix. Esto sucedió hace un tiempo, por lo que no puedo rastrear el archivo de registro para descubrir cómo sucedió. Cualquier intento que hago para reconstruir la misma versión del paquete resulta en el uso de la misma fuente incorrecta. ¿Existe alguna manera de invalidar un archivo fuente o forzar una nueva recuperación?

Podría montar la tienda rwy eliminar el archivo, pero parece que debería haber una solución que no subvierta roel diseño de Nixos.

Respuesta1

Siempre puedes hacerlo nix-store --delete /nix/store/pathsi no mantienes vivo el camino mediante algunas referencias, pero debes tener en cuenta algunos detalles. Supongo que sus fuentes se obtienen mediante fetchurluna derivación de salida fija similar. Estos especifican el hash de la salida, y la ruta que tiene en la tienda nix coincide con ese hash, por lo que en realidad es la fuente correcta (teniendo en cuenta lo que le pidió a nix).

La ruta fácil típica es sobrescribir el hash con fetchurlalgún valor incorrecto, por ejemplo, reemplazar algunos caracteres por ceros, y nix intentará volver a buscar e imprimir el hash resultante (que no coincide) que luego podrá actualizar. También hay nix-prefetch-urlque evitar realizar búsquedas dos veces, etc.

información relacionada