• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

The Geek Diary

CONCEPTS | BASICS | HOWTO

  • OS
    • Linux
    • CentOS/RHEL
    • Solaris
    • Oracle Linux
    • Linux Services
    • VCS
  • Database
    • oracle
    • oracle 12c
    • ASM
    • mysql
    • MariaDB
    • Data Guard
  • DevOps
    • Docker
    • Shell Scripting
  • Interview Questions
  • Big Data
    • Hadoop
    • Cloudera
    • Hortonworks HDP

How to Use “repoquery” Command to List Package Dependencies

By admin

“repoquery” is a program for querying information from YUM repositories similarly to rpm queries. The “yum-utils” package should be installed to use this command. If it is not already installed in your system you can install the package by the following yum command.

# yum install yum-utils

The following command lets us to view the dependencies of an already installed rpm package.

# repoquery --requires --resolve [package]

here,

  • –requires – List package dependencies.
  • –resolve – When used with –requires, resolve capabilities to originating packages.
  • package – rpm package name

Example:

# repoquery --requires --resolve nano
info-0:5.1-4.el7.x86_64
ncurses-libs-0:5.9-14.20130511.el7_4.x86_64
bash-0:4.2.46-29.el7_4.x86_64
glibc-0:2.17-55.el7_0.3.i686
glibc-0:2.17-106.el7_2.1.x86_64

You can utilize the repoquery command in order to gather a list of packages that are dependencies of a package that you would like to update. Do note that this will grab the latest version of the dependencies even if you specify a version for the package that you are querying

For further information, see the manual page man repoquery or the help text “repoquery –help”.

# man repoquery
# repoquery --help

Resolving dependencies recursively

You can use the –recursive option with “–requires –resolve” option to query packages recursively. For example :

# repoquery --requires --resolve --recursive nano
pcre-0:8.32-15.el7_2.1.x86_64
glibc-0:2.17-55.el7_0.3.i686
bash-0:4.2.46-29.el7_4.x86_64
libselinux-0:2.2.2-6.el7.x86_64
basesystem-0:10.0-7.el7.noarch
tzdata-0:2014g-1.el7.noarch
pcre-0:8.32-15.el7_2.1.i686
libstdc++-0:4.8.2-16.2.el7_0.x86_64
libgcc-0:4.8.2-16.2.el7_0.x86_64
nss-softokn-freebl-0:3.16.2.3-9.el7.x86_64
setup-0:2.8.71-4.el7.noarch
ncurses-base-0:5.9-13.20130511.el7.noarch
zlib-0:1.2.7-13.el7.x86_64
glibc-0:2.17-106.el7_2.1.x86_64
filesystem-0:3.2-21.el7.x86_64
redhat-release-server-0:7.3-7.el7.x86_64
libsepol-0:2.5-6.el7.x86_64
ncurses-libs-0:5.9-14.20130511.el7_4.x86_64
libgcc-0:4.8.3-9.el7.i686
info-0:5.1-4.el7.x86_64
glibc-common-0:2.17-78.el7.x86_64

Alternate method – yumdownloader

Another way is to use yumdownloader please note though, that this will not grab dependencies of dependencies, so you may still have to run it on further packages down the list until you have all of the requirements.

# yumdownloader --resolve systemd
Loaded plugins: langpacks, product-id
--> Running transaction check
---> Package systemd.x86_64 0:219-42.el7_4.4 will be installed
--> Processing Dependency: systemd-libs = 219-42.el7_4.4 for package: systemd-219-42.el7_4.4.x86_64
--> Running transaction check
---> Package systemd-libs.x86_64 0:219-30.el7_3.7 will be updated
--> Processing Dependency: systemd-libs = 219-30.el7_3.7 for package: libgudev1-219-30.el7_3.7.x86_64
--> Processing Dependency: systemd-libs = 219-30.el7_3.7 for package: systemd-219-30.el7_3.7.x86_64
--> Processing Dependency: systemd-libs = 219-30.el7_3.7 for package: systemd-python-219-30.el7_3.7.x86_64
---> Package systemd-libs.x86_64 0:219-42.el7_4.4 will be an update
--> Running transaction check
---> Package libgudev1.x86_64 0:219-30.el7_3.7 will be updated
---> Package libgudev1.x86_64 0:219-42.el7_4.4 will be an update
---> Package systemd.x86_64 0:219-30.el7_3.7 will be updated
--> Processing Dependency: systemd = 219-30.el7_3.7 for package: systemd-sysv-219-30.el7_3.7.x86_64
---> Package systemd-python.x86_64 0:219-30.el7_3.7 will be updated
---> Package systemd-python.x86_64 0:219-42.el7_4.4 will be an update
--> Running transaction check
---> Package systemd-sysv.x86_64 0:219-30.el7_3.7 will be updated
---> Package systemd-sysv.x86_64 0:219-42.el7_4.4 will be an update
--> Processing Conflict: systemd-219-42.el7_4.4.x86_64 conflicts dracut < 033-499
--> Restarting Dependency Resolution with new changes.
--> Running transaction check
---> Package dracut.x86_64 0:033-463.el7 will be updated
--> Processing Dependency: dracut = 033-463.el7 for package: dracut-network-033-463.el7.x86_64
--> Processing Dependency: dracut = 033-463.el7 for package: dracut-config-rescue-033-463.el7.x86_64
---> Package dracut.x86_64 0:033-502.el7 will be an update
--> Running transaction check
---> Package dracut-config-rescue.x86_64 0:033-463.el7 will be updated
---> Package dracut-config-rescue.x86_64 0:033-502.el7 will be an update
---> Package dracut-network.x86_64 0:033-463.el7 will be updated
---> Package dracut-network.x86_64 0:033-502.el7 will be an update
--> Finished Dependency Resolution
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/8): dracut-config-rescue-033-502.el7.x86_64.rpm                                                                                                                      |  55 kB  00:00:00     
(2/8): dracut-033-502.el7.x86_64.rpm                                                                                                                                    | 321 kB  00:00:00     
(3/8): dracut-network-033-502.el7.x86_64.rpm                                                                                                                            |  97 kB  00:00:00     
(4/8): libgudev1-219-42.el7_4.4.x86_64.rpm                                                                                                                              |  83 kB  00:00:00     
(5/8): systemd-libs-219-42.el7_4.4.x86_64.rpm                                                                                                                           | 376 kB  00:00:00     
(6/8): systemd-python-219-42.el7_4.4.x86_64.rpm                                                                                                                         | 116 kB  00:00:00     
(7/8): systemd-sysv-219-42.el7_4.4.x86_64.rpm                                                                                                                           |  70 kB  00:00:00     
(8/8): systemd-219-42.el7_4.4.x86_64.rpm                                                                                                                                | 5.2 MB  00:00:00    
How to use “yum downloadonly” to download a package without installing it
Downloading a Specific Version of Package and Its Dependencies from Repository for Offline Installation Using YUM
Downloading RPM Packages with dependencies [ yumdownloader Vs yum-downloadonly Vs repoquery]

Filed Under: CentOS/RHEL 6, CentOS/RHEL 7, Linux

Some more articles you might also be interested in …

  1. Configuring sudo to Enable Commands for Non-Root Users in Linux
  2. How to configure VNC Server on CentOS/RHEL 6
  3. Filesystems Are Not Getting Mounted in Order on CentOS/RHEL 7
  4. How to use Magic SysRq tool in CentOS / RHEL
  5. CentOS / RHEL 7 : How to Modify GRUB2 Arguments with grubby
  6. How to change a system’s machine-ID in Oracle Enterprise Linux 7
  7. How to configure Partitioned Block Devices (Non-ASMLIB) And Assign Them To ASM
  8. /proc/cpuinfo file explained
  9. How to Create a tmpfs Filesystem in CentOS/RHEL
  10. How to Limit some User Memory Resources on CentOS/RHEL using cgroup

You May Also Like

Primary Sidebar

Recent Posts

  • How to Disable IPv6 on Ubuntu 18.04 Bionic Beaver Linux
  • How to Capture More Logs in /var/log/dmesg for CentOS/RHEL
  • Unable to Start RDMA Services on CentOS/RHEL 7
  • How to rename a KVM VM with virsh
  • Archives
  • Contact Us
  • Copyright

© 2021 · The Geek Diary