Ketika saya mengumpulkan file di Macbook saya dan membukanya di Linux, saya berulang kali mendapatkan peringatan / kesalahan berikut:
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
Untungnya, ini TIDAK mempengaruhi file yang disimpan dalam arsip, yang dipulihkan dengan sempurna. Namun, hal itu menyebabkan masalah dalam sejumlah skenario, terutama ketika berhadapan dengan proses pembangunan di mana kode kegagalan non-nol dikembalikan oleh 'tar' menyebabkan pembangunan dan pemasangan terhenti secara tidak perlu.
Bagaimana saya bisa mendapatkan OS X untuk membangun file tar yang dapat diputar dengan baik dengan seluruh dunia Linux?
Juga, untuk poin bonus, ada file tar yang didistribusikan secara publik dengan masalah ini. Apakah ada cara untuk membuat Linux menangani file tar dengan anggun tanpa mengubah cara awalnya dikompresi?
sumber
/usr/bin/gnutar
.Jika Anda menggunakan Maverick atau yang lebih baru, maka gnutar tidak lagi disertakan secara default.
Cara mengatasinya, jika Anda menggunakan homebrew, adalah menjalankan yang berikut ini:
Anda kemudian dapat menggunakan perintah
gtar
untuk kompatibilitas linux.Jika Anda ingin mengganti
tar
dengangtar
, cukup ganti symlinkUntuk mengembalikan tar asli yang disediakan dengan Mac Os X, jalankan perintah di atas tetapi ganti
which gtar
denganwhich bsdtar
Sumber:
https://github.com/jordansissel/fpm/issues/576
sumber
.bashrc
(atau yang setara dengan Anda):PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"
tar
tautan/usr/local/bin
dengancd /usr/local/bin ; ln -s gtar tar
- mungkin opsi paling sederhanaTar GNU tidak menyukai beberapa informasi opsional yang disertakan oleh tar OSX BSD default.
GNU tar akan membiarkan Anda menekan peringatan itu dengan opsi:
Lihat: https://www.gnu.org/software/tar/manual/html_section/tar_27.html
Perhatikan bahwa tar BSD tidak mendukung tanda itu, jadi jika Anda perlu menjalankan kode pembongkaran yang sama di semua platform, Anda dapat menggunakan sesuatu seperti:
sumber
Untuk mengekstrak file tar dengan benar tanpa kesalahan pada sistem Linux Anda bisa menggunakan bsdtar.
sudo apt-get install bsdtar
Kemudian gunakan seperti biasa.
bsdtar -xvf file.tar
di manafile.tar
file tar yang ingin Anda ekstrak.Sumber: https://bugs.launchpad.net/ubuntu/+source/tar/+bug/129314
Atau Anda juga dapat menggunakan rol file GNOME.
sumber
atau
Ini adalah fitur tar yang paling tidak dapat ditemukan di OS X yang secara pribadi saya sadari.
Lihat juga. Mengapa saya mendapatkan file seperti ._foo di tarball saya di OS X?
Sunting: sepertinya ini hanya akan menghentikan pembuatan
._foo
file -type yang tidak diinginkan , itu tidak menghentikan pembuatan tajuk (setidaknya pada Yosemite / 10.10); terima kasih komentator untuk menunjukkannya. Namun, (untuk poin bonus :) Anda dapat dengan anggun menangani tarbal tersebut dengan mengekstraksinya seperti ini:Ini bekerja menggunakan gnu tar 1.15.1, yang cukup lama! Atau, Anda dapat menggunakan pax sebagai gantinya, yang (untuk saya) membuang info tambahan ke
PaxHeader
direktori, tetapi setidaknya keluar tanpa kesalahan:sumber
tar --version
menunjukkanbsdtar 2.8.3 - libarchive 2.8.3
). Juga saya perlu tanda hubung sebelumnyacf
dalam kasus terakhir.MacOSX sudah hadir dengan gnutar. Jika Anda menginginkan solusi yang cepat dan kotor, tambahkan ini
~/.bash_profile
dan jalankan
source ~/.bash_profile
untuk memperbaruiSelain itu, OSX dikirimkan dengan tar GNU dan BSD. Jadi, Anda juga dapat memutus tautan ref tar dari bsd ke gnu:
sumber
/etc/hosts
?/etc/hosts
untuk pemetaan host / IP, kan?.bashrc
tidak dimuat untuk sesi Terminal. Anda perlu.bash_profile
, karena shell login dimulai dengan jendela Terminal baru. / cc @BenjiWiebeTerima kasih. Utas ini sangat berguna. Jika Anda menggunakan MacPort di sini adalah howto cepat:
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
Tambahkan baris berikut ke / Pengguna/[namaanda[/.profile
alias tar='/opt/local/libexec/gnubin/tar'
Keluar dan mulai ulang jendela Terminal Anda.
sumber
Ya, binary bin built-in Mac menambahkan banyak hal tambahan yang tidak disukai CentOS. Untuk memperbaiki ini lakukan hal berikut:
Semoga itu bisa membantu!
sumber
tar
program asing gnutar untuk menghindari perangkat lunak yang membingungkan mengharapkan Mac untuk bertindak seperti Mac. $ 0,02. -ErikOke, saya menggunakan pencarian Google, tetapi tiga tautan teratas mengkonfirmasi apa yang saya duga
Lihat tautan ini . Di sana seseorang melaporkan bahwa "Menggunakan" bsdtar -xvf "berfungsi."Sunting: Anda menggunakan sistem Mac, saya pikir sebaliknya. Anda harus menggunakan gnutar, itu harus sudah diinstal, jika tidak menginstalnya. Tentu saja, Anda dapat melihat tautan lain dengan mencari sendiri.
sumber
Di MAC OSX instal gnu-tar
kemudian buat tar kompatibel Linux Anda dengan:
Atau Anda dapat membuat arsip Anda dengan format pax
sumber