Breaking News

How To Download an RPM Package With All Dependencies Using the “Downloadonly” plugin?

We can download RPM packages using curl and wget commands on the server, but these commands will only download the given package or file. So instead of searching and installing the required dependencies for the particular package, you can do RPM package installation along with all dependencies via “Downloadonly” plugin. In this article, we will guide you how to download RPM packages with all their dependencies using the “Downloadonly” plugin.

Note:

  • Before using the plugin, check file /etc/yum/pluginconf.d/downloadonly.conf to confirm that this plugin is “enabled=1”.
  • You can download multiple RPM packages on the same command.
  • You still need to re-download the repodata if the repodata expires before you re-use the cache. By default, it takes two hours to expire.

Let’s start with the installation of Downloadonly plugin on the server.

You can easily download any RPM packages with all it’s dependencies using the “Downloadonly” plugin for yum command.

To install Downloadonly plugin on the server, run the following command as root user.

# yum install yum-plugin-downloadonly

Now, run the following command to download an RPM package.

# yum install --downloadonly <package-name>

By default, this command will download and save the packages at /var/cache/yum/ in rhel-{arch}-channel/packages location. However, you can download and save the packages in any location you want using the “–downloaddir” option.

# yum install --downloadonly --downloaddir=<directory> <package-name>

Example:

# yum install --downloadonly --downloaddir=/root/mypackages/ httpd

Sample output:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.excellmedia.net
 * epel: epel.mirror.angkasa.id
 * extras: centos.excellmedia.net
 * updates: centos.excellmedia.net
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be installed
--> Processing Dependency: httpd-tools = 2.4.6-40.el7.centos.4 for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-3.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package httpd-tools.x86_64 0:2.4.6-40.el7.centos.4 will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================================
 Package Arch Version Repository Size
=======================================================================================================================================
Installing:
 httpd x86_64 2.4.6-40.el7.centos.4 updates 2.7 M
Installing for dependencies:
 apr x86_64 1.4.8-3.el7 base 103 k
 apr-util x86_64 1.5.2-6.el7 base 92 k
 httpd-tools x86_64 2.4.6-40.el7.centos.4 updates 83 k
 mailcap noarch 2.1.41-2.el7 base 31 k

Transaction Summary
=======================================================================================================================================
Install 1 Package (+4 Dependent packages)

Total download size: 3.0 M
Installed size: 10 M
Background downloading packages, then exiting:
(1/5): apr-1.4.8-3.el7.x86_64.rpm | 103 kB 00:00:01 
(2/5): apr-util-1.5.2-6.el7.x86_64.rpm | 92 kB 00:00:01 
(3/5): mailcap-2.1.41-2.el7.noarch.rpm | 31 kB 00:00:01 
(4/5): httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm | 83 kB 00:00:01 
(5/5): httpd-2.4.6-40.el7.centos.4.x86_64.rpm | 2.7 MB 00:00:09 
---------------------------------------------------------------------------------------------------------------------------------------
Total 331 kB/s | 3.0 MB 00:00:09 
exiting because "Download Only" specified

Now go to the location that you specified in the above command. You can see there the downloaded package with all it’s dependencies. In this example, I have downloaded the packages in /root/mypackages/ directory.

Let’s verify the contents.

# ls /root/mypackages/

Sample output:

apr-1.4.8-3.el7.x86_64.rpm
apr-util-1.5.2-6.el7.x86_64.rpm
httpd-2.4.6-40.el7.centos.4.x86_64.rpm
httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm
mailcap-2.1.41-2.el7.noarch.rpm

As given in the above output, the package httpd has been downloaded with all dependencies.

NOTE:  this plugin is applicable for “yum install/yum update” and not for “yum groupinstall”. By default, this plugin will download the latest version of the packages in the repository. You can, however, download a particular version by specifying the required version in the command.

Example:

# yum install –downloadonly –downloaddir=/root/mypackages/ httpd-2.2.6-40.el7

Also, you can download multiple packages at once by using the below command.

# yum install --downloadonly --downloaddir=/root/mypackages/ httpd vsftpd

That’s it !! You have learned how to download RPM packages along with their dependencies through the “Downloadonly” plugin.

 

Leave a Reply

Your email address will not be published. Required fields are marked *