How to use multiple connections to speed up apt-get/apt on Ubuntu Linux 16.04 LTS server
//by// VIVEK GITE //on// JULY 26, 2016 //last updated //JULY 27, 2016
//in// [[http://www.cyberciti.biz/faq/category/linux/|LINUX]], [[http://www.cyberciti.biz/faq/category/package-management/|PACKAGE MANAGEMENT]], [[http://www.cyberciti.biz/faq/category/ubuntu-linux/|UBUNTU LINUX]]
How do I speed up my apt-get or apt command to download packages from multiple repos on a Ubuntu Linux 16.04 or 14.04 LTS server?
You need to use apt-fast shell script wrapper. It should speed up [[http://www.cyberciti.biz/tips/linux-debian-package-management-cheat-sheet.html|apt-get command]]/[[http://www.cyberciti.biz/faq/ubuntu-lts-debian-linux-apt-command-examples/|apt command]] and aptitude command by downloading packages with multiple connections per package. All packages are downloaded simultaneously in parallel. It uses aria2c as default download accelerator.
Install apt-fast tool
Type the following command on Ubuntu Linux 14.04 and later versions:
$ sudo add-apt-repository ppa:saiarcot895/myppa
Sample outputs:
[[http://s0.cyberciti.org/uploads/faq/2016/07/install-apt-fast-repo.jpg | Fig.01: installing repository]]
Update your repo:
$ sudo apt-get update
OR
$ sudo apt update
Sample outputs:
[[http://s0.cyberciti.org/uploads/faq/2016/07/install-apt-fast-command.jpg | Fig.02: refreshing repository]]
Install apt-fast shell wrapper:
$ sudo apt-get -y install apt-fast
OR
$ sudo apt -y install apt-fast
Sample outputs:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
aria2 libc-ares2 libssh2-1
Suggested packages:
aptitude
The following NEW packages will be installed:
apt-fast aria2 libc-ares2 libssh2-1
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,282 kB of archives.
After this operation, 4,786 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://01.archive.ubuntu.com/ubuntu xenial/universe amd64 libssh2-1 amd64 1.5.0-2 [70.3 kB]
Get:2 http://ppa.launchpad.net/saiarcot895/myppa/ubuntu xenial/main amd64 apt-fast all 1.8.3~137+git7b72bb7-0ubuntu1~ppa3~xenial1 [34.4 kB]
Get:3 http://01.archive.ubuntu.com/ubuntu xenial/main amd64 libc-ares2 amd64 1.10.0-3 [33.9 kB]
Get:4 http://01.archive.ubuntu.com/ubuntu xenial/universe amd64 aria2 amd64 1.19.0-1build1 [1,143 kB]
54% [4 aria2 486 kB/1,143 kB 42%] 20.4 kB/s 32s
**Configure apt-fast**
You will be prompted as follows (a value between 5 and 16 must be entered):
[[ http://s0.cyberciti.org/uploads/faq/2016/07/max-connection-10.jpg | Fig.03: Set maximum number of ]]connections
And:
[[ http://s0.cyberciti.org/uploads/faq/2016/07/apt-fast-confirmation-box.jpg | Fig.04: Yes suppress apt- fast download confirmation ]]
You can edit settings directly too:
$ sudo vi /etc/apt-fast.conf
Please note that this tool is not for slow network connections; it is for fast network connections. If you have a slow connection to the Internet, you are not going to benefit by this tool.
----
How do I use apt-fast command?
The syntax is:
apt-fast command
apt-fast [options] command
**To retrieve new lists of packages using apt-fast**
sudo apt-fast update
**To perform an upgrade using apt-fast**
sudo apt-fast upgrade
To perform distribution upgrade (release or force kernel upgrade), enter:
$ sudo apt-fast dist-upgrade
**To install new packages**
The syntax is:
sudo apt-fast install pkg
For example, install nginx package, enter:
$ sudo apt-fast install nginx
Sample outputs:
[[ http://s0.cyberciti.org/uploads/faq/2016/07/sudo-apt-fast-install.jpg | Fig.05: Install new packages ]]
**To remove packages**
$ sudo apt-fast remove pkg
$ sudo apt-fast remove nginx
**To remove packages and its config files too**
$ sudo apt-fast purge pkg
$ sudo apt-fast purge nginx
To remove automatically all unused packages, enter:
$ sudo apt-fast autoremove
**To Download source archives**
$ sudo apt-fast source pkgNameHere
**To erase downloaded archive files**
$ sudo apt-fast clean
To erase old downloaded archive files
$ sudo apt-fast autoclean
**To verify that there are no broken dependencies**
$ sudo apt-fast check
**To download the binary package into the current directory**
$ sudo apt-fast download pkgNameHere
$ sudo apt-fast download nginx
Sample outputs:
[#7bee0c 0B/0B CN:1 DL:0B]
07/26 15:35:42 [NOTICE] Verification finished successfully. file=/home/vivek/nginx_1.10.0-0ubuntu0.16.04.2_all.deb
07/26 15:35:42 [NOTICE] Download complete: /home/vivek/nginx_1.10.0-0ubuntu0.16.04.2_all.deb
Download Results:
gid |stat|avg speed |path/URI
======+====+===========+=======================================================
7bee0c|OK | n/a|/home/vivek/nginx_1.10.0-0ubuntu0.16.04.2_all.deb
Status Legend:
(OK):download completed.
**To download and display the changelog for the given package**
$ sudo apt-fast changelog pkgNameHere
$ sudo apt-fast changelog nginx