descomprimir - Autotools-tar Esto no parece un archivo tar
descomprimir tar (2)
Después de ejecutar make distcheck
recibo el mensaje de que he creado el paquete correctamente y que estoy listo para su distribución. Si tar -zxvf hello-0.2.tar.gz
tar.gz
con tar -zxvf hello-0.2.tar.gz
se extrae con éxito todo su contenido. Sin embargo, cuando intento extraerlos en diferentes máquinas obtengo:
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors
Lo raro es que funcionaba antes.
En la máquina que estoy tratando de construir el paquete, actualicé mi automake 1.10.1, autoconf 2.61, and tar 1.20 to automake 1.11.1, autoconf 2.65, and tar 1.23
y aún el mismo problema.
¿Alguna idea de cuál podría ser el problema?
El problema no está en la máquina de construcción; El problema está en las máquinas de destino.
No todas las versiones de tar
reconocen automáticamente la descompresión que se aplica a un archivo tar
comprimido. Dado que gunzip
seguido de tar
funciona, entonces el tar
en su máquina objetivo es uno de esos. Las versiones de tar
en los sistemas Unix convencionales (AIX, HP-UX, Solaris) no reconocen los archivos tar comprimidos automáticamente. Los de Linux y MacOS X lo hacen.
Tenga en cuenta que puede utilizar:
gzip -dc hello-0.2.tar.gz | tar -xf -
para evitar crear el archivo sin comprimir intermedio.
En realidad, esto podría suceder cuando el servidor del que descarga aplica otra ronda de GZip y el cliente que usó para descargar el archivo no lee / respeta el encabezado de Content-Encoding
HTTP y almacena la carga útil HTTP tal como estaba en el cable.
Aunque el archivo parece tener solo la extensión .tar.gz
, en realidad es .tar.gz.gz
. después de ejecutar el gunzip
una vez que el archivo obtiene la extensión .tar
solo, pero esta vez ejecutando el comando tar xf hello-0.2.tar
reconoce el formato GZip e implícitamente ejecuta el archivo a través de gunzip una vez más antes de extraerlo.
Puede verificar esto ejecutando head hello-02.tar.gz
y head hello-02.tar
. GZip es un formato muy binario, mientras que tar es bastante legible para los humanos. Si el archivo .tar aparece como "demasiado binario", tiene un archivo codificado en sus manos.