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 .rpm
fichier d' origine ?
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 .rpm
fichier d' origine ?
Réponses:
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 *.rpm
que 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.
rpm --repackage
va 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.
rpm --repackage
ne semble pas être disponible sur les systèmes plus récents (par exemple, RHEL 7). rpmrebuild
est disponible dans l'EPEL pour RHEL 7 et a fait l'affaire pour moi.
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é.