Як отримати RPM з бази даних RPM на Red Hat Enterprise Linux


8

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


Чому цю назву було змінено? Red Hat - це назва програмного забезпечення, а не RedcHat
Ramhound

Відповіді:


7

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

Інакше існує rpmrebuild, що робить саме те, про що ви просите.

Будьте обережні: за допомогою жодного з цих інструментів ви не будете отримувати те саме, що і те *.rpm, з чого ви почали. Будь-які зміни встановлених файлів, що належать до пакету, будуть вгенеровані RPM.


1
Я вважаю , що варто відзначити , що rpm --repackageбуде Re-package the files before erasing rpm.org/max-rpm-snapshot/rpm.8.html я майже виконав цю команду наосліп, але дивилися на пов'язаних документах першим.
Кевін Мередіт

rpm --repackageне здається доступним у нових системах (наприклад, RHEL 7). rpmrebuildдоступний в EPEL для RHEL 7 і зробив трюк для мене.
jayhendren

1

Створення оригінального файлу 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

Це завантажить останню обертову хвилину, а не ту, яку зараз встановлено.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.