How to extract RPM from RPM database in RedHat

Is there a way to extract an installed RPM from an RPM database on RedHat Linux to reproduce the original .rpm file?


If you want to save a copy of the package as currently installed before upgrading or removing it, use rpm --repackage -- it'll save the RPMs in /var/tmp or /var/spool/repackage or elsewhere, depending on your configuration.

Otherwise, there exists rpmrebuild, which does exactly what you ask for.

Word of caution: with neither of these tools do you obtain the exact same *.rpm as the one you started from. Any changes to the installed files belong to the package will be in the RPMs generated.

Producing the original rpm file isn't possible, it's been extracted and possibly discarded. The rpm database has information about what files it's installed and their checksums, permissions, and the postinst scripts\:

# verify package contents
rpm -q packagename --verify
# read the scripts that run on installation and removal
rpm -q packagename --scripts

will give you some information.

If you want to obtain an rpm from the respository, I recommend using yumdownloader, from the yum-utils package.

yum install yum-utils
yumdownloader packagename

This will download the latest rpm, not the one that is installed currently.

Category: linux Time: 2008-10-10 Views: 1

Related post

iOS development

Android development

Python development

JAVA development

Development language

PHP development

Ruby development


Front-end development


development tools

Open Platform

Javascript development

.NET development

cloud computing


Copyright (C), All Rights Reserved.

processed in 0.158 (s). 12 q(s)