从sourceforge下载最新版本

时间:2016-12-22 11:48:39

标签: linux bash graphicsmagick sourceforge

我想在我的bash脚本中从Sourceforge下载最新版本的graphicsmagick

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而是下载另一种文件类型?

为什么会发生这种情况,我在这里缺少什么?

3 个答案:

答案 0 :(得分:1)

我建议:

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

答案 1 :(得分:1)

忘记我的prevoius答案。问题不在文件中。当您将wget与当前链接一起使用时,您将指向sourceforge页面。您没有下载该文件,但是您正在下载HTML页面。将文件重命名为.html,您可以看到sourceforge页面的所有代码。

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命令中使用它。

答案 2 :(得分: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

但是在这里,您要预定义要下载的文件版本。