114 votes

Incompatibilité tar Linux / OS X - les tarballs créés sous OS X donnent des erreurs lorsqu'ils sont dé-tarés sous Linux

Lorsque j'archive des fichiers sur mon Macbook et que je les désarchive sous Linux, je reçois régulièrement les avertissements/erreurs suivants :

 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

Heureusement, cela n'affecte PAS les fichiers stockés dans l'archive, qui sont parfaitement restaurés. Cependant, cela pose des problèmes dans un certain nombre de scénarios, en particulier lorsqu'il s'agit de processus de construction où le code d'échec non nul renvoyé par 'tar' provoque l'arrêt inutile des constructions et des installations.

Comment puis-je faire en sorte qu'OS X construise des fichiers tar qui soient compatibles avec le reste du monde Linux ?

De plus, pour les points bonus, il existe un fichier tar distribué publiquement avec ces problèmes. Y a-t-il un moyen de faire en sorte que Linux gère le fichier tar de manière efficace ? sans en changeant la façon dont il a été compressé à l'origine ?

4voto

Du3 Points 141

MacOSX est déjà livré avec gnutar. Si vous voulez une solution rapide et sale, ajoutez ceci à ~/.bash_profile

alias tar='gnutar'

et exécuter source ~/.bash_profile de mettre à jour

De plus, OSX est livré avec les tar GNU et BSD. Vous pouvez donc également délier la référence de tar de bsd à gnu :

sudo unlink /usr/bin/tar;
sudo ln -s /usr/bin/gnutar /usr/bin/tar

3voto

howdytom Points 181

Merci. Ce fil de discussion a été très utile. Si vous utilisez MacPorts, voici un petit guide pratique :

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

Ajoutez la ligne suivante à /Utilisateurs/[votre nom]/.profil

alias tar='/opt/local/libexec/gnubin/tar'

Quittez und et redémarrez votre fenêtre Terminal.

1voto

KalEl Points 1846

Oui, le binaire tar intégré de Mac ajoute un tas de trucs supplémentaires que CentOS n'aime pas. Pour corriger cela, faites ce qui suit :

sudo mv /usr/bin/tar /usr/bin/darwintar
sudo ln -s /usr/bin/gnutar /usr/bin/tar
ls -l /usr/bin/tar

J'espère que cela vous aidera !

0voto

Sudhi Points 143

Ok, j'ai utilisé la recherche Google, mais les trois premiers liens ont confirmé ce que je soupçonnais.

  1. Bug dans votre goudron ET/OU
  2. Incompatibilité entre les deux utilitaires de goudron
    Voir ce lien . Là, quelqu'un rapporte que "L'utilisation de "bsdtar -xvf" a fonctionné."

Edit : Vous êtes sur un système Mac, je pensais que c'était l'inverse. Vous aurez besoin d'utiliser gnutar, il devrait être déjà installé, sinon faites-le installer. Bien sûr, vous pouvez regarder d'autres liens en cherchant vous-même.

0voto

msadek Points 41

Sur MAC OSX installez gnu-tar

brew install gnu-tar

puis créez votre tar compatible linux avec :

gtar -c -f your_tar_file files

Ou vous pouvez créer votre archive au format pax.

tar -c --format pax -f your_tar_file files

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X