Saya memiliki rpm dan saya ingin memperlakukannya seperti tarbal. Saya ingin mengekstraksi konten ke direktori sehingga saya dapat memeriksa isinya. Saya akrab dengan perintah kueri dari paket yang dihapus. Saya tidak hanya ingin daftar isi rpm. yaitu
$ rpm -qpl foo.rpm
Saya ingin memeriksa isi beberapa file yang terkandung dalam rpm. Saya tidak ingin menginstal rpm. Saya juga menyadari kemampuan rpms untuk melakukan modifikasi tambahan di bagian% post, dan bagaimana cara memeriksanya. yaitu
$ rpm -qp --scripts foo.rpm
Namun dalam hal ini itu bukan urusan saya.
linux
package
rpm
system-administration
Jeff Sheffield
sumber
sumber
Untuk Referensi: argumen cpio adalah
Saya menemukan jawabannya di sini: jawaban lontar
sumber
Bagi mereka yang tidak memiliki rpm2cpio, ini adalah script rpm2cpio.sh kuno yang mengekstrak payload dari paket * .rpm.
Diposting ulang untuk anak cucu ... dan generasi berikutnya.
Panggil seperti ini: ./rpm2cpio.sh .rpm | cpio -dimv
sumber
Terkadang Anda dapat mengalami masalah dengan arsip RPM menengah:
Itu berarti bisa dikemas, hari ini kompresi LZMA2 seperti biasa, dengan
xz
:jika tidak, Anda dapat mencoba:
sumber
rpm2cpio <file>.rpm | bsdtar -xf -
(tidak cpio) agar bisa berfungsi.gunzip
alih-alihxz
ataulzma
yang berfungsi dengan baik.Sebagian besar distribusi telah menginstal file-roller aplikasi GUI yang membongkar tar, zip, rpm dan banyak lagi.
Ini akan mengekstraksi konten dalam direktori saat ini.
sumber
7-zip mengerti sebagian besar jenis arsip, termasuk rpm dan cpio yang disertakan.
sumber
Anda bisa melakukannya
tar -xvf <rpm file>
juga!sumber
tar
yang menggunakan dilibarchive
bawah tenda.bsdtar
. Homebrew pada Mac menghubungkannyatar
secara default tetapi pada OS laintar
berarti tar GNU.Manajer file berbasis teks yang kuat mc (Midnight Commander, samar-samar mengingatkan Norton Commander dari zaman DOS lama) memiliki kemampuan built-in untuk memeriksa dan membongkar file .rpm dan .rpms, cukup "buka" file .rpm (s) dalam mc dan pilih
CONTENTS.cpio
: untuk rpm Anda mendapatkan akses ke pohon instalasi, untuk rpms Anda mendapatkan akses ke file .spec dan semua paket sumber.sumber
Untuk men-debug / memeriksa rpm Anda, saya sarankan untuk menggunakan redline yang merupakan program java
Penggunaan:
Unduh: https://github.com/craigwblake/redline/releases
sumber
Di NixOS, ada
rpmextract
. Ini adalah pembungkus sekitar rpm2cpio, persis seperti yang diinginkan @Alan Evangelista. https://github.com/NixOS/nixpkgs/tree/master/pkgs/tools/archivers/rpmextractsumber
Di OpenSuse setidaknya,
unrpm
perintahnya datang denganbuild
paket.Dalam direktori yang sesuai (karena ini adalah bom arsip):
sumber
Salin file .rpm di folder terpisah lalu jalankan perintah berikut $ yourfile.rpm | cpio -idmv
sumber
Tes "DECOMPRESSION" gagal pada CygWin, salah satu platform yang paling berguna untuk itu, karena "grep" memeriksa "xz" yang case-sensitive. Hasil cek "KOMPRESI:" adalah:
Cukup mengganti 'grep -q' dengan 'grep -q -i' di mana-mana tampaknya menyelesaikan masalah dengan baik.
Saya telah melakukan beberapa pembaruan, terutama menambahkan beberapa komentar dan menggunakan pernyataan "case" dan bukannya stacked "if", dan menyertakan perbaikan di bawah ini
sumber
7-Zip dapat mengekstraksi konten. Ini bekerja dengan cara yang sama seperti file tar.gz bekerja. File terkompresi di dalam file terkompresi.
Di Windows 7 Pro dengan 7-Zip terpasang:
Klik kanan file rpm. Arahkan mouse ke 7-Zip di menu konteks. Pilih ekstrak ke "nama file".
Masukkan ke dalam folder nama file.
Klik kanan file cpio. Arahkan mouse ke 7-Zip di menu konteks. Pilih ekstrak ke "nama file".
Kamu selesai. Folder dengan "nama file" berisi konten yang diekstraksi untuk diperiksa.
Saya tahu Anda orang-orang Linux membenci hal-hal yang dibuat mudah, tetapi dalam jangka panjang, jika Anda harus menghabiskan waktu mencari solusi untuk masalah sederhana seperti ini; bahwa ketidakefisienan membebani Anda uang.
Mengingat fakta bahwa Anda orang-orang Linux membenci kesederhanaan yang efisien, saya sangat meragukan bahwa versi Linux 7-Zip akan melakukan hal yang sama dengan cara yang persis sama.
Mengapa membuatnya mudah ketika Anda bisa membuat orang benar-benar bodoh dan mengaku jenius pada saat yang sama?
Hanya untuk memperjelas; Saya bukan penggemar Windows. Saya sebenarnya ingin pindah ke Linux. Saya tidak bisa menolak kesempatan untuk menggosok apa yang akan dilihat pengembang Windows sebagai akal sehat, praktik pengembang terbaik di wajah Anda.
Bersyukurlah aku yang memposting ini dan Anda tidak memiliki Mark Harmon berdiri di samping Anda menyebabkan; Agen khusus Leroy Jethro Gibbs akan memberi Anda tamparan karena tidak menggunakan kepala Anda.
Saya tidak tahu Gibbs mana yang mengaturnya, tetapi aturannya adalah: Jangan membuat segalanya lebih sulit untuk diri Anda daripada yang seharusnya.
Sekarang kita bisa melihat siapa yang perlu berlibur. Hati hati!
sumber