为什么要安装Aria2

百度网盘限速,而Aria2是个十分强大的文件分片多线程下载工具,可以有效抵制限速。

为什么要采取编译安装

  1. Aria2的参数中-max-server-connection和-min-split-files很大程度上决定了网盘的下载速度。
  2. 默认参数中-max-server-connection(1,16),-min-split-files(1m,1g),下载服务器最大连接数16,肯定是不能满足高速下载要求的,而最小文件分片1M,尤其是当我们下载网盘上的小文件是,10M的文件按照最小1M的规格,要分成10片,Aria2最多只会分配10个线程去下载,即使是10M的小文件,也要耗用将近好几分钟的时间,效率党简直不能忍啊。
  3. 编译安装采取源代码的安装方式,允许我们修改Aria2核心的运行参数。在这里,我将-max-server-connection最高设置为256,-min-split-files最小设置为256k,大家可以根据自己电脑的性能来合理设置参数以提高下载速度。

具体安装过程

#下载源码
cd ~/Download/
git clone https://github.com/aria2/aria2.git
#修改源码
#aira2的基本配置选项大多都存储在文件OptionHandlerFactory.cc中
vi aria2/src/OptionHandlerFactory.cc
#定位到441行
#将服务器最大连接数16修改为256
    OptionHandler* op(new NumberOptionHandler(PREF_MAX_CONNECTION_PER_SERVER,
                                              TEXT_MAX_CONNECTION_PER_SERVER,
                                           // "1", 1, 16, 'x'));
                                              "1", 1, 256, 'x'));
#定位到第503行
#将最文件分片大小设置为256_k
#到此源代码需要修改的地方改完了
  OptionHandler* op(new UnitNumberOptionHandler(
//PREF_MIN_SPLIT_SIZE, TEXT_MIN_SPLIT_SIZE, "1M", 1_m, 1_g, 'k'));
 PREF_MIN_SPLIT_SIZE, TEXT_MIN_SPLIT_SIZE, "1M", 256_k, 1_g, 'k'));

#安装编译依赖
#以下依赖仅限于macosx,linux参照官方文档
brew install libtool
brew install automake
brew install autoconf-archive

#编译安装
autoconf configure.ac
autoconf -i
./configure
make check
make
sudo make install
#如果你遇到 error: possibly undefined macro这说明编译缺乏依赖,需要安装相关依赖
#
#查看编译后的Aria2参数
aria2c --help
# 可以看到设置项的参数范围已经改变了
 -x, --max-connection-per-server=NUM The maximum number of connections to one
                              server for each download.

                              Possible Values: 1-256
                              Default: 1
                              Tags: #basic, #http, #ftp

 -k, --min-split-size=SIZE    aria2 does not split less than 2*SIZE byte range.
                              For example, let's consider downloading 20MiB
                              file. If SIZE is 10M, aria2 can split file into 2
                              range [0-10MiB) and [10MiB-20MiB) and download it
                              using 2 sources(if --split >= 2, of course).
                              If SIZE is 15M, since 2*15M > 20MiB, aria2 does
                              not split file and download it using 1 source.
                              You can append K or M(1K = 1024, 1M = 1024K).

                              Possible Values: 262144-1073741824
                              Default: 1M
                              Tags: #basic, #http, #ftp

#修改~/.aria2/aria2.conf配置文件使Aria2新设置生效
vi ~/.aria2/aria2.conf
#这里我只截取主要设置项
#断点续传
continue=true
#同服务器连接数
max-connection-per-server=256
#最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
min-split-size=256k
#单文件最大线程数, 路由建议值: 5
split=256
#下载速度限制
max-overall-download-limit=0
#单文件速度限制
max-download-limit=0
...

到此结束。

移除U盘

#使用 diskutil list 命令查看系统下已挂在的驱动器
your-user-name |=>$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Macintosh HD            250.1 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           +249.8 GB   disk1
                                 Logical Volume on disk0s2
                                 CAE7D100-6598-4C76-9720-6D58226B5857
                                 Unlocked Encrypted

#插入U盘再次运行 diskutil list 查看挂载驱动器列表
your-user-name |=>$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Macintosh HD            250.1 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           +249.8 GB   disk1
                                 Logical Volume on disk0s2
                                 CAE7D100-6598-4C76-9720-6D58226B5857
                                 Unlocked Encrypted
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *7.8 GB     disk2
   1:                 DOS_FAT_32 新加卷                  7.0 GB     disk2s1

#由两次运行的不同结果知道,U盘的设备名称为 /dev/disk2

#使用    diskutil unmountDisk 解除U盘的挂载以写入Kali镜像
diskutil unmountDisk /dev/disk2

#使用 dd 命令写入 Kali的镜像
sudo dd if=/Users/your-user-name/Downloads/kali-linux-2017.1-amd64.iso of=/dev/disk2 bs=1m

$ brew update
$ brew tap caskroom/cask
$ brew install Caskroom/cask/java

And Java 8 will be installed at /Library/Java/JavaVirtualMachines/jdk1.8.xxx.jdk/

Check version:

$ java -version 
java version "1.8.0_74"
Java(TM) SE Runtime Environment (build 1.8.0_74-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode)

 

 

Install Java 7 on Mac OX

brew cask install caskroom/versions/java7