Het maken van een RPM package
vooraf
Er zijn allerlei goede redenen te verzinnen waarom een applicatie o.i.d. in plaats vanaf source te complileren en te installeren de installatie te doen via het packagemanagement systeem.
- van alle geinstalleerde software is bekend welke versie geinstalleerd is
- eventuele afhankelijkheden van andere software wordt inzichtelijk
- mogelijkheid tot rollback indien na een update een applicatie o.i.d. niet of niet goed functioneert
- sommige support contracten vereisen het gebruik van package-management
Een RPM package wordt bij voorkeur niet gemaakt indien met ingelogd is als root maar als gewone gebruiker
Voordat een RPM gemaakt kan worden zijn een aantal eenmalige stappen nodig:
- de rpm-build software
- de ontwikkelingomgeving
- een rpm-build directory structuur
- een GPG key
1. de rpm-build software
Het installeren van de rpm-build software is eenvoudig: yum install rpm-build
2. de ontwikkelomgeving
Afhankelijk van welke ontwikkelomgeving er nodig is om van de broncode (source) een executable te maken zijn onder andere de volgende pakketten nodig: gcc, make, automake, cpp enz. Raadpleeg hiervoor de documentatie van het desbetreffende programma om te zien wat er evt. nog meer nodig is.
3. een rpm-build directory structuur
Zoals al eerder aangegeven is het raadzaam om als gewone gebruiker en niet als root RPM’s te maken. Hiervoor is een rpm-build directory structuur nodig zoals volgt:
~/rpmbuild/BUILD ~/rpmbuild/SOURCES ~/rpmbuild/SRPMS ~/rpmbuild/RPMS ~/rpmbuild/SPECS
Zodra deze directory structuur is aangemaakt wordt deze in de configuratie van rpm-build aangegeven. Dit gebeurd in ~/.rpmmacros
met behulp van de topdir parameter:
%_topdir /home/peter/rpmbuild
In dit voorbeeld staat de rpm directory structuur dus in de homedirectory van de user peter.
4. de GPG key
Om RPM’s te kunnen distruburern worden deze gesigned, voorzien van een digitale handtekening, zodat de RPMS’s als betrouwbaar kunenn worden gezien. Op het systeem waarop ze geinstellaard worden, wordt de publieke GPG sleutel (public key) geimporteerd en daardoor worden RPM’s die voorzien van een handtekening probleemloos geinstalleerd.
Aanmaken van een GPG sleutelpaar (keypair):
gpg --gen-key
Kies voor de standaardoptie (1) DSA and Elgmal, kies 1024 als grootte en kies (0) om een GPG sleutelpaar aan te maken wat niet verloopt. Vul de rest van de vragen in en wacht totdat het sleutelpaar is aangemaakt.
Bekijk het aangemaakte sleutelpaar door:
gpg --list-keys --fingerprint
Exporteer nu de publieke sleutel door in (dit voorbeeld naar het bestand gpg-public-key):
ggp --export -a {UID veld} > gpg-public-key
De aangemaakte GPG sleutel dient nog te worden toegevoegd aan het configuratiebestand ~/.rpmmacros van rpm-build:
%_gpg_name {UID veld}