Welcome to the Linux Foundation Forum!

CentOS - where are rpm packages stored?

Options

Hi.

I'm learning some rpm commands. I want to run:

$ rpm -q --whatprovides
$ rpm -q --requires

but I do not know where the rpm packages are installed on my installation.

Thanks.

Comments

  • lee42x
    lee42x Posts: 380
    Options

    Good morning,

    The short answer is packages that are downloaded and installed are usually left in the "yum cache"
    ( ls /var/cache/yum/x86_64/7/*/packages ) directories, assuming one has not run "yum clean --all" which empties the cache.

    Some additional information is; rpm keeps a database of the installed packages and it is this database that
    "rpm -q" runs against. The database is usually in "/var/lib/rpm" directory and is updated by "rpm" and "yum" commands like "rpm -i ", "yum install " or "yum repolist" .

    There are features in "yum" to scan the package lists from the configured repo's, consider:
    "yum list --showduplicates systemd" it will show the locations of the packages, including what is installed.

    "rpm" runs against the database, "yum" uses the database and the repositories.

    I hope that helps, Lee

  • coop
    coop Posts: 915
    Options

    On most of my systems, yum removes the downloaded packages after they are installed. I guess there is a configuration option about this, but you generally do not have a need for the rpm once it is installed. to empty just the packages you can do "yum clean packages" and leave the rest of the metadata on your system,

  • WarrenUK
    Options

    Thanks all.

    I check in /var/cache/yum/x86_64/7/*/packages. I cannot see any .rpm files so the OS must have removed them.

    So are those command in my OP kind of redundant if CentOS removes the downloaded packages after install? Would I have to physically download an .rpm package and run the command on the package to see the output?

  • luisviveropena
    luisviveropena Posts: 1,154
    edited January 2020
    Options

    Hi @WarrenUK ,

    I see I have some of the rpm files, these the system has updated:

    [root@centos7server 7]# pwd
    /var/cache/yum/x86_64/7
    [root@centos7server 7]#
    [root@centos7server 7]# find . -name "*.rpm"
    ./updates/packages/bpftool-3.10.0-1062.9.1.el7.x86_64.rpm
    [root@centos7server 7]#

    If you want to get the rpm file without installing it (to play with it), you can do the following:

    yum install --downloadonly

    For example:

    [root@centos7server ~]# yum install --downloadonly chromium

    [long output...]

    Dependencies Resolved

    =====================================================================================

    Package Arch Version Repository Size

    Installing:
    chromium x86_64 79.0.3945.88-1.el7 epel 30 M
    Installing for dependencies:
    chromium-common x86_64 79.0.3945.88-1.el7 epel 9.9 M
    chromium-libs x86_64 79.0.3945.88-1.el7 epel 83 M
    chromium-libs-media x86_64 79.0.3945.88-1.el7 epel 2.3 M
    minizip x86_64 1.2.7-18.el7 base 34 k
    nss-mdns x86_64 0.14.1-1.el7 epel 41 k

    Transaction Summary

    Install 1 Package (+5 Dependent packages)

    Once that they have been downloaded, you will see them here:

    [root@centos7server packages]# pwd
    /var/cache/yum/x86_64/7/epel/packages

    [root@centos7server packages]# ls
    chromium-79.0.3945.88-1.el7.x86_64.rpm
    chromium-common-79.0.3945.88-1.el7.x86_64.rpm
    chromium-libs-79.0.3945.88-1.el7.x86_64.rpm
    chromium-libs-media-79.0.3945.88-1.el7.x86_64.rpm
    nss-mdns-0.14.1-1.el7.x86_64.rpm

    I hope that helps.

    Regards,
    Luis.

  • WarrenUK
    Options

    Many thanks Luis.

  • luisviveropena
    Options

    It's a pleasure!

  • harshal1
    Options

    Hi @WarrenUK @luisviveropena actually I tried everything but I am not able to get the path where are all the rpm are getting stored after installing . can u please provide me the solution how to do the changes in configuration so that server Don't delete that one by itself ??

  • coop
    coop Posts: 915
    Options

    rpms are kept under /var/cache/dnf while they are installing. On most systems they are removed after successful installation. I don't know why you would want to keep them generally. If you want to know the version etc, you can just do "rpm -qa" to get all packages, or for example "rpm -q bash" to find out one package version.

    I don't remember how to force dnf to keep the packages after successful installation but it is probably an obvious option in /etc/dnf/dnf.conf

Categories

Upcoming Training