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 ?


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.


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.