Чи є спосіб витягнути встановлений 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
Це завантажить останню обертову хвилину, а не ту, яку зараз встановлено.