2016-12-22 7 views
0

Я пытаюсь загрузить последнюю версию GraphicsMagick из Sourceforge в моей Баш скриптЗагрузка последней версии с SourceForge

wget -q https://sourceforge.net/projects/graphicsmagick/files/latest/download?source=files -O GraphicsMagick-LATEST.tar.gz 
tar -xzvf GraphicsMagick-LATEST.tar.gz 

Проблема заключается в том, что, когда я пытаюсь извлечь tar.gz я получаю следующее сообщение об ошибке

gzip: stdin: not in gzip format 
tar: Child returned status 1 
tar: Error is not recoverable: exiting now 

Это означает, что сценарий не загружает последний tar.gz, а другой тип файла?

Почему это происходит и что мне здесь не хватает?

ответ

0

Вы заставляете файл переименовываться в расширение tar.gz. Но файл находится в другом формате. Фактически, когда вы загружаете напрямую ссылку, файл не является файлом gz, а rpm-файлом.

необходимо загрузить непосредственно файл, который вы хотите:

wget https://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/1.3.25/GraphicsMagick-1.3.25.tar.gz/download -O GraphicsMagick-LATEST.tar.gz 

Но здесь, вы предопределен версию файла, который вы хотите загрузить.

+0

Помните, что Sourceforge выбирает расширение файла в зависимости от арки вашего SO, вы можете определить файлы для Windows, Linux и т. Д. И ссылка выберет правильный файл для вас. – JorgeHortelano

+1

Я на centos 7 здесь. Как могу я заставить определить арку, чтобы заставить tar.gz загрузить – user2650277

+0

Я думаю, что Sourceforge использует заголовки вашего «браузера». Конфигурация этого проекта - 'src.rpm' для пользователей linux и' tar.gz' для других. Когда вы находитесь в арке на основе Linux, вы выбираете первый вариант. Я не знаю, с помощью 'wget' вы можете отправить другой заголовок. – JorgeHortelano

1

Я предлагаю:

wget -q -O - ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/GraphicsMagick-LATEST.tar.gz | tar -xzvf - 
+0

ftp-сервер очень медленный время от времени – user2650277

+0

Я предлагаю использовать зеркало: ftp://ftp.icm.edu.pl/pub/unix/graphics/GraphicsMagick/GraphicsMagick-LATEST.tar.gz – Cyrus

1

Забудьте о моем prevoius ответ. Проблема не в файле. Когда вы используете wget с вашей текущей ссылкой, вы указываете на страницу sourceforge. Вы не загружаете файл, но вы загружаете HTML-страницу. Переименуйте файл в .html и вы увидите все коды исходной страницы.

wget -q https://sourceforge.net/projects/graphicsmagick/files/latest/download?source=files -O file.html --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0" 

Скачайте HTML.

Ссылка, которую вы предоставляете, имеет перенаправление javascript на правильную ссылку в зависимости от вашей операционной системы (как я описал в своем другом ответе). Но wget не может выполнить этот код javascript, поэтому не перенаправляется. Однако ссылка находится внутри HTML. Поиск по следующей строке:

Problems with the download? Please use this 

И после этой строки, вы можете найти прямую ссылку на последнюю версию:

http://downloads.sourceforge.net/project/graphicsmagick/graphicsmagick/1.3.25/GraphicsMagick-1.3.25.tar.gz?r=&ts=1482426819&use_mirror=vorboss 

(примечание о том, что если вы используете --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0", ссылка для tar.gz не для .rpm)

Вы должны поэтому загрузить HTML-файл каждый раз, искать ссылку для загрузки внутри HTML (с текущей последней версии), а также использовать его в новом wget.

+0

Я знаю, что wget может следовать до 20 redirects.I пробовал с 'curl'.' curl -O -J -L https://sourceforge.net/projects/graphicsmagick/files/latest/download?source=files' и я получил 'GraphicsMagick-1.3.25-Q16-win32-dll.exe' файл – user2650277

+0

, когда я добавил useragent для mac, чтобы получить tar, gz он не работал, хотя – user2650277

 Смежные вопросы

  • Нет связанных вопросов^_^