RPM Paketleme Sanatı: Fedora İçin Basit ve Etkili RPM Paketleri Oluşturmanın Rehberi
RPM, Fedora ve diğer RPM tabanlı dağıtımların (Red Hat, CentOS, OpenSUSE vs.) yazılımları yönetmek için kullandığı bir paket yönetim sistemidir. Bu blog yazısında, Fedora için bir RPM paketi nasıl oluşturulacağına dair bir örnekle detayları anlatacağım.
RPM Paket Oluşturma
Öncelikle, bir RPM paket oluşturmanın dört temel aşaması vardır:
- RPM Paketleme Ortamını Hazırlama
- SPECS Dosyasını Oluşturma
- Kaynak Dosyalarını ve Yama Dosyalarını Toplama
- RPM Paketini Oluşturma
1. RPM Paketleme Ortamını Hazırlama
Fedora üzerinde RPM paketleri oluşturabilmek için öncelikle rpmdevtools
ve rpmbuild
paketlerini kurmanız gerekmektedir. Bu paketleri yüklemek için terminalde aşağıdaki komutu çalıştırabilirsiniz:
sudo dnf install rpmdevtools rpmbuild
Ardından, kullanıcılar için RPM paketleme ortamını ayarlamak için rpmdev-setuptree
komutunu kullanabiliriz:
rpmdev-setuptree
Bu komut, ev dizininizde (~/
) bir rpmbuild dizini oluşturacak ve içerisine gerekli alt dizinleri (BUILD, RPMS, SOURCES, SPECS, SRPMS) ekleyecektir.
2. SPECS Dosyasını Oluşturma
RPM paketi oluştururken, RPM yapım işlemini kontrol eden bir .spec dosyasına ihtiyacınız olacaktır. Bu dosya paketin adı, versiyonu, lisansı ve diğer meta verileri ile birlikte kurulum ve derleme komutlarını içerir.
rpmdev-newspec
komutunu kullanarak boş bir .spec dosyası oluşturabiliriz. Örneğin, helloworld
isimli bir programı paketlemek istiyorsak:
rpmdev-newspec ~/rpmbuild/SPECS/helloworld.spec
Daha sonra bu dosyayı bir metin editörü ile açıp paketlemek istediğiniz yazılım ile ilgili bilgileri doldurmanız gerekmektedir. Örneğin:
Name: helloworld
Version: 1.0
Release: 1%{?dist}
Summary: Simple Hello World program
License: GPL
URL: http://www.example.com/helloworld
Source0: http://www.example.com/helloworld-%{version}.tar.gz
BuildRequires: gcc
%description
This is a simple Hello World program written in C.
%prep
%setup -q
%build
gcc -o helloworld helloworld.c
%install
install -d %{buildroot}/usr/bin
install -m 755 helloworld %{buildroot}/usr/bin
%files
%doc README
/usr/bin/helloworld
3. Kaynak Dosyalarını ve Yama Dosyalarını Toplama
Kaynak kodları ve yama dosyaları SOURCES
dizinine konulmalıdır. Bu örnekte, helloworld-1.0.tar.gz
kaynak dosyasını http://www.example.com/helloworld-1.0.tar.gz
adresinden indirip ~/rpmbuild/SOURCES/
dizinine kopyalamalıyız.
4. RPM Paketini Oluşturma
Artık .spec dosyamız ve kaynak dosyamız olduğuna göre RPM paketini oluşturabiliriz. Bunun için aşağıdaki komutu kullanabiliriz:
rpmbuild -ba ~/rpmbuild/SPECS/helloworld.spec
Eğer her şey yolunda gittiyse, ~/rpmbuild/RPMS/
ve ~/rpmbuild/SRPMS/
dizinlerinde RPM paketlerini bulabilirsiniz.
Bu, Fedora için bir RPM paketi oluşturmanın temel bir örneğidir. Gerçekte, bir paket oluşturmak daha karmaşık olabilir ve bazen daha fazla konfigürasyon gerektirebilir. Ancak bu örnek, RPM paketi oluşturmanın genel sürecini anlamanıza yardımcı olmalıdır.