Ada dua mesin, versi identik / lengkungan SLES.
Pada mesin #A ada perangkat lunak "foo" yang diinstal yang dapat kita lihat menggunakan rpm -qa
.
Pada mesin #B, perangkat lunak "foo" perlu diinstal.
Tidak foo.rpm
tersedia dari sumber apa pun, dari internet, dll.
Pertanyaan
Karena paket foo.rpm
diinstal pada mesin #A, dapatkah kita membuat foo.rpm
file di atasnya dari file yang sudah diinstal?
Ada skrip pra / posting di rpm, juga, saya pikir. Jadi foo.rpm
( dengan dependensi? ) Dapat diinstal.
Jawaban:
Itu mungkin tetapi sangat sulit untuk dilakukan sehingga dilakukan dengan benar. Jika Anda putus asa, Anda dapat membuat
.spec
file RPM baru dan membuat file RPM (SRPM) sumber "palsu" yang kemudian dapat Anda gunakan untuk membuat file RPM yang dihasilkan menggunakanrpmbuild --rebuild
.Saya akan terus mencari RPM yang sebenarnya. Anda tidak menyatakan yang mana dalam pertanyaan Anda, tetapi merupakan pengalaman saya bahwa Anda dapat menemukan apa pun di internet jika Anda tahu cara mencarinya. Saya telah menemukan versi kuno RPM untuk distro Red Hat yang belum digunakan selama 10+ tahun jadi saya merasa sulit untuk percaya bahwa tidak ada sisa RPM ini di mana pun.
Anda juga sering dapat kembali ke sumber aplikasi yang ada di dalam RPM dan menggunakannya untuk merekonstruksi RPM juga. Sering kali aplikasi sumber akan menyertakan
.spec
file yang diperlukan yang digunakan untuk membangun kembali RPM.Terakhir Anda bisa mendapatkan sumber dan
.spec
file dari layanan build seperti distro berbasis Koji untuk Red Hat. SuSE juga mempertahankan layanan build serupa sehingga Anda dapat mencari melalui ini untuk mendapatkan artefak build lama.Mengambil binari apa adanya
Anda dapat menggunakan metode ini untuk mengangkat executable aktual dari satu sistem dan menaruhnya di atas untuk ditempatkan di sistem lain.
mesin A
mesin B
RPM versi SLES
Menurut salah satu posting di utas ini: Re: Cara membuat RPM
rpm
dari paket yang diinstal pada SLES konon memiliki saklar--repackage
. Ini tidak ada pada versi Red Hat (di Fedora atau CentOS). Tetapi menurut pos Anda dapat menggunakannya seperti:Setelah selesai, Anda akan menemukan RPM Anda dapat diakses di sini:
Menggunakan rpmerizor
Rpmerizor adalah alat / skrip pihak ketiga yang dapat Anda instal yang akan mengemas ulang file sumber ke dalam RPM yang sesuai. Penggunaan skrip ini dapat diakses di sini, berjudul: Halaman manual rpmerizor .
kutipan
Menggunakan rpmrebuild
Tidak perlu bingung dengan alat build
rpmbuild
,rpmrebuild
adalah skrip pihak ketiga lain yang dapat Anda gunakan untuk melakukan pengemasan ulang RPM yang sudah diinstal.kutipan
Contoh
Katakanlah kita ingin mengemas kembali openssh-server.
Sekarang kemas:
Referensi
sumber
Sebagai aturan umum no.
Dengan sedikit keberuntungan
rpm -qi
danrpm -q --changelog
memberikan wawasan ke mana paket itu berasal.Jika itu dibangun pada sistem yang sedang berjalan Anda mungkin masih memiliki file spesifikasi yang digunakan untuk membuat rpm yang sebenarnya, jika tidak keduanya.
Sebagai aturan umum saya tidak merekomendasikan menyalin file / binari tetapi sebagian besar informasi meta ada di database RPM dan Anda memiliki file yang sebenarnya.
rpm -q --list <pkg_name>
memperlihatkan semua file yang disebarkan paket.rpm -q --scripts <pkg_name>
untuk menunjukkan skrip apa pun yang dijalankan dengan menginstal (atau menghapus) paket mungkin memberikan setidaknya sebanyak wawasan tentang tujuannya sebagai file yang bisa digunakan.Dan segala ketergantungan yang harus diinstal dapat ditemukan bersama
rpm -q --requires <pkg_name>
.sumber