sudo apt-get update && sudo apt-get -y dist-upgrade && sudo apt-get -y install gcc libssl-dev nettle-dev libgmp-dev libssh2-1-dev libc-ares-dev libxml2-dev zlib1g-dev libsqlite3-dev pkg-config libexpat1-dev libxml2-dev libcppunit-dev autoconf automake autotools-dev autopoint libtool; git clone https://github.com/aria2/aria2.git && cd aria2 && git checkout -b tags/release-1.36.0 release-1.36.0 && bash -c "autoreconf -i && ./configure" && make -j 2 && sudo make installaria2 is primarily written in C++. Initially it was written based on C++98/C++03 standard features. We are now migrating aria2 to C++11 standard. The current source code requires C++11 aware compiler. Fo well-known compilers, such as g++ and clang, the -std=c++11 or -std=c++0x flag must be supported.
In order to build aria2 from the source package, you need following development packages (package name may vary depending on the distribution you use):
libgnutls-devRequired for HTTPS, BitTorrent, Checksum supportnettle-devRequired for BitTorrent, Checksum supportlibgmp-devRequired for BitTorrentlibssh2-1-devRequired for SFTP supportlibc-ares-devRequired for async DNS supportlibxml2-devRequired for Metalink supportzlib1g-devRequired for gzip, deflate decoding support in HTTPlibsqlite3-devRequired for Firefox3/Chromium cookie supportpkg-configRequired to detect installed libraries
You can use libgcrypt-dev instead of nettle-dev and libgmp-dev:
libgpg-error-devRequired for BitTorrent, Checksum supportlibgcrypt-devRequired for BitTorrent, Checksum support
You can use libssl-dev instead of libgnutls-dev, nettle-dev, libgmp-dev, libgpg-error-dev and libgcrypt-dev:
libssl-devRequired for HTTPS, BitTorrent, Checksum support
You can use libexpat1-dev instead of libxml2-dev:
- ``libexpat1-dev` Required for Metalink support
On Fedora you need the following packages: gcc, gcc-c++, kernel-devel, libgcrypt-devel, libxml2-devel, openssl-devel, gettext-devel, cppunit.
If you downloaded source code from git repository, you have to install following packages to get autoconf macros:
libxml2-devlibcppunit-devautoconfautomakeautotools-devautopointlibtool
And run following command to generate configure script and other files necessary to build the program:
autoreconf -iAlso you need Sphinx to build man page.
If you are building aria2 for Mac OS X, take a look at the make-release-os.mk GNU Make makefile.
The quickest way to build aria2 is first run configure script:
./configureTo build statically linked aria2, use ARIA2_STATIC=yes command-line option:
./configure ARIA2_STATIC=yesAfter configuration is done, run make to compile the program:
makeSee Cross-compiling Windows binary to create a Windows binary.
See Cross-compiling Android binary to create an Android binary.
The configure script checks available libraries and enables as many features as possible except for experimental features not enabled by default.
Since 1.1.0, aria2 checks the certificate of HTTPS servers by default. If you build with OpenSSL or the recent version of GnuTLS which has gnutls_certificate_set_x509_system_trust() function and the library is properly configured to locate the system-wide CA certificates store, aria2 will automatically load those certificates at the startup. If it is not the case, I recommend to supply the path to the CA bundle file. For example, in Debian the path to CA bundle file is /etc/ssl/certs/ca-certificates.crt (in ca-certificates package). This may vary depending on your distribution. You can give it to configure script using --with-ca-bundle option:
./configure --with-ca-bundle='/etc/ssl/certs/ca-certificates.crt'
makeWithout --with-ca-bundle option, you will encounter the error when accessing HTTPS servers because the certificate cannot be verified without CA bundle. In such case, you can specify the CA bundle file using aria2's --ca-certificate option. If you don't have CA bundle file installed, then the last resort is disable the certificate validation using --check-certificate=false.
Using the native OSX (AppleTLS) and/or Windows (WinTLS) implementation will automatically use the system certificate store, so --with-ca-bundle is not necessary and will be ignored when using these implementations.
By default, the bash_completion file named aria2c is installed to the directory $prefix/share/doc/aria2/bash_completion. To change the install directory of the file, use --with-bashcompletiondir option.
After a make the executable is located at src/aria2c.
aria2 uses CppUnit for automated unit testing. To run the unit test:
make check