How do I find out which repository a package was installed from in CentOS?

Solution 1:

Modern versions of YUM provide this information.

For instance, on my Fedora 15 system with YUM 3.2.29:

# yum info mysql-server
Loaded plugins: fastestmirror, langpacks, presto, refresh-packagekit
Installed Packages
Name        : mysql-server
Arch        : x86_64
Version     : 5.5.14
Release     : 2.fc15
Size        : 42 M
Repo        : installed
From repo   : updates
Summary     : The MySQL server and related files
URL         : http://www.mysql.com
License     : GPLv2 with exceptions
Description : MySQL is a multi-user, multi-threaded SQL database server. MySQL is a
            : client/server implementation consisting of a server daemon (mysqld)
            : and many different client programs and libraries. This package contains
            : the MySQL server and some accompanying files and directories.

You might see if there is a newer version of YUM that provides this information available for your system.

Solution 2:

An updated - slightly more useful - answer, for those who were as unfortunate as I was to have stumbled upon this...

For Fedora (and presumably Centos & RHEL) e.g.:

dnf whatprovides postgresql-server

Using metadata from blah blah blah

postgresql-server-9.3.9-1.fc21.x86_64 : The programs needed to create and run a PostgreSQL server

Repo        : @System

postgresql-server-9.3.5-4.fc21.x86_64 : The programs needed to create and run a PostgreSQL server

Repo        : fedora

postgresql-server-9.3.9-1.fc21.x86_64 : The programs needed to create and run a PostgreSQL server

Repo        : updates

As you can see, it lists @System for the package that's currently installed, as well as from what repos and versions it could possibly be installed from. The important part here thou, is the last item listed, the version details and name of which match what's installed exactly. It was therefore installed from the fedora updates repository. Dnf, like yum, also supports the info option, i.e.:

dnf info postgresql-server

However, on my system, the dnf output does not display the From repo field, unlike the yum command, so YMMV.