Есть ли способ извлечь установленный RPM из базы данных RPM в Red Hat Enterprise Linux для воспроизведения оригинального файла .rpm
?
2 ответа
Если вы хотите сохранить копию пакета, установленную в настоящий момент, перед обновлением или удалением, используйте rpm --repackage
- он сохранит RPM в /var /tmp или /var /spool /repackage или в другом месте, в зависимости от вашего конфигурации.
В противном случае существует rpmrebuild
, который делает именно то, что вы просите.
Слово предостережения: ни с одним из этих инструментов вы не получите точно такой же *.rpm
как тот, с которого вы начали. Любые изменения в установленных файлах, принадлежащих пакету, будут в генерируемых RPM.
Создание оригинального rpm-файла невозможно, его извлекли и, возможно, выбросили. База данных rpm содержит информацию о том, какие файлы установлены, а также их контрольные суммы, разрешения и сценарии postinst:
# verify package contents
rpm -q packagename --verify
# read the scripts that run on installation and removal
rpm -q packagename --scripts
даст вам некоторую информацию.
Если вы хотите получить rpm из репозитория, я рекомендую использовать yumdownloader из пакета yum-utils.
yum install yum-utils
yumdownloader packagename
Это позволит загрузить последнюю версию, а не ту, которая установлена в данный момент.