So lösen Sie den Fehler "tar: invalid magic" unter Linux Alpine


21

Ich installiere sqlite unter Alpine Linux. Ich habe es heruntergeladen sqlite-autoconf-3130000.tar.gz, tarkonnte es aber nicht öffnen. Ich habe versucht, diese Antwort, aber es funktioniert nicht. targibt diese Nachricht aus:

tar: invalid magic
tar: short read

Ich habe diese Befehle geschrieben.

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

Könnten Sie bitte Ihre Antwort mit dem Befehl (und seinen Argumenten) aktualisieren, den Sie ausgeführt haben.
DarkHeart

1
Wurde der Download erfolgreich abgeschlossen? Wenn ls -l sqlite-autoconf-3090100.tar.gzja , sollten Sie wissen, dass die Datei 2284128 Byte groß ist.
Stephen Kitt

Handelt es sich derzeit auch um eine gzip-formatierte Datei? Einige Browser dekomprimieren im laufenden Betrieb, was bedeutet, dass sie möglicherweise noch den Namen sqlite-autoconf-3090100.tar.gz haben, der Inhalt jedoch tatsächlich sqlite-autoconf-3090100.tar sein kann. Keine Ahnung, ob wget ebenso kluge Sachen macht, aber es lässt sich leicht testen, indem man die zFlagge von tar verlässt .
Hennes

Antworten:


20

Versuchen Sie, das tar-Paket zu installieren (apk add tar). Busybox tar (Standard) unterstützt nicht alle Funktionen.


3
Ich bin auf dasselbe Problem gestoßen, als ich einen tar-Befehl in einer Docker-Datei ausgeführt habe und die Installation von tar für mich funktioniert hat. Das ist verwirrend, denn wenn Sie den Befehl in der Shell im Container ausführen, funktioniert er. Aber nicht, wenn es sich um einen RUN-Befehl in der Docker-Datei handelt, ohne zuvor tar installiert zu haben. : |
3cheesewheel

7

Dies bedeutet nicht unbedingt, dass die Alpine-Version von tarinkompatibel ist, da Francesco darauf hingewiesen hat, dass Sie Ihre Dateiprüfsummen wirklich überprüfen sollten.

Ich curl https://github.com/someproject/releases/project-1.1.0.gz | tar -xvzfbin darauf gestoßen, als ich ein in meinem Dockerfile gemacht habe.

Es stellte sich heraus, dass ich vergessen hatte, dass curlnur dann Weiterleitungen folgen, wenn Sie dies zulassen. Es -Lwurde also nie die eigentliche Datei heruntergeladen. Das Hinzufügen der -Lerlaubte mir, die Datei zu speichern, ohne meinen Container mit einem neuen taraufzublähen (jenseits des von "Aufblähen" hinzugefügten curl).


0

tar: ungültige Magie bedeutet, dass die Datei beschädigt ist.

Bitte überprüfen Sie die MD5SUM, wenn Übereinstimmungen ... das ist, was ich habe:

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

0

Ich habe das gleiche Problem erhalten und gelöst, bin mir jedoch nicht sicher, ob Sie vor dem gleichen Problem stehen.

Code, der Fehler verursachte :

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

Code, der das Problem behoben hat:

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

Beachten Sie, dass ich das "https: //" vergessen habe, bei dem die Datei heruntergeladen wurde, aber der Teer mir den gleichen Fehler gab. Wenn die Datei nicht gefunden wird, stellen Sie sicher, dass Sie verwenden

Docker Build - kein Cache ...

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.