it-swarm.com.de

So lösen Sie den Fehler "tar: ungültige Magie" unter Linux Alpine

Ich installiere SQLite unter Alpine Linux. Ich Downloade sqlite-autoconf-3130000.tar.gz aber tar konnte es nicht öffnen. Ich habe es versucht Antwort aber es funktioniert nicht. tar gibt diese Nachricht:

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
27
daylight

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

22
Jakub Jirutka

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

Ich bin darauf gestoßen, als ich ein curl https://github.com/someproject/releases/project-1.1.0.gz | tar -xvzf in meiner Docker-Datei.

Es stellte sich heraus, dass ich vergessen hatte, dass curl nur auf Weiterleitungen folgt, wenn Sie es mit -L, und so kam es nie zur eigentlichen Datei, es lud buchstäblich das HTML herunter und sagte, dass es eine Umleitung gab. Hinzufügen des -L erlaubte mir, die Datei zu speichern, ohne meinen Container mit einem neuen tar aufzublähen (jenseits des durch curl hinzugefügten "Aufblähens").

9
dragon788

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

Bitte überprüfen Sie die md5sum, ob Übereinstimmungen ... das habe ich bekommen:

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

wenn Sie Alpine im Docker verwenden, geben Sie bitte an, dass Sie COPY anstelle von ADD in Ihrer Containerdatei (Dockerfile) verwenden, da ADD beim Erstellen des Dekomprimierens dekomprimiert wird Schicht

Alpine Standard tar nicht gibt Ihnen den Hinweis

tar (child): sqlite-autoconf-3090100.tar.gz: Cannot read: Is a directory
tar (child): At beginning of tape, quitting now
tar (child): Error is not recoverable: exiting now
0
childno͡.de

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

Code that Verursachter Fehler:

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

Code, der gelöst it:

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 ...

0
Ryan Augustine