Linux Alpine'de “tar: invalid magic” hatası nasıl çözülür


22

Alpine Linux üzerine sqlite kuruyorum. İndiriyorum sqlite-autoconf-3130000.tar.gzama taraçamadım. Bu cevabı denedim ama işe yaramıyor. tarbu mesajı verir:

tar: invalid magic
tar: short read

Bu komutları yazdım.

wget https://www.sqlite.org/2015/sqlite-autoconf-3090100.tar.gz
tar -zxvf sqlite-autoconf-3090100.tar.gz

Lütfen yanıtınızı çalıştırmayı denediğiniz komutla (ve argümanlarıyla) güncelleyebilir misiniz?
DarkHeart

1
İndirme başarıyla tamamlandı mı? Eğer öyleyse ls -l sqlite-autoconf-3090100.tar.gz, dosyanın 2284128 bayt boyutunda olduğunu söylemelisiniz.
Stephen Kitt

Ayrıca, şu anda bir gzip biçimli dosya mı? Bazı tarayıcılar anında dekompresyon yapar, yani hala sqlite-autoconf-3090100.tar.gz olarak adlandırılabilir, ancak içerik aslında sqlite-autoconf-3090100.tar olabilir. Eğer wget eşit derecede akıllı şeyler yapıyorsa hiçbir fikrim yok, ama zbayrak katrandan ayrılarak kolayca test edilir .
Hennes

Yanıtlar:


21

Katran paketini kurmaya çalışın (apk katran ekle). Busybox tar (varsayılan) tüm özellikleri desteklemez.


3
Dockerfile'da bir tar komutu çalıştırırken ve tar'ı yüklemek benim için işe yaradığında da aynı sorunla karşılaştım. Bu biraz kafa karıştırıcı çünkü komutu kabın içindeki kabukta çalıştırırsanız çalışır. Ama önce tar'yı yüklemeden Dockerfile'daki bir RUN komutu değilse. : |
3cheesewheel

7

Bu mutlaka, Alpine sürümünün taruyumsuz olduğu anlamına gelmez , çünkü Francesco'nun dosya sağlamalarınızı gerçekten kontrol etmeniz gerektiğini belirtti.

curl https://github.com/someproject/releases/project-1.1.0.gz | tar -xvzfDockerfile dosyamda bunu yaparken karşılaştım.

Unuttuğum şey curl, yalnızca izin verdiğinizde yönlendirmeleri takip edeceği -Lve bu yüzden gerçek dosyaya hiç ulaşmadığı ortaya çıktı, tam anlamıyla bir yönlendirme olduğunu söyleyen html indiriliyordu. Ekleme -Lbenim konteyner yeni bir ile şişirmeden dosyayı kaydetmeme izin verdi tar(tarafından eklenen "şişkinlik" ötesinde curl).


0

tar: geçersiz büyü, dosyanın bozuk olduğu anlamına gelir.

Eğer eşleşirse lütfen md5sum'u kontrol edin ...

 md5sum  sqlite-autoconf-3090100.tar.gz 
 74931054399a2d7acf35637efe8d6f45  sqlite-autoconf-3090100.tar.gz

0

Aynı sorunu aldım ve çözdüm, ancak aynı sorunla karşılaştığınızdan emin değilim.

Hataya neden olan kod :

wget www.example.com/file.tar.gz
tar -zxvf file.tar.gz

Kod o çözüldü it:

wget https://www.example.com/file.tar.gz
tar -zxvf file.tar.gz

Dosyanın indirildiğini ancak katranın bana aynı hatayı verdiğini "https: //" unuttum dikkat edin. Dosya bulunamazsa,

docker build - önbellek yok ...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.