Есть ли способ извлечь установленный RPM из базы данных RPM в Red Hat Enterprise Linux для воспроизведения оригинального .rpm
файла?
redhat-enterprise-linux
rpm
Джон в MD
источник
источник
Ответы:
Если вы хотите сохранить копию пакета, установленную в настоящий момент, перед обновлением или удалением, используйте
rpm --repackage
- он сохранит RPM в / var / tmp или / var / spool / repackage или в другом месте, в зависимости от вашей конфигурации.В противном случае существует
rpmrebuild
, что делает именно то, что вы просите.Слово предостережения: ни
*.rpm
с одним из этих инструментов вы не получите точно то же самое, с которого вы начали. Любые изменения в установленных файлах, принадлежащих пакету, будут в генерируемых RPM.источник
rpm --repackage
будетRe-package the files before erasing
rpm.org/max-rpm-snapshot/rpm.8.html я почти выполнил эту команду вслепую, но смотрели на связанных документах первым.rpm --repackage
По-видимому, недоступно в более новых (например, RHEL 7) системах.rpmrebuild
доступен в EPEL для RHEL 7 и сделал свое дело для меня.Создание оригинального rpm-файла невозможно, его извлекли и, возможно, выбросили. База данных rpm содержит информацию о том, какие файлы установлены, а также их контрольные суммы, разрешения и сценарии postinst:
даст вам некоторую информацию.
Если вы хотите получить rpm из репозитория, я рекомендую использовать yumdownloader из пакета yum-utils.
Это позволит загрузить последнюю версию, а не ту, которая установлена в данный момент.
источник