Ответы:
Если вы хотите сохранить копию пакета, установленную в настоящий момент, перед обновлением или удалением, используйте 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:
# 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
Это позволит загрузить последнюю версию, а не ту, которая установлена в данный момент.