Cara mengekstrak RPM dari basis data RPM di Red Hat Enterprise Linux

8

Apakah ada cara untuk mengekstrak RPM yang terinstal dari database RPM di Red Hat Enterprise Linux untuk mereproduksi .rpmfile asli ?

John di MD
sumber
Mengapa judul ini diubah? Red Hat adalah nama perangkat lunak yang bukan RedcHat
Ramhound

Jawaban:

7

Jika Anda ingin menyimpan salinan paket yang saat ini diinstal sebelum meningkatkan atau menghapusnya, gunakan rpm --repackage- itu akan menyimpan RPM di / var / tmp atau / var / spool / repackage atau di tempat lain, tergantung pada konfigurasi Anda.

Kalau tidak, ada rpmrebuild, yang melakukan persis apa yang Anda minta.

Peringatan: dengan tidak satu pun dari alat-alat ini Anda mendapatkan yang sama persis *.rpmseperti yang Anda mulai. Setiap perubahan pada file yang diinstal milik paket akan di RPM yang dihasilkan.

singkat
sumber
1
Saya percaya ini bermanfaat untuk dicatat bahwa rpm --repackageakan Re-package the files before erasing rpm.org/max-rpm-snapshot/rpm.8.html Saya hampir menjalankan perintah ini secara membabi buta, tetapi melihat dokumen yang ditautkan terlebih dahulu.
Kevin Meredith
rpm --repackagetampaknya tidak tersedia pada sistem yang lebih baru (misalnya, RHEL 7). rpmrebuildtersedia di EPEL untuk RHEL 7 dan melakukan trik untuk saya.
jayhendren
1

Memproduksi file rpm asli tidak dimungkinkan, itu telah diekstraksi dan mungkin dibuang. Basis data rpm memiliki informasi tentang file apa yang diinstal dan checksum, izin, dan skrip postinst mereka:

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

akan memberi Anda beberapa informasi.

Jika Anda ingin mendapatkan rpm dari respositori, saya sarankan menggunakan yumdownloader, dari paket yum-utils.

yum install yum-utils
yumdownloader packagename

Ini akan mengunduh rpm terbaru, bukan yang diinstal saat ini.


sumber