Jak wyodrębnić RPM z bazy danych RPM w systemie Red Hat Enterprise Linux

8

Czy istnieje sposób na wyodrębnienie zainstalowanego RPM z bazy danych RPM w Red Hat Enterprise Linux w celu odtworzenia oryginalnego .rpmpliku?

John w MD
źródło
Dlaczego ten tytuł został zmodyfikowany? Red Hat to nazwa oprogramowania nie RedcHat
Ramhound,

Odpowiedzi:

7

Jeśli chcesz zapisać kopię pakietu jako aktualnie zainstalowaną przed aktualizacją lub usunięciem, użyj rpm --repackage- zapisze RPM w / var / tmp lub / var / spool / repackage lub gdzie indziej, w zależności od konfiguracji.

W przeciwnym razie istnieje coś rpmrebuild, co robi dokładnie to, o co prosisz.

Uwaga: z żadnym z tych narzędzi nie otrzymujesz dokładnie tego samego, *.rpmod którego zacząłeś. Wszelkie zmiany w zainstalowanych plikach należą do pakietu będą w wygenerowanych RPM.

efemeryczny
źródło
1
Wierzę, że to warto zauważyć, że rpm --repackagebędzie Re-package the files before erasing rpm.org/max-rpm-snapshot/rpm.8.html I prawie zabrakło tego polecenia ślepo, ale spojrzał na połączonych docs pierwszy.
Kevin Meredith
rpm --repackagenie wydaje się być dostępny w nowszych systemach (np. RHEL 7). rpmrebuildjest dostępna w EPEL dla RHEL 7 i załatwiła sprawę dla mnie.
jayhendren
1

Utworzenie oryginalnego pliku rpm nie jest możliwe, zostało ono wyodrębnione i prawdopodobnie odrzucone. Baza danych rpm zawiera informacje o tym, jakie pliki są zainstalowane oraz ich sumy kontrolne, uprawnienia i skrypty postinst:

# verify package contents
rpm -q packagename --verify
# read the scripts that run on installation and removal
rpm -q packagename --scripts

da ci trochę informacji.

Jeśli chcesz uzyskać rpm z repozytorium, polecam użycie yumdownloadera z pakietu yum-utils.

yum install yum-utils
yumdownloader packagename

Spowoduje to pobranie najnowszej liczby obrotów na minutę, a nie tej, która jest obecnie zainstalowana.


źródło