How can I download THEN install packages?
I know that when it comes to the Red Hat distribution, I can use the following commands to download a copy of the package and then separately install it.
yumdownloader package_name
yum install package_name
Is there an exact equivalent in Ubuntu that does both the operations separately, or does the following command do both?
apt-get install package_name
Solution 1:
Just add the -d
(or --download
) option to any apt-get
command. This approach is simple and effective.
- Don't worry about dependencies, they're downloaded as well.
- Security is maintained, all integrity checks are still done just like a regular installation.
E.g.:
$ sudo apt-get dist-upgrade -d
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
linux-headers-3.19.0-39 linux-headers-3.19.0-39-generic linux-image-3.19.0-39-generic linux-image-extra-3.19.0-39-generic
linux-signed-image-3.19.0-39-generic
The following packages will be upgraded:
keepassx linux-headers-generic linux-libc-dev linux-signed-generic linux-signed-image-generic
5 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 67,0 MB of archives.
After this operation, 289 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://nl.archive.ubuntu.com/ubuntu/ vivid-updates/main linux-image-3.19.0-39-generic amd64 3.19.0-39.44 [16,9 MB]
[...]
Fetched 67,0 MB in 4s (13,5 MB/s)
Download complete and in download only mode
At a later time when you're offline, you can run sudo apt-get dist-upgrade
to complete the installation. (Note the Need to get 0 B/67,0 MB of archives.)
$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
linux-headers-3.19.0-39 linux-headers-3.19.0-39-generic linux-image-3.19.0-39-generic linux-image-extra-3.19.0-39-generic
linux-signed-image-3.19.0-39-generic
The following packages will be upgraded:
keepassx linux-headers-generic linux-libc-dev linux-signed-generic linux-signed-image-generic
5 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/67,0 MB of archives.
After this operation, 289 MB of additional disk space will be used.
Do you want to continue? [Y/n]
It also works with install
or other commands:
$ sudo apt-get install -d libpcap-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libpcap0.8-dev
The following NEW packages will be installed:
libpcap-dev libpcap0.8-dev
0 upgraded, 2 newly installed, 0 to remove and 5 not upgraded.
Need to get 214 kB of archives.
After this operation, 749 kB of additional disk space will be used.
Do you want to continue? [J/n]
Get:1 http://nl.archive.ubuntu.com/ubuntu/ vivid/main libpcap0.8-dev amd64 1.6.2-2 [210 kB]
Get:2 http://nl.archive.ubuntu.com/ubuntu/ vivid/main libpcap-dev all 1.6.2-2 [3448 B]
Fetched 214 kB in 0s (1776 kB/s)
Download complete and in download only mode
To clear the cache (stored in /var/cache/apt/archives
):
sudo apt-get clean
Solution 2:
Use the download
feature of apt-get
.
From man apt-get
:
download
download will download the given binary package into the current directory.
For example:
apt-get download chromium-browser
will download the deb
file of chromium browser into the current directory. Note that this will not download any of the dependencies of the package so if you try to install the .deb
by:
sudo dpkg -i path/to/downloaded/deb/file
you'll get dependency errors.
apt-get install packageName
does both the (download+install) jobs. The downloaded packages will be in the /var/cache/apt/archives
folder