Wenn ich renne:
tar -zxvf john-1.7.0.2.tar.gz
Ich verstehe das:
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Es sollte mit dem Auspacken beginnen.
Einige Leute sagten mir, ich solle das nicht benutzen, z
aber ich bekomme den gleichen Fehler.
Es ist eine Datei, die ich so heruntergeladen habe:
wget http://openwall.com/john/f/john-1.7.0.2.tar.gz
john-1.7.0.2.tar.gz: HTML document, ASCII text, with very long lines
Antworten:
Diagnose einer heruntergeladenen Datei des falschen Typs
Wie steeldriver sagt , bedeutet dies, dass die Datei keine gezippte Tar-Datei ist - oder irgendeine Art von gezippter Datei - obwohl sie wie eine benannt wurde.
Wenn Sie eine Datei mit herunterladen
wget
, gibt es oft Hinweise darauf, dass Sie eine andere Art von Datei erhalten haben als die, nach der Sie gesucht haben:In diesem Fall sind die Hauptzeichen:
301 Moved Permanently
Nachricht, die an eine Adresse mit einem Trailing weitergeleitet wird/
. Dadurch wird die Standardseite für ein Verzeichnis auf dem Server geladen, bei der es sich normalerweiseindex.html
und fast immer um eine HTML-Datei handelt.Length: unspecified [text/html]
und teilt Ihnen mit, dass Sie Nur-Text (text
) erhalten und dass dies so interpretiert werden sollhtml
. Dies ist wirklich mehr als ein Zeichen - Sie können ziemlich sicher sein, dass Sie keine echte komprimierte Datei erhalten haben, die darauf basiert.Sie können auch das
file
Dienstprogramm verwenden, das eine Datei untersucht und Ihnen mitteilt, um welche Art von Datei es sich handelt:Und natürlich können Sie die Datei selbst, mit Werkzeugen untersuchen wie
head
,less
undview
:Wenn dies wirklich eine Binärdatei wäre, dann hätten Sie stattdessen eine ganze Menge sinnlosen Mülls, da jeder Pager oder Betrachter, den Sie verwenden, erfolglos versucht, etwas als einfachen Text zu interpretieren, der es wirklich nicht ist. Zum Beispiel für die richtige Datei:
(Ich habe nur den Anfang davon kopiert.)
Die richtige Datei bekommen
Hier erfahren Sie, wie Sie herausfinden können, was in diesen Situationen (und insbesondere in diesem Fall) schief gelaufen ist. Aber wie findet man eigentlich die richtige Datei und lädt sie herunter ?
Dies ist von Situation zu Situation unterschiedlich. Ein guter Anfang ist jedoch:
Besuchen Sie die offizielle Website für die Software und prüfen Sie, ob sie Download-Links enthält. Auch wenn Sie auf diese Weise den Link erhalten haben, den Sie ursprünglich verwendet haben, stellen Sie nach einiger Zeit möglicherweise fest, dass sich der Link geändert hat.
In diesem speziellen Fall ist die aktuelle Version beispielsweise 1.8.0 statt 1.7.0.2 (und wird stattdessen im
j
Unterverzeichnis bereitgestelltf
), und die alte Version ist unter derselben URL nicht mehr verfügbar.Wechseln Sie zu der Seite, zu der Sie beim Herunterladen der Datei umgeleitet wurden. In diesem Fall ist das: http://www.openwall.com/john/
Oder Sie können sogar die heruntergeladene Datei überprüfen. (Oder öffnen Sie es in einem Webbrowser.)
Sie wurden zur Haupt-Download-Seite der Software weitergeleitet . Sie können entweder in einem Webbrowser herunterladen oder einen korrekten aktuellen Download-Link kopieren und mit herunterladen
wget
. Es gibt ein paar Möglichkeiten, aber vorausgesetzt , Sie nicht wirklich brauchen , dass bestimmte alte Version , die Sie herunterladen versucht wurden, und auf der Grundlage der spezifischen Datei , die Sie haben , um Download - Versuch, wie ich vermute http://openwall.com/john/j/ john-1.8.0.tar.gz ist das, wonach Sie suchen.Natürlich können Leser, die diesen Beitrag später finden , feststellen, dass dieser Link nicht mehr funktioniert. Der hier vorgestellte Ansatz zur Fehlerbehebung dieses Problems bleibt jedoch gültig.
Ich habe die Datei heruntergeladen. Beachten Sie, dass diesmal keine unerwünschte Umleitung stattgefunden hat und der Typ als
application/x-tar
statt angegeben wirdtext/html
.(Eine HTTP-Umleitung ist nicht immer schlecht. Wenn Sie zu etwas umgeleitet werden, das nicht so aussieht, als ob es wirklich die gesuchte Datei sein könnte, sollte der Verdacht bestehen, dass Ihr Download nicht wirklich erfolgreich war.)
file
stimmt zu:Und es entpackt erfolgreich:
(Sie haben Recht, dass es keine Rolle spielt, wenn Sie das verwenden
z
; es hätte trotzdem funktionierttar xzf
, da dies die richtige Datei ist.)Sie können fortfahren, den Quellcode zu erstellen und zu installieren.
Denken Sie daran, dass Sie nicht immer aus dem Quellcode erstellen müssen
Manchmal möchten Sie wirklich die neueste Version eines Programms, die sich nicht in Ubuntus Repositorys befindet. Sie könnten versuchen, eine PPA zu finden, aber wenn Sie keine finden, der Sie wirklich vertrauen oder die genau das bieten, was Sie wollen, oder wenn Sie sie mit benutzerdefinierten Optionen erstellen möchten, oder wenn Sie es einfach wirklich mögen, aus Quellcode zu erstellen, dann erstellen Sie aus Quellcode ist eine wertvolle und nützliche Technik.
Ich empfehle jedoch, zumindest die Software zu überprüfen, die in Ubuntus offiziellen Repositories für Ihr System verfügbar ist. Auf meinem 16.04 System:
Es gibt verschiedene andere Möglichkeiten, nach Paketen zu suchen. Oft ist es praktisch, die Ubuntu Packages Search- Webseite zu verwenden.
Da Sie versucht haben, Version 1.7.0.2 zu installieren, ist die Version 1.8.0 in den offiziellen Repositorys vermutlich aktuell genug. (Tatsächlich scheint 1.8.0 die gleiche Version zu sein wie die, die auf der offiziellen Website zum Download angeboten wird.) Vielleicht möchten Sie das also einfach installieren:
quelle