Чи є спосіб витягнути встановлений RPM з бази даних RPM на Red Hat Enterprise Linux для відтворення вихідного .rpmфайлу?
Чи є спосіб витягнути встановлений RPM з бази даних RPM на Red Hat Enterprise Linux для відтворення вихідного .rpmфайлу?
Відповіді:
Якщо ви хочете зберегти копію пакета, як встановлений на даний момент, перед оновленням або видаленням, використовуйте rpm --repackage- він збереже RPM в / var / tmp або / var / spool / перепакування або в іншому місці, залежно від конфігурації.
Інакше існує 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 містить інформацію про те, які файли встановлено, їх контрольні суми, дозволи та сценарії постінст:
# 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
Це завантажить останню обертову хвилину, а не ту, яку зараз встановлено.