美文网首页linux&github
命令行的“迅雷”,提升百倍以上下载速率

命令行的“迅雷”,提升百倍以上下载速率

作者: BioIT爱好者 | 来源:发表于2019-11-27 14:01 被阅读0次

    王通老师在他的 "基因学苑" 公众号,发表过一篇《命令行的“迅雷”,提升百倍以上下载速率》的文章,给我们简单介绍了 axel 这个命令行下多线程下载的利器。本公众号也有幸转载过,但在实际使用中 axel 还是有几点不为人知小秘密,今天来聊一下。

    直接安装

    有源的情况下,axel 在 CentOS 可以通过 yum 的方式直接安装:

    yum install -y axel
    

    没有源的情况下,在 CentOS 6/7 中可以先添加 Epel 源再安装:

    yum install epel-release
    yum install axel
    

    或者通过 rpm 的方式安装:

    rpm -ivh ftp://fr2.rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/axel-2.4-1.el6.rf.x86_64.rpm
    

    对于 Debian/Ubuntu 中安装 Axel,有源的情况可以参考下面的安装方式;无源情况下的安装可以参考源码或者其他的安装方式,这里不细说:

    apt-get install axel
    

    源码安装

    axel 的源码是托管在 Github 上的,我们可以下载它的源码进行手动安装。

    • 下载源码,并生成用于 axel 安装的 configure 可执行文件
    $ git clone https://github.com/axel-download-accelerator/axel.git
    $ cd axel/
    $ autoreconf -i         # 生成 configure 文件
    Can't exec "autopoint": No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 345.
    autoreconf: failed to run autopoint: No such file or directory
    autoreconf: autopoint is needed because this package uses Gettext
    
    • 需要安装 gettext-devel 依赖
    $ yum install -y gettext-devel
    
    • 安装 axel
    $ ./configure --prefix=/usr/local/software/axel
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
    checking for gawk... gawk
    checking whether make sets $(MAKE)... yes
    ......
    checking dependency style of gcc... (cached) gcc3
    checking for gcc option to accept ISO C99... -std=gnu99
    ./configure: line 5358: syntax error near unexpected token `git-directory'
    ./configure: line 5358: `AX_IS_RELEASE(git-directory)'
    
    • 安装 autoconf-archive 依赖
    [root@ecs-steven ~]# yum install autoconf-archive
    
    • 继续安装 axel
    $ autoreconf -i 
    
    $ ./configure --prefix=/usr/local/software/axel
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    ......
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating po/Makefile.in
    config.status: WARNING:  'po/Makefile.in.in' seems to ignore the --datarootdir setting
    config.status: creating config.h
    config.status: executing depfiles commands
    config.status: executing default-1 commands
    config.status: creating po/POTFILES
    config.status: creating po/Makefile
    
    $ make
    make  all-recursive
    make[1]: Entering directory `/usr/local/src/axel'
    Making all in po
    ...
    /bin/sh: line 1: txt2man: command not found
    make[2]: *** [doc/axel.1] Error 1
    make[2]: Leaving directory `/usr/local/src/axel'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/usr/local/src/axel'
    make: *** [all] Error 2
    
    • 安装 txt2man 依赖
    yum install txt2man
    
    • 继续安装 axel
    $ make 
    $ make install
    
    • 安装完成

    Too many redirects

    如果你在使用 axel 下载 https 相关的资源,你可能会发现:

    Too many redirects

    这是因为,CentOS 中通过 yum 方式安装的 axel 默认版本为 2.4,而该版本的 axel 对于 h 开头的链接会默认使用 http(port 80) 的协议进行下载,对于 f 开头的链接会默认使用 ftp 的协议,如果 axel 遇上了强制使用 https 的网站链接,就会出现这个反复重定向的错误。

    针对这种情况,请参考上面的 "源码安装" 安装 axel 的最新版本!安装完了以后,即可以下载 https 相关的资源。


    阿里云 1Mbps 的服务器基本可以跑满带宽 生信科技爱好者

    相关文章

      网友评论

        本文标题:命令行的“迅雷”,提升百倍以上下载速率

        本文链接:https://www.haomeiwen.com/subject/pyspwctx.html