8

Есть ли способ извлечь установленный RPM из базы данных RPM в Red Hat Enterprise Linux для воспроизведения оригинального файла .rpm ?

2 ответа2

7

Если вы хотите сохранить копию пакета, установленную в настоящий момент, перед обновлением или удалением, используйте rpm --repackage - он сохранит RPM в /var /tmp или /var /spool /repackage или в другом месте, в зависимости от вашего конфигурации.

В противном случае существует rpmrebuild, который делает именно то, что вы просите.

Слово предостережения: ни с одним из этих инструментов вы не получите точно такой же *.rpm как тот, с которого вы начали. Любые изменения в установленных файлах, принадлежащих пакету, будут в генерируемых RPM.

1

Создание оригинального 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

Это позволит загрузить последнюю версию, а не ту, которая установлена в данный момент.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .