RPM , Awalnya adalah Pengelola Paket Topi Merah , adalah sistem manajemen paket sumber terbuka dan gratis yang dibuat untuk digunakan di Red Hat Linux. Namun, RPM digunakan di banyak distribusi Linux seperti CentOS , Fedora , Oracle Linux . Paket RPM dilengkapi dengan ekstensi .rpm
.
Terkadang Anda dapat mengakses file kode sumber tetapi Anda mungkin tidak memiliki paket RPM yang tersedia untuk diinstal di sistem Anda. Dalam skenario ini, Anda dapat mengompilasi kode sumber dan menginstal aplikasi, atau membuat paket RPM dari kode sumber dan menggunakan file RPM untuk menginstal aplikasi di sistem Anda.
Dalam artikel ini, kita akan mempelajari cara membuat paket RPM dari kode sumber aplikasi.
Instal Paket rpm-build
Untuk membangun paket rpm, Anda perlu menginstal rpmbuild paket dengan perintah berikut.
$ sudo yum install rpm-build
Setelah instalasi, verifikasi versi rpmbuild menggunakan perintah berikut:
$ sudo rpmbuild --version
Anda akan mendapatkan output seperti:
Buat Struktur Direktori
Anda mungkin perlu membuat direktori yang diperlukan rpmbuild untuk menyimpan file sumber Anda di direktori yang benar sebelum rpmbuild mengeluhkan direktori yang hilang, lebih baik buat direktori ini secara manual.
$ sudo mkdir {~/rpmbuild,~/rpmbuild/BUILD,~/rpmbuild/BUILDROOT,~/rpmbuild/RPMS,~/rpmbuild/SOURCES,~/rpmbuild/SPECS,~/rpmbuild/SRPMS}
Anda dapat memverifikasi struktur direktori menggunakan perintah pohon.
$ tree rpmbuild/
Unduh File Tar Sumber
Sekarang Anda perlu mengunduh file kode sumber untuk paket yang ingin Anda buat file rpm. Langkah-langkahnya mirip dengan membangun RPM untuk aplikasi lain. Anda perlu mendapatkan kode sumber aplikasi untuk RPM yang akan Anda buat.
Navigasikan ke “SUMBER ” dan unduh kode sumber aplikasi. Dalam contoh ini, saya akan membuat sampel saya sendiri untuk membuat file rpm.
$ cd rpmbuild/SOURCES $ sudo wget https://github.com/apache/httpd/archive/2.4.28.tar.gz%20-O%20httpd-2..4.28.tar.gz
Buat File SPEC
Dalam SPEC file, instruksi dan informasi yang diperlukan untuk membangun paket rpm telah ditentukan. SPEC file memiliki ekstensi file .spec
dan berisi dependensi build dan dependensi runtime. Ketergantungan build adalah perangkat lunak yang diperlukan untuk mengkompilasi program yang kita inginkan untuk membuat paket RPM dan dependensi build adalah library yang diperlukan agar program dapat berjalan dengan benar.
File SPEC terdiri dari dua bagian makro dan mereka adalah Pembukaan dan Tubuh . Di bagian makro ini, instruksi yang berbeda dapat ditentukan.
Pembukaan bagian mungkin berisi petunjuk berikut:
Name: Name of the package Version: Version of the package URL: The URL of the application Release: Release version of the package License: License used for the package Requires: Dependencies needed to run the software
Tubuh bagian berisi petunjuk berikut:
%description: Description of the software package %prep: Command needed to prepare source code. %files: List of the files received from the package
Sekarang, buat file SPEC dan simpan di direktori rpmbuild/SPECS . Dalam contoh ini, saya telah membuat test-application.spec contoh file untuk membuat test-application-1.0 paket rpm.
$ cd rpmbuild $ cd SPECS $ sudo vi test-application.spec
Tempel konten berikut dan ubah sesuai kebutuhan Anda.
Name: test-application Version: 1.0 Release: 1%{?dist} Summary: Test application script Group: Miscellaneous License: License text Source0: test-application-1.0.tar.gz BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %description This is test application %prep %setup -q %build # %configure # make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT # make install DESTDIR=$RPM_BUILD_ROOT install -d -m 0755 $RPM_BUILD_ROOT/opt/test-application install -m 0755 HelloWorld.sh $RPM_BUILD_ROOT/opt/test-application/test-application-1.0.sh %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) # %doc /opt/test-application/test-application-1.0.sh %changelog
Simpan file dan keluar.
Membangun dan Menginstal Paket RPM
Setelah SPEC file telah dibuat, buat paket rpm dengan rpmbuild perintah.
$ sudo rpmbuild -ba rpmbuild/SPECS/test-application.spec
Dengan asumsi bahwa Anda tidak menemukan kesalahan apa pun, file rpm akan dibuat di RPMS/noarch direktori siap untuk instalasi. Untuk menginstal file RPM yang dibuat, jalankan perintah berikut.
$ rpm -ivh rpmbuild/RPMS/noarch/test-application-1.0-1.el7.noarch.rpm
Sekarang untuk memverifikasi instalasi RPM Anda, jalankan perintah berikut.
$ rpm -qa | grep test-application-1.0
Untuk menghapus paket RPM, jalankan perintah berikut:
$ yum remove <rpm-package-name>
Dalam contoh ini, saya telah menghapus test-application-1.0 paket sebagai:
$ sudo yum remove test-application-1.0-1.el7.noarch
Kesimpulan
Pada artikel ini, Anda telah belajar tentang cara membuat paket RPM menggunakan tarball. Selain itu, Anda mendapatkan ide tentang membuat file SPEC, menginstal paket RPM, dan menghapus paket RPM yang diinstal.