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 ?


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.


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é.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.