Um die SOFA-Statistik vom Server herunterzuladen, verwende ich den Befehl wget:
wget -c http://sourceforge.net/projects/sofastatistics/files/latest/download?source=dlp
Der Dateiname der heruntergeladenen Datei lautet in diesem Fall download?source=files
. Wenn ich --output-document
dem Befehl die Option hinzufüge , die Ausgabedatei umzubenennen sofastatistics-latest.deb
, wird das Format der heruntergeladenen Datei vom dpkg-Paket nicht erkannt.
dpkg-deb: error: `sofastatistics-latest.deb' is not a debian format archive
Wie benenne ich die heruntergeladene Datei mit wget richtig um?
UPDATE - 08. Januar 15
Mit dem angegebenen Link ist die heruntergeladene Datei immer eine * .tar.gz. Um es mit dem richtigen Namen zu erhalten, fügen Sie einfach die folgende --content-disposition
Option hinzu (danke an @ 6EQUJ5!):
wget --content-disposition http://sourceforge.net/projects/sofastatistics/files/latest/download?source=dlp
Aber ich brauchte eine * .deb-Datei, also war hier richtig die @creaktive, ich musste nach einem * .deb-Dateilink suchen.
Vielen Dank an alle für die Antworten!
quelle
file
sagt das aus?--trust-server-names
es für meine Zwecke besser geeignet ist. Siehe auch diese doppelte Frage SO und die gleiche Frage auf Unix.SE .Antworten:
Eine Umleitung der Standardausgabe in einen beliebigen Dateinamen funktioniert immer. Du machst es richtig, wie man sagt, mit -O
In der Tat müssen Sie einen HTML-Code in Ihrer Datei haben (kann normalerweise mit einer Man-Datei überprüft werden ).
[BEARBEITEN]
In Ihrem Fall erhält der Client 302 Found (Sie können dies mit der URL curl -v überprüfen ).
Die folgende Locke macht den Trick, indem sie die 3xx respektiert:
Es sollte eine ähnliche Option für wget geben, um HTTP-Weiterleitungen zu tolerieren.
quelle
Wenn Sie denselben Download von einem Webbrowser ausführen und feststellen, dass der Browser die Datei tatsächlich korrekt benennt, können Sie die
--content-disposition
Option verwenden, um wget dasselbe Verhalten zu geben:Meine Debian-Manpage meldet dies als "experimentelle" Funktion, aber ich kann mich nicht erinnern, dass es bei mir nicht funktioniert hat:
quelle
Dieser Link verweist auf einen Redirector, nicht auf das endgültige Ziel! Sie laden also HTML herunter und benennen es in um
.deb
. Die überfüllte Seite hat dies oben:Nun, dies ist ein gültiger Link ( man beachte das
download
Präfix): http://downloads.sourceforge.net/project/sofastatistics/sofastatistics/1.3.1/sofastats-1.3.1-1_all.deb?r=http%3A%2F % 2Fsourceforge.net% 2Fprojects% 2Fsofastatistics% 2Ffiles% 2Fsofastatistics% 2F1.3.1% 2F & ts = 1358119361 & use_mirror = ufprÜbergeben Sie diese URL an
wget
. Beachten Sie außerdem, dass SourceForge versucht, Sie zu überlisten, indem es das Betriebssystem über die User-Agent-Zeichenfolge hostet. Die beste Vermutung für "wget" scheint das .tar.gz-Paket zu sein. Sie sollten also genauer sein und die Deb-Datei anfordern!quelle