GNU/Linux >> Tutoriales Linux >  >> Linux

Incompatibilidad tar de Linux/OS X:los tarballs creados en OS X dan errores cuando se desempaquetan en Linux

Busqué en Google el mensaje de error y parece un tar de BSD frente a GNU tar problema.

Instalar GNU tar si puede en Mac OS y utilícelo para crear el tar .


Si está utilizando Mavericks o más reciente, gnutar ya no se incluye de forma predeterminada.

La solución, si usa homebrew, es ejecutar lo siguiente:

brew install gnu-tar

A continuación, puede utilizar el comando gtar para compatibilidad con linux.

Si desea reemplazar tar con gtar , simplemente reemplace el enlace simbólico

tar --version
ll `which tar`
sudo unlink `which tar`
sudo ln -s `which gtar` /usr/bin/tar
tar --version

Para restaurar el tar original provisto con Mac Os X, ejecute los comandos anteriores pero reemplace which gtar con which bsdtar

Fuente:
https://github.com/jordansissel/fpm/issues/576


A GNU tar no le gusta parte de la información opcional que incluye el tar predeterminado de OSX BSD.

GNU tar le permitirá suprimir esas advertencias con la opción:

--warning=no-unknown-keyword

Ver:https://www.gnu.org/software/tar/manual/html_section/tar_27.html

Tenga en cuenta que BSD tar no admite esa bandera, por lo que si necesita ejecutar el mismo código de desempaquetado en todas las plataformas, puede usar algo como:

isGnuTar=$(tar --version | grep -q 'gnu')
if [ $? -eq 0 ]
then
    echo "Detected GNU tar"
    tar --warning=no-unknown-keyword -zxf my.tar.gz
else
    tar -zxf my.tar.gz
fi

Linux
  1. Administrador de paquetes APT en Linux explicado

  2. Linux:¿cuándo no debo matar -9 un proceso?

  3. Copia de seguridad de todo el disco duro de Linux?

  4. Cómo gzip un directorio en Linux

  5. Comando tar de Linux

Comando tar en Linux con ejemplos

Explicación del comando tar de Linux

Linux:¿cuáles son las diferentes formas de establecer permisos de archivos, etc. en Gnu/linux?

¿Cuándo se creó el archivo?

Extraiga el archivo tar.gz en Linux

¿Cómo mover una partición en GNU/Linux?