RPM (singkatan rekursif untuk Manajer Paket RPM) adalah sumber terbuka dan gratis sistem manajemen paket untuk Linux. Meskipun awalnya dibuat untuk digunakan di Linux topi merah, sekarang digunakan di banyak distribusi Linux seperti CentOS, Fedora, dan OpenSuse. Yang penting, nama RPM mengacu pada program manajer paket dan .rpm
adalah format file.
Pada artikel ini, kami akan menjelaskan tentang penulisan file RPM, menunjukkan cara mudah membuat paket perangkat lunak sumber dan biner sederhana, misalnya, GNU "Halo Dunia" paket RPM di Fedora Linux distribusi. Kami berasumsi bahwa Anda memiliki beberapa pemahaman dasar tentang paket RPM yang dibuat sebelumnya, dan dengan proses pembuatan Perangkat Lunak Sumber Terbuka Gratis.
Mari kita mulai dengan menyiapkan lingkungan pengembangan di Fedora Linux dengan menjalankan perintah berikut untuk menginstal alat yang diperlukan untuk membangun RPM.
$ sudo dnf install fedora-packager @development-tools.
Selanjutnya, tambahkan akun non-hak istimewa Anda ke 'mengejek' kelompok sebagai berikut (ganti dekat dengan nama pengguna Anda yang sebenarnya). Ini akan memungkinkan Anda untuk menguji prosedur pembuatan dalam chroot yang bersih.
$ sudo usermod -a -G mock tecmint.
Sekarang, buat build RPM di. Anda ~/rpmbuild
direktori dan verifikasi build menggunakan perintah berikut. Ini akan menampilkan daftar sub-direktori, yang berisi kode sumber proyek, file konfigurasi RPM dan paket biner.
$ rpmdev-setuptree. $pohon ~/rpmbuild/
Inilah yang dimaksudkan untuk setiap direktori:
Pada langkah ini, Anda perlu mengunduh kode sumber (juga dikenal sebagai "ke hulu” sumber) dari proyek Hello World yang kami kemas, ke dalam ~/rpmbuild/SOURCE direktori dengan yang berikut: perintah wget.
$ cd ~/rpmbuild/SOURCES. $wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz -P ~/rpmbuild/SOURCES.
Selanjutnya, mari kita konfigurasikan paket RPM menggunakan a .spec
file (sebut saja halo.spec
dalam hal ini) dalam ~/rpmbuild/SPECS direktori, menggunakan rpmdev-newspec program.
$ cd ~/rpmbuild/SPECS. $ rpmdev-newspec halo. $ ls.
Kemudian buka halo.spec
file menggunakan Anda editor favorit.
$ vim hello.spec.
Template default akan terlihat seperti ini:
Nama: halo. Versi: Rilis: 1%{?dist} Ringkasan: Lisensi: URL: Source0: BuildRequires: Membutuhkan: %description %prep. %setup otomatis %build. %konfigurasi. %make_build %instal. rm -rf $RPM_BUILD_ROOT. %make_install %file. %lisensi tambahkan-lisensi-file-di sini. %doc tambahkan-dokumen-di sini %changelog. * Sel 28 Mei 2019 Harun Kili.
Mari kita jelaskan secara singkat parameter default di a .spec
mengajukan:
rpm --changelog -q
.Sekarang edit .spec
file dan buat perubahan seperti yang ditunjukkan.
Nama: halo. Versi: 2.10. Rilis: 1%{?dist} Ringkasan: Program "Hello World" dari Lisensi GNU: GPLv3+ URL: http://ftp.gnu.org/gnu/%{name} Sumber0: http://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz BuildRequires: gettext Membutuhkan (posting): info. Membutuhkan (preun): info %description Paket program "Hello World" %prep. %setup otomatis %build. %konfigurasi. buat %{make_build} %instal. %make_instal. %find_lang %{name} rm -f %{buildroot}/%{_infodir}/dir %post. /sbin/install-info %{_infodir}/%{name}.info %{_infodir}/dir ||: %preun. jika [ $1 = 0 ]; kemudian. /sbin/install-info --delete %{_infodir}/%{name}.info %{_infodir}/dir ||: fi %files -f %{name}.lang. %{_mandir}/man1/halo.1.* %{_infodir}/hello.info.* %{_bindir}/hello %doc PENULIS ChangeLog BERITA README TERIMA KASIH TODO. %lisensi MENYALIN %log perubahan. * Sel 28 Mei 2019 Harun Kili.
Anda akan melihat bahwa kami telah menggunakan beberapa parameter baru dalam file di atas yang belum dijelaskan. Ini disebut makro, digunakan untuk membangun pemanggilan sistem yang ditentukan oleh RPM untuk menyetel jalur penginstalan untuk paket. Oleh karena itu, biasanya lebih baik untuk tidak membuat hard-code jalur ini dalam file spesifikasi, tetapi gunakan makro yang sama untuk konsistensi.
Berikut ini adalah makro RPM build dan direktori beserta definisi dan nilai defaultnya:
Perhatikan bahwa Anda dapat menemukan nilai untuk ini makro dalam /usr/lib/rpm/platform/*/macros atau merujuk ke Panduan Pengemasan: RPM Macros.
Untuk membangun paket sumber, biner, dan debugging, jalankan perintah rpmbuild berikut.
$ rpmbuild -ba hello.spec.
Setelah proses build, RPM sumber dan RPM biner akan dibuat di ../SRPMS/
dan ../RPMS/
direktori masing-masing. Anda dapat menggunakan program rpmlint untuk memeriksa dan memastikan bahwa file spesifikasi dan file RPM yang dibuat sesuai dengan aturan desain RPM:
$ rpmlint hello.spec ../SRPMS/hello* ../RPMS/*/hello*
Jika ada kesalahan seperti yang ditunjukkan pada tangkapan layar di atas, perbaiki sebelum Anda dapat melanjutkan.
Terakhir namun tidak kalah pentingnya, gunakan program tiruan untuk memeriksa apakah pembuatan paket akan berhasil di lingkungan pembangunan terbatas Fedora.
$ mock --verbose ../SRPMS/hello-2.10-1.fc29.src.rpm.
Untuk informasi lebih lanjut, lihat dokumentasi Fedora: Membuat Paket RPM.
Itu saja! Pada artikel ini, kami telah menjelaskan cara meningkatkan sistem Fedora Anda untuk membuat paket perangkat lunak sumber dan biner yang sederhana. Kami juga menunjukkan cara membuat paket GUN Hello Word RPM. Gunakan formulir umpan balik di bawah ini untuk menghubungi kami jika ada pertanyaan atau komentar.