Stworzenie paczki RPM z użyciem rpmbuild i pliku SPEC

Pisałem już o kompilacji programu prips, który wykorzystuję do generowania listy adresów IP z adresu sieci i maski.
Ostatnim razem opisałem jego kompilację, dziś bazując na tej operacji utworzę paczkę RPM.

Paczki tworzy się za pomocą aplikacji rpmbuild, która jest osiągalna w repozytoriach CentOS/RHEL 6 jako rpm-build, instaluję ją

yum -y install rpm-build

Po zainstalowaniu rpmbuild będę potrzebował drzewa katalogów, które jest niezbędne do utworzenia paczki z użyciem rpmbuild-a. Aby nie tworzyć katalogów ręcznie, przechodzę do katalogu domowego (wykonuję to jako root), i tworzę plik spec.spec a następnie wykonuję na pliku polecenie

rpmbuild -bb spec.spec

I chociaż spec.spec jest pusty, a rpmbuild wyrzuci błąd iż plik nie wygląda na plik zawierające dane specyfikujące pakiet, to zostało utworzone drzewo katalogów. Sam plik spec.spec usuwam

rm -f spec.spec

A utworzę nowy, o nazwie projektu, jaki chcę spakować w pakiet RPM: prips-0.9.9

touch /root/rpmbuild/SPECS/prips-0.9.9.spec

Jego zawartość powinna wyglądać następująco

Name: prips
Summary: IP adresses lister from range
Version: 0.9.9
Release: 0.9
License: GPL
Source: prips-0.9.9.tar.gz
Packager: Przemyslaw Tarnawski
%description
An application can list ip addresses from range
%prep
%setup
%build
make
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/local/bin
install -s -m 755 prips $RPM_BUILD_ROOT/usr/local/bin/prips
%files
/usr/local/bin/prips
%clean
rm -rf $RPM_BUILD_ROOT
make clean

Do katalogu SOURCES pobieramy źródło progamu prips:

wget http://devel.ringlet.net/sysutils/prips/prips-0.9.9.tar.gz -O /root/rpmbuild/SOURCES/prips-0.9.9.tar.gz

Aby w końcu utworzyć paczkę poleceniem rpmbuild -bb (gdzie bb to przełącznik, którym wybieramy opcję utworzenia wyłącznie paczki zawierającej binaria).

rpmbuild -bb /root/rpmbuild/SPECS/prips-0.9.9.spec

Sprawdzam output z budowania paczki, u mnie wszystko przeszło bezbłędnie. Paczka została utworzona w lokalizacji /root/rpmbuild/RPMS/x86_64/prips-0.9.9-0.9.x86_64.rpm, mogę ją teraz testowo zainstalować i usunąć

rpm -i /root/rpmbuild/RPMS/x86_64/prips-0.9.9-0.9.x86_64.rpm
rpm -e prips