Cuando guardo archivos en mi Macbook y los descomprimo en Linux, recibo repetidamente las siguientes advertencias / errores:
tar: Ignoring unknown extended header keyword `SCHILY.ino'
tar: Ignoring unknown extended header keyword `SCHILY.nlink'
tar: Ignoring unknown extended header keyword `SCHILY.dev'
tar: Ignoring unknown extended header keyword `SCHILY.ino'
tar: Ignoring unknown extended header keyword `SCHILY.nlink'
tar: Ignoring unknown extended header keyword `SCHILY.dev'
tar: Ignoring unknown extended header keyword `SCHILY.ino'
tar: Ignoring unknown extended header keyword `SCHILY.nlink'
tar: Ignoring unknown extended header keyword `SCHILY.dev'
tar: Ignoring unknown extended header keyword `SCHILY.ino'
tar: Ignoring unknown extended header keyword `SCHILY.nlink'
tar: Ignoring unknown extended header keyword `SCHILY.dev'
tar: Ignoring unknown extended header keyword `SCHILY.ino'
tar: Ignoring unknown extended header keyword `SCHILY.nlink'
tar: Ignoring unknown extended header keyword `SCHILY.dev'
tar: Ignoring unknown extended header keyword `SCHILY.ino'
tar: Ignoring unknown extended header keyword `SCHILY.nlink'
tar: Error exit delayed from previous errors
Afortunadamente, esto NO afecta a los archivos almacenados en el archivo, que se restauran perfectamente. Sin embargo, causa problemas en varios escenarios, especialmente cuando se trata de procesos de compilación en los que el código de falla distinto de cero devuelto por 'tar' hace que las compilaciones e instalaciones se detengan innecesariamente.
¿Cómo puedo hacer que OS X cree archivos tar que funcionen bien con el resto del mundo Linux?
Además, para los puntos de bonificación, existe un archivo tar distribuido públicamente con estos problemas. ¿Hay alguna forma de hacer que Linux maneje el archivo tar con gracia sin cambiar la forma en que se comprimió originalmente?
fuente
/usr/bin/gnutar
.Si está utilizando Mavericks o una versión más reciente, gnutar ya no se incluye de manera predeterminada.
La solución, si usa homebrew, es ejecutar lo siguiente:
Luego puede usar el comando
gtar
para la compatibilidad de Linux.Si desea reemplazar
tar
congtar
, simplemente reemplace el enlace simbólicoPara restaurar el tar original proporcionado con Mac Os X, ejecute los comandos anteriores pero reemplácelos
which gtar
conwhich bsdtar
Fuente:
https://github.com/jordansissel/fpm/issues/576
fuente
.bashrc
(o su equivalente):PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"
tar
vínculo en/usr/local/bin
porcd /usr/local/bin ; ln -s gtar tar
- posiblemente la opción más simpleA GNU tar no le gusta la información opcional que incluye el tar OSX BSD predeterminado.
GNU tar le permitirá suprimir esas advertencias con la opción:
Ver: https://www.gnu.org/software/tar/manual/html_section/tar_27.html
Tenga en cuenta que el tar de BSD no admite ese indicador, por lo que si necesita ejecutar el mismo código de desempaque en todas las plataformas, puede usar algo como:
fuente
Para extraer el archivo tar correctamente sin ningún error en un sistema Linux, puede usar bsdtar.
sudo apt-get install bsdtar
Luego utilícelo como de costumbre.
bsdtar -xvf file.tar
¿Dóndefile.tar
está el archivo tar que desea extraer?Fuente: https://bugs.launchpad.net/ubuntu/+source/tar/+bug/129314
Alternativamente, también puede usar el rodillo de archivos GNOME.
fuente
o
Esta es la característica menos reconocible de tar en OS X que conozco personalmente.
Consulte también ¿Por qué obtengo archivos como ._foo en mi tarball en OS X?
Editar: parece que esto solo podría detener la creación de los
._foo
archivos de tipo no deseado , no detiene la creación del encabezado (al menos en Yosemite / 10.10); gracias comentaristas por señalarlo. Sin embargo, (para los puntos de bonificación :) puedes manejar con gracia tales tarballs extrayéndolos así:Esto funcionó usando gnu tar 1.15.1, ¡que es bastante viejo! Alternativamente, puede usar pax en su lugar, que (para mí) arroja la información adicional en un
PaxHeader
directorio, pero al menos sale sin error:fuente
tar --version
indicabsdtar 2.8.3 - libarchive 2.8.3
). También necesito un guión antescf
en el último caso.MacOSX ya viene con gnutar. Si desea una solución rápida y sucia, agregue esto a
~/.bash_profile
y correr
source ~/.bash_profile
para actualizarAdemás, OSX se envía con tar GNU y BSD. Entonces también puede desvincular la referencia de tar de bsd a gnu:
fuente
/etc/hosts
?/etc/hosts
es para el mapeo de host / IP, ¿verdad?.bashrc
no se carga para sesiones de Terminal. Necesita.bash_profile
, ya que un shell de inicio de sesión se inicia con una nueva ventana de Terminal. / cc @BenjiWiebeGracias. Este hilo fue muy útil. Si está utilizando MacPorts aquí hay un tutorial rápido:
sudo port install gnutar
sudo ln -s /usr/local/opt/gnu-tar/libexec/gnubin/tar /usr/bin/gnutar
sudo ln -s /opt/local/libexec/gnubin/tar /usr/bin/gnutar
Agregue la siguiente línea a /Users/[yournamefont>/.profile
alias tar='/opt/local/libexec/gnubin/tar'
Salga y reinicie su ventana de Terminal.
fuente
Sí, el binario de tar incorporado de Mac agrega un montón de cosas adicionales que a CentOS no le gustan. Para solucionar esto, haga lo siguiente:
¡Espero que ayude!
fuente
tar
programa extranjero gnutar para evitar software confuso esperando que una Mac actúe como una Mac. $ 0.02. -ErikBien, utilicé la búsqueda de Google, pero los tres enlaces principales confirmaron lo que sospechaba
Ver este enlace . Allí alguien informa que "Usar" bsdtar -xvf "funcionó".Editar: Estás en el sistema Mac, pensé al revés. Necesitará usar gnutar, ya debe estar instalado, si no lo tiene instalado. Por supuesto, puede mirar otros enlaces buscándose usted mismo.
fuente
En MAC OSX instale gnu-tar
luego cree su tar compatible con Linux con:
O puede crear su archivo con formato pax
fuente