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