Comment extraire RPM de la base de données RPM sur Red Hat Enterprise Linux

8

Existe-t-il un moyen d'extraire un RPM installé à partir d'une base de données RPM sur Red Hat Enterprise Linux pour reproduire le .rpmfichier d' origine ?

John dans MD
la source
Pourquoi ce titre a-t-il été modifié? Red Hat est le nom du logiciel non RedcHat
Ramhound

Réponses:

7

Si vous souhaitez enregistrer une copie du package tel qu'il est actuellement installé avant de le mettre à niveau ou de le supprimer, utilisez rpm --repackage- il enregistrera les RPM dans / var / tmp ou / var / spool / repackage ou ailleurs, selon votre configuration.

Sinon, il existe rpmrebuild, qui fait exactement ce que vous demandez.

Attention: avec aucun de ces outils, vous n'obtenez exactement le même *.rpmque celui à partir duquel vous êtes parti. Toutes les modifications apportées aux fichiers installés appartiennent au package seront dans les RPM générés.

éphémère
la source
1
Je crois qu'il vaut la peine de noter que rpm --repackageva Re-package the files before erasing rpm.org/max-rpm-snapshot/rpm.8.html je presque couru cette commande aveuglément, mais regardé les documents liés en premier.
Kevin Meredith
rpm --repackagene semble pas être disponible sur les systèmes plus récents (par exemple, RHEL 7). rpmrebuildest disponible dans l'EPEL pour RHEL 7 et a fait l'affaire pour moi.
jayhendren
1

La production du fichier rpm d'origine n'est pas possible, il a été extrait et peut-être supprimé. La base de données rpm contient des informations sur les fichiers installés et leurs totaux de contrôle, autorisations et scripts postinst:

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

vous donnera quelques informations.

Si vous souhaitez obtenir un rpm du référentiel, je vous recommande d'utiliser yumdownloader, à partir du package yum-utils.

yum install yum-utils
yumdownloader packagename

Cela téléchargera le dernier rpm, pas celui qui est actuellement installé.


la source