
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 rw
y eliminar el archivo, pero parece que debería haber una solución que no subvierta ro
el diseño de Nixos.
Respuesta1
Siempre puedes hacerlo nix-store --delete /nix/store/path
si no mantienes vivo el camino mediante algunas referencias, pero debes tener en cuenta algunos detalles. Supongo que sus fuentes se obtienen mediante fetchurl
una 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 fetchurl
algú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-url
que evitar realizar búsquedas dos veces, etc.