Lorsque je cible des fichiers sur mon Macbook et les décompresse sous Linux, je reçois à plusieurs reprises 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 génération pour lesquels le code d'échec non nul renvoyé par 'tar' provoque l'arrêt inutilement des générations et des installations.
Comment puis-je obliger OS X à créer des fichiers tar qui fonctionnent bien avec le reste du monde Linux?
De plus, pour les points bonus, il existe un fichier tar distribué publiquement avec ces problèmes. Existe-t-il un moyen de faire en sorte que Linux gère correctement le fichier tar sans modifier la façon dont il a été compressé à l'origine?
la source
/usr/bin/gnutar
.Si vous utilisez Mavericks ou une version plus récente, gnutar n'est plus inclus par défaut.
Si vous utilisez homebrew, vous devez exécuter les tâches suivantes:
Vous pouvez ensuite utiliser la commande
gtar
pour la compatibilité linux.Si vous voulez remplacer
tar
pargtar
, remplacez simplement le lien symboliquePour restaurer le fichier tar d'origine fourni avec Mac Os X, exécutez les commandes ci-dessus mais remplacez-le
which gtar
parwhich bsdtar
Source:
https://github.com/jordansissel/fpm/issues/576
la source
.bashrc
(ou votre équivalent):PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"
tar
lien/usr/local/bin
parcd /usr/local/bin ; ln -s gtar tar
- peut - être l'option la plus simpleLes fichiers GNU tar n’aiment pas certaines des informations facultatives incluses dans les fichiers OSX BSD par défaut.
GNU tar vous permettra de supprimer ces avertissements avec l’option:
Voir: https://www.gnu.org/software/tar/manual/html_section/tar_27.html
Notez que BSD tar ne prend pas en charge cet indicateur. Par conséquent, si vous devez exécuter le même code de décompression sur toutes les plateformes, vous pouvez utiliser quelque chose comme:
la source
Pour extraire le fichier tar correctement, sans erreur sur un système Linux, vous pouvez utiliser bsdtar.
sudo apt-get install bsdtar
Ensuite, utilisez comme d'habitude.
bsdtar -xvf file.tar
oùfile.tar
est le fichier tar que vous voulez extraire.Source: https://bugs.launchpad.net/ubuntu/+source/tar/+bug/129314
Sinon, vous pouvez également utiliser le rouleau de fichiers GNOME.
la source
ou
C’est la fonctionnalité de tar la moins découverte sur OS X à ma connaissance.
Voir aussi Pourquoi ai-je des fichiers comme ._foo dans mon archive tarball sur OS X?
Edit: il semble que cela pourrait uniquement arrêter la création des
._foo
fichiers de type indésirable , mais pas la création de l'en-tête (du moins sur Yosemite / 10.10); merci aux commentateurs de l'avoir signalé. Cependant, (pour les points bonus :), vous pouvez gérer avec élégance de telles archives en les extrayant comme ceci:Cela a fonctionné avec gnu tar 1.15.1, qui est assez vieux! Alternativement, vous pouvez utiliser pax à la place, ce qui (pour moi) jette les informations supplémentaires dans un
PaxHeader
répertoire, mais au moins se ferme sans erreur:la source
tar --version
indiquebsdtar 2.8.3 - libarchive 2.8.3
). Aussi, j'ai besoin d'un tiret avantcf
dans ce dernier cas.MacOSX est déjà livré avec gnutar. Si vous voulez une solution rapide et sale, ajoutez ceci à
~/.bash_profile
et courir
source ~/.bash_profile
pour mettre à jourDe plus, OSX est livré avec les fichiers tar GNU et BSD. Ainsi, vous pouvez également dissocier l’arbitre de tar de bsd à gnu:
la source
/etc/hosts
?/etc/hosts
est pour mappage hôte / IP, non?.bashrc
n'est pas chargé pour les sessions Terminal. Vous avez besoin.bash_profile
, car un shell de connexion est démarré avec une nouvelle fenêtre de terminal. / cc @BenjiWiebeJe vous remercie. Ce fil était très utile. Si vous utilisez MacPorts, voici un bref guide:
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 à /Users/[votre_domaine//profile
alias tar='/opt/local/libexec/gnubin/tar'
Quittez et relancez la fenêtre de votre terminal.
la source
Oui, le binaire tar intégré à Mac ajoute un tas de choses supplémentaires que CentOS n'aime pas. Pour résoudre ce problème, procédez comme suit:
J'espère que ça t'as aidé!
la source
tar
programme étranger gnutar pour éviter toute confusion de logiciel. s'attendre à ce qu'un Mac se comporte comme un Mac. 0,02 $. -ErikD'accord, j'ai utilisé la recherche Google, mais les trois premiers liens ont confirmé ce que je soupçonnais
Voir ce lien . Quelqu'un rapporte que "Utiliser" bsdtar -xvf "a fonctionné."Edit: Vous êtes sur le système Mac, j'ai pensé autrement. Vous devrez utiliser gnutar, il devrait déjà être installé, sinon installez-le. Bien sûr, vous pouvez regarder d'autres liens en cherchant vous-même.
la source
Sous MAC OSX, installez gnu-tar
puis créez votre tar compatible linux avec:
Ou vous pouvez créer vos archives avec le format pax
la source