GNU/Linux >> Linux Esercitazione >  >> Linux

Incompatibilità tar Linux/OS X:i tarball creati su OS X danno errori se non tarati in Linux

Ho cercato su Google il messaggio di errore e sembra un tar BSD rispetto a GNU tar problema.

Installa GNU tar se puoi su Mac OS e usalo per creare il tar .


Se stai usando Mavericks o versioni successive, gnutar non è più incluso per impostazione predefinita.

La soluzione, se usi homebrew, è eseguire quanto segue:

brew install gnu-tar

È quindi possibile utilizzare il comando gtar per la compatibilità con Linux.

Se vuoi sostituire tar con gtar , sostituisci semplicemente il collegamento simbolico

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

Per ripristinare il tar originale fornito con Mac Os X, esegui i comandi precedenti ma sostituisci which gtar con which bsdtar

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


Al tar GNU non piacciono alcune delle informazioni opzionali incluse nel tar OSX BSD predefinito.

GNU tar ti permetterà di sopprimere quegli avvertimenti con l'opzione:

--warning=no-unknown-keyword

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

Nota che tar BSD non supporta quel flag, quindi se hai bisogno di eseguire lo stesso codice di decompressione su tutte le piattaforme puoi usare qualcosa come:

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. Partizionare un'unità su Linux con GNU Parted

  2. Spiegazione di APT Package Manager su Linux

  3. Linux – Quando non dovrei uccidere -9 Un processo?

  4. Backup dell'intero disco rigido Linux?

  5. Come gzippare una directory in Linux

Comando tar in Linux con esempi

Spiegazione del comando tar di Linux

Estrai il file tar.gz in Linux

cronologia del tempo di attività di Linux

Linux:installa solo redis-cli

Linux può ripulire la memoria?