%20reproducibles%20en%20binario%3F.png)
Me gustaría que mi initramfs tuviera el mismo hash sin importar cuándo o dónde lo construya si el contenido de los archivos es el mismo (y son propiedad de root y tienen los mismos permisos). No veo ninguna opción en GNU cpio para eliminar o establecer marcas de tiempo de los archivos en el archivo. ¿Existe una forma relativamente estándar de modificar la entrada a cpio y otros programas de archivo para poder obtener productos reproducibles?
Además de esto, ¿existe una marca de tiempo convencional de "No le damos una fecha"? ¿Algo por lo que la mayoría del software no se asusta? Por ejemplo, ¿0 épocas-segundos?
Por ejemplo, si hiciera una búsqueda en un directorio de entrada para initramfs y estableciera manualmente todas las marcas de tiempo en 0, ¿podría compilar ese archivo, extraerlo en otro sistema, repetir el proceso, compilarlo nuevamente y obtener bits idénticos? archivos?
Respuesta1
Las versiones más nuevas de GNU cpio
tienen una --reproducible
bandera que se adapta en cierta medida a sus requisitos. Mi entendimiento es quela herramienta del no determinismo de la tirase encargará del requisito de marca de tiempo después del hecho. touch
le permitirá establecer la hora antes de empaquetar, por supuesto.
Respuesta2
Puedes hacer esto usando star
y está integrado find
basado en libfind
.
Llamar por ejemplo:
star -c H=cpio -find somedir -chmtime 2020-05-20T12:10:12 > archive.cpio
find
Por supuesto , si lo desea, puede utilizar reglas complejas para diferentes marcas de tiempo.
Controlarhttp://sourceforge.net/projects/schilytools/files/para una star
fuente reciente en el último schilytools
tarball.
Por cierto: creo que lo siguiente podría parecer publicidad, pero la información ha sido solicitada y es OpenSource desde el principio. star
debería ser bien conocido UNIX
ya que es la tar
implementación gratuita más antigua: comenzó en 1982, lo que hace que tenga 38 años en 2020.
star
es la implementación más madura y completa tar
que conozco. Otras implementaciones suelen copiar conceptos para mejoras del formato de archivo de star
, que se identifica mediante el SCHILY.*
prefijo de propiedad introducido star
y utilizado por otros también.
Desde hace 32 años, se bifurca en dos procesos que comparten un FIFO configurable para máxima velocidad. star -copy
es más rápido que cualquier otro método conocido de copia de árbol UNIX.
Desde hace 30 años, admite y detecta automáticamente varios formatos de archivo.
Desde hace 17 años, es una herramienta de archivado genérica que implementa compatibilidad de línea de comandos con varios archivadores UNIX como tar
, cpio
pax
e incluso los incompatibles GNU tar
.
Desde hace 16 años, incluye soporte para la find
sintaxis mejorada de la línea de comandos a través de libfind
. Esto ayuda a evitar aprender nuevos conceptos de uso innecesarios, ya que todos deberían saber cómo usarlos find
.
Desde hace 2 años, eliminó por completo las limitaciones de longitud de los nombres de rutas.
Verhttp://cdrtools.sourceforge.net/private/star.htmlyhttp://schilytools.sourceforge.net/man/man1/star.1.htmlpara más información.