Saya hanya ingin membuat file RPM untuk mendistribusikan biner Linux saya "foobar", dengan hanya beberapa dependensi. Ini memiliki file config, /etc/foobar.conf dan harus diinstal di / usr / bin / foobar.
Sayangnya dokumentasi untuk RPM panjangnya 27 bab dan saya benar-benar tidak punya waktu untuk duduk dan membaca ini, karena saya juga sibuk membuat installer .deb dan EXE untuk platform lain.
Apa minimum absolut yang harus saya lakukan untuk membuat RPM? Asumsikan biner foobar dan foobar.conf berada di direktori kerja saat ini.
Jawaban:
Saya sering melakukan rpm biner per kemasan aplikasi eksklusif - juga moster sebagai websphere - di linux. Jadi pengalaman saya bisa berguna juga bagi Anda, selain itu akan lebih baik untuk melakukan RPM BENAR jika Anda bisa. Tapi saya ngelantur.
Jadi langkah dasar untuk mengemas program (biner) Anda adalah sebagai berikut - di mana saya kira program tersebut adalah toybinprog dengan versi 1.0, memiliki conf untuk diinstal di /etc/toybinprog/toybinprog.conf dan memiliki bin untuk diinstal di / usr / bin dipanggil tobinprog:
1. buat rpm build env Anda untuk RPM <4.6,4.7
2. buat tarball proyek Anda
3. Salin ke sumber dir
4. bangun sumber dan rpm biner
Dan itu saja.
Semoga bantuan ini
sumber
sudo dnf install rpm-build
- Perintah Fedora 23 untuk menginstal rpmbuild v4.13 +Sebagai distributor aplikasi, fpm terdengar sempurna untuk kebutuhan Anda . Ada contoh di sini yang menunjukkan cara mengemas aplikasi dari sumber. FPM dapat menghasilkan file deb dan file RPM.
sumber
Untuk membangun RPM cepat, lihat Togo:
https://github.com/genereese/togo-rpm
Proyek ini memiliki panduan Mulai Cepat dan saya dapat membuat RPM dasar dalam waktu kurang dari 3 menit.
Contoh menggunakan data yang disediakan dalam pertanyaan awal:
1) Buat direktori proyek menggunakan skrip:
2) Buat struktur direktori yang Anda inginkan di bawah ./root dan salin file Anda ke dalamnya:
3) Kecualikan direktori yang dimiliki sistem dari kepemilikan RPM Anda:
4) (OPTIONAL) Ubah spec yang dihasilkan untuk mengubah deskripsi paket / dependensi / versi / apa pun, dll .:
5) Bangun RPM:
-dan RPM Anda diludahkan ke dalam direktori ./rpms.
sumber
Demikian pula, saya perlu membuat rpm hanya dengan beberapa file. Karena file-file ini dikendalikan oleh sumber, dan karena itu tampak konyol, saya tidak ingin melanjutkannya dengan men-download rpm saja. Saya datang dengan yang berikut:
Siapkan lingkungan Anda:
mkdir -p ~/rpm/{BUILD,RPMS}
echo '%_topdir %(echo "$HOME")/rpm' > ~/.rpmmacros
Buat file spesifikasi Anda, foobar.spec, dengan konten berikut:
Bangun rpm Anda:
rpmbuild -bb foobar.spec
Ada sedikit peretasan di sana yang menentukan 'sumber' sebagai direktori Anda saat ini, tetapi tampaknya jauh lebih elegan daripada alternatifnya, yaitu, dalam kasus saya, menulis skrip terpisah untuk membuat tarball, dll, dll.
Catatan: Dalam situasi khusus saya, file saya diatur dalam folder sesuai dengan tujuan mereka, seperti ini:
dan jadi bagian persiapan menjadi:
Yang sedikit lebih bersih.
Juga, saya kebetulan menggunakan RHEL5.6 dengan versi rpm 4.4.2.3, jadi jarak tempuh Anda mungkin berbeda.
sumber
$RPM_BUILD_ROOT
agar%{buildroot}
bisa berfungsi pada "Red Hat Enterprise Linux Server rilis 6.9" saya. Juga, dua file yang diinstal harus berada di direktori saat ini ketika saya menjalankan rpmbuild. Saya menginstalnya di komputer saya yang lain dengan:sudo rpm -Uvh --nodeps foobar-0.1a-1.x86_64.rpm
Jika
make config
berfungsi untuk program Anda atau Anda memiliki skrip shell yang menyalin dua file Anda ke tempat yang tepat Anda dapat menggunakan checkinstall . Cukup buka direktori tempat makefile Anda berada dan panggil dengan parameter-R
(untuk RPM ) dan secara opsional dengan skrip instalasi.sumber
Cara mudah untuk membuat paket rpm dari binary (langkah-langkah ini diuji dengan Fedora 18):
1) Pertama, Anda harus menginstal rpmdevtools, jadi jalankan perintah ini (perhatian: jalankan sebagai pengguna normal)
2) Dalam folder ~ / rpmbuild / SPECS buat file baru: package_name.spec
3) Buka dengan editor (seperti gedit) dan tulis ini:
4) Buat ~ / rpmbuild / BUILDROOT / package_name-version-release.i386 dan buat kembali jalur tempat file akan ditempatkan. Jadi dalam kasus ini misalnya buat:
5) Masukkan ke dalam folder-folder ini file yang ingin Anda masukkan ke dalam paket:
usr / share / pixmaps / package_name.png adalah ikon biner usr / share / application / package_name.desktop adalah aturan untuk memasukkan program dalam entri menu
6) package_name.desktop harus seperti ini:
Kategorinya adalah ini: standards.freedesktop.org/menu-spec/latest/apa.html
7) Lari
$ rpmbuild -bb ~/rpmbuild/SPECS/package_name.spec
8) Paket Anda dibangun ke dalam folder ~ / rpmbuild / RPMS
jika Anda menginstal paket ini instal:
Terima kasih kepada: losurs.org/docs/tips/redhat/binary-rpms
Untuk detail lebih lanjut untuk membuat rpm, lihat tautan ini .
Perangkat lunak GUI java untuk membangun rpm: https://sourceforge.net/projects/javarpmbuilder/
sumber
Jika Anda terbiasa dengan Maven ada juga
rpm-maven-plugin
yang menyederhanakan membuat RPM: Anda harus menulis hanyapom.xml
yang akan digunakan untuk membangun RPM. Lingkungan RPM build dibuat secara implisit oleh plugin.sumber
Proses menghasilkan RPM dari file sumber:
sumber
RPM biasanya dibangun dari sumber, bukan binari.
Anda perlu menulis file spesifikasi yang mencakup cara mengkonfigurasi dan mengkompilasi aplikasi Anda; juga, file mana yang akan disertakan dalam RPM Anda.
Pandangan sekilas ke manual menunjukkan bahwa sebagian besar dari apa yang Anda butuhkan tercakup dalam Bab 8 - juga, karena sebagian besar distribusi berbasis RPM memiliki sumber yang tersedia, ada sejuta contoh pendekatan berbeda yang dapat Anda lihat.
sumber