Hoe te creëren of RPM Package
Inleiding –
* “Rpmbuild” tool wordt gebruikt om zowel …
1) Binary Package ~ gebruikt om de software te installeren en scripts ondersteunen. Het bevat de bestanden die de aanvraag omvat, samen met eventuele aanvullende informatie die nodig is te installeren en te verwijderen.
2) Bron Pakket ~ bevat de oorspronkelijke gecomprimeerde tar-bestand van de broncode, patches en specificatie File.
* Wat is RPM & RPM Package Manager?
De RPM Package Manager (RPM) is een krachtige command line package management systeem kunnen installeren, verwijderen, verificatie, opvragen en bijwerken van software pakketten.
RPM package bestaat uit een archief van bestanden en meta-data gebruikt voor het installeren en het archief bestanden te wissen. De meta-data bevat helper scripts, file attributen en beschrijvende informatie over het pakket.
* Om RPM-pakket moet u drie dingen specificeren ~
1) Bron van toepassing – in ieder geval, moet je niet wijzigen van de bronnen die gebruikt worden in het pakket bouwproces.
2) Patches – RPM geeft je de mogelijkheid om automatisch patches van toepassing zijn. De patch verhelpt een probleem specifiek voor het doelsysteem. Dit kan onder meer veranderende makefiles om de applicatie te installeren in de juiste mappen, of cross-platform oplossing van conflicten. Patches creëren voor het milieu vereist voor een goede compilatie.
3) Specificatie Bestand – De specificatie bestand wordt in het hart van RPM pakket bouwproces. Het bevat informatie die nodig is door RPM aan het pakket te bouwen, evenals instructies RPM vertellen hoe het te bouwen. De specificatie bestand dicteert ook exact welke bestanden zijn een onderdeel van het pakket, en waar ze moeten worden geïnstalleerd.
** Specificatie bestand ~ is onderverdeeld in 8 afdelingen zoals hieronder weergegeven
a) Preambule ~ bevat informatie die wordt weergegeven wanneer gebruikers verzoek informatie over het pakket. Dit zou ook een beschrijving van de functie van het pakket, het versienummer van de software, enz.
b) Bereiding ~ waar de feitelijke werkzaamheden van de bouw van een pakket gestart. Zoals de naam al zegt, dit gedeelte is waar de noodzakelijke voorbereidingen worden voorafgaand aan de daadwerkelijke bouw van de software gemaakt. In het algemeen, als er iets moet worden gedaan om de bronnen voorafgaand aan de opbouw van de software, moet het gebeuren in de voorbereiding sectie. De inhoud van deze afdeling zijn een gewone shell script. Echter RPM bieden twee macro’s om het leven gemakkelijker te maken. Een macro kan uitpakken een gecomprimeerd tar-bestand en cd in de bron directory. De andere macro geldt gemakkelijk patches om de uitgepakte bronnen.
c) Bouw ~ Dit deel bestaat uit een shell-script. Het wordt gebruikt om wat opdrachten uit te voeren zijn nodig om daadwerkelijk samen te stellen de bronnen zoals enkele make commando, of meer complexe als het proces bouwen vereist. Er zijn geen macro’s beschikbaar in deze sectie.
d) Installeer ~ Dit deel bevat ook een shell script, de installatie sectie wordt gebruikt om de commando’s nodig zijn om daadwerkelijk installeren van de software uit te voeren.
e) installeren en verwijderen Scripts ~ Het bestaat uit scripts die worden uitgevoerd, op het systeem van de gebruiker, wanneer het pakket daadwerkelijk is geïnstalleerd of verwijderd. RPM kan uitvoeren van een script pre / post installatie / verwijdering van de verpakking.
f) Controleer Script ~ script dat wordt uitgevoerd op het systeem van de gebruiker. Het wordt uitgevoerd als RPM controleert correcte installatie van het pakket.
g) schoon gedeelte ~ script dat kan dingen schoon te maken na het bouwen. Dit script wordt zelden gebruikt, omdat RPM doorgaans een goede baan heeft van de clean-up in de meeste omgevingen te bouwen.
h) Bestand Lijst ~ bestaat uit een lijst van bestanden die zal bestaan uit het pakket. Daarnaast kunnen een aantal macro’s worden gebruikt om de controle bestandskenmerken wanneer geïnstalleerd, alsmede om aan te geven welke bestanden zijn documentatie, en welke configuratie-informatie bevatten. Het bestand lijst is erg belangrijk.
Eis *** RPM’s voor milieu bouwen ~
A] RPM vereist een set van mappen het uitvoeren van de te bouwen. Hoewel de locaties van de mappen ‘en namen kunnen worden gewijzigd. Standaard lay-out is hieronder weergegeven —
root @ arunsb: ~ # ls-l / usr / src / redhat /
drwxr-xr-x 2 root root 4096 25 augustus 2007 SOURCES => Bevat de oorspronkelijke bronnen, patches en bestanden icon
drwxr-xr-x 2 root root 4096 25 augustus 2007 SPECS => Bevat de specificatie bestanden
drwxr-xr-x 2 root root 4096 25 augustus 2007 BUILD => directory waarin de bronnen zijn uitgepakt, & software is gebouwd
drwxr-xr-x 8 root root 4096 28 mei 2008 RPMS => Bevat de binary bestanden die door het bouwproces
drwxr-xr-x 2 root root 4096 25 augustus 2007 SRPMS => Bevat de broncode bestanden die door het bouwproces
root @ arunsb: ~ #
B] Need exporteren paar globale variabelen gebruikt door RPM —
root @ arunsb: ~ # export RPM_BUILD_DIR = / usr / src / redhat / build /
root @ arunsb: ~ # export RPM_SOURCE_DIR = / usr / src / redhat / SOURCES /
Stap 1] Maak Specification (spec) File ~
root @ arunsb: ~ # head-n 50 / usr / src / redhat / SPECS / openlsm.spec
# Authority: Arun Bagul
# RPM_BUILD_DIR / usr / src / redhat / build /
# RPM_SOURCE_DIR / usr / src / redhat / SOURCES /
% define MY_PREFIX / usr / local / openlsm /
# # Section-Preambule
Naam: openlsm
Versie: 0.99
Verkoper: IndianGNU.org & openlsm
Release: R45
Groep: Systeem Milieu / Daemons
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Samenvatting: openlsm Admin Server
Licentie: GPL
% description
openlsm Admin Server is gratis en open source web-based control panel voor Linux, Unix-systemen.
# # Voorbereiding Section –
% prep
rm-rf $ (RPM_BUILD_DIR) / openlsm-0,99-R45 /
tar xvfz RPM_SOURCE_DIR $ () / openlsm-0,99-r45.tar.gz-C $ () RPM_BUILD_DIR
# # Section-Build
% build
cd ./openlsm-0.99-r45 /
. / configure-prefix = / usr / local / openlsm-with-mysql = / usr / bin / mysql_config-enable-interne-pcre-met-geoip = / usr-with-ldap = / usr-enable-trace
maken
# # Install Section –
% installeren
cd ./openlsm-0.99-r45 /
make install
# # Section-Files
% files
/ usr / local / openlsm
/ usr / local / openlsm / etc / openlsm / openlsm.conf
/ usr / local / openlsm / etc / openlsm / openlsm.conf.perf_sample
/ usr / local / openlsm / etc / openlsm / ssl /
/ usr / local / openlsm / bin / openlsm-config
….
… ..
… .. lijst met bestanden geïnstalleerd door pkg
root @ arunsb: ~ #
* Hoe creëer je de File List?
Het creëren van het bestand lijst is handmatig proces. Wat ik deed is nam ik de lijst met bestanden van mijn handleiding geïnstalleerd prefix directory met commando vinden, zoals hieronder weergegeven …
root @ arunsb: ~ # find / usr / local / openlsm /-type f-of-type d
Stap 2] Vanaf de Bouw ~
root @ arunsb: ~ # cd / usr / src / redhat / SPECS
root @ arunsb: / usr / src / redhat / SPECS # ls-l openlsm.spec
-rw-r-r-1 root root 12938 2 december 17:21 openlsm.spec
root @ arunsb: / usr / src / redhat / SPECS #
root @ arunsb: / usr / src / redhat / SPECS # rpmbuild-ba openlsm.spec
…
….
… ..
Controle voor onverpakte file (s): / usr / lib / rpm / check-bestanden BuildRoot% ()
Schreef: / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
Schreef: / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
root @ arunsb: / usr / src / redhat / SPECS # echo $?
0
root @ arunsb: / usr / src / redhat / SPECS # ls-l / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
-rw-r-r-1 root root 3206 2 december 17:50 / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
root @ arunsb: / usr / src / redhat / SPECS # ls-l / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
-rw-r-r-1 root root 3052868 2 december 17:50 / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
root @ arunsb: / usr / src / redhat / SPECS #
* Bron en binair pakket gemaakt!
** Laten we eens kijken wat er gebeurd is in “/ usr / src / redhat /” directory
root @ arunsb: / usr / src / redhat # pwd
/ usr / src / redhat
root @ arunsb: / usr / src / redhat # ls
BUILD RPMS BRONNEN SPECS SRPMS
root @ arunsb: / usr / src / redhat # ls BOUWEN /
openlsm-0,99-R45 <== Bron gewonnen hier als onderdeel van de instructies uit specificatie bestand dwz “openlsm.spec”
root @ arunsb: / usr / src / redhat # ls bronnen /
openlsm-0,99-r45.tar.gz <== originele ‘openlsm-0,99-source r45.tar.gz’ bestand gekopieerd door mij
root @ arunsb: / usr / src / redhat # ls RPMS /
athlon i386 i486 i586 i686 noarch
root @ arunsb: / usr / src / redhat # ls RPMS/i386 /
openlsm-0,99-r45.i386.rpm <== binaire RPM package aangemaakt!
root @ arunsb: / usr / src / redhat # ls SRPMS /
openlsm-0,99-r45.src.rpm <== Bron rpm package aangemaakt!
root @ arunsb: / usr / src / redhat #
Stap 3] Nu het pakket installeert en test het ~
root @ arunsb: / usr / src / redhat RPMS/i386/openlsm-0.99-r45.i386.rpm # cp / home / arunsb /
root @ arunsb: / usr / src / redhat # cd / home / arunsb /
root @ arunsb: ~ # ls
openlsm-0,99-r45.i386.rpm
root @ arunsb: ~ # rpm-ivh openlsm-0,99-r45.i386.rpm
Voorbereiden … ########################################### [100%]
1: openlsm ########################################### [100%]
root @ arunsb: ~ # ls / usr / local / openlsm /
bin contrib etc omvatten lib sbin scripts aandeel var
root @ arunsb: ~ #
** Het starten van de openlsm server ~
root @ arunsb: ~ # / usr / local / openlsm / contrib / openlsm-redhat start
* Vanaf openlsm admin server: openlsm
. [OK]
root @ arunsb: ~ #
root @ arunsb: ~ # / usr / local / openlsm / contrib / openlsm-redhat status
openlsm (pid 21607) is running …
root @ arunsb: ~ #
root @ arunsb: ~ # rpm-q openlsm-0,99-R45
openlsm-0,99-R45
root @ arunsb: ~ #
root @ arunsb: ~ # rpm-ql openlsm-0,99-R45
..
…
root @ arunsb: ~ # rpm-qiv openlsm-0,99-R45
Naam: openlsm Relocations: (niet verplaatsbare)
Versie: 0.99 Vendor: IndianGNU.org & openlsm
Release: R45 Build Date: Fri 02 december 2009 05:50:54 PM IST
Installeer Datum: wo 02 december 2009 06:06:23 PM IST Build Host: alongseveral-dr.eglbp.corp.yahoo.com
Groep: Systeem Milieu / Daemons Source RPM: openlsm-0,99-r45.src.rpm
Grootte: 14877918 Licentie: GPL
Handtekening: (none)
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Samenvatting: openlsm Admin Server
Beschrijving:
openlsm Admin Server is gratis en open source web-based control panel voor Linux, Unix-systemen.
root @ arunsb: ~ #
** OPMERKING ~ In dit artikel wordt geen informatie bevatten over hoe de micro’s te definiëren, hoe je documenten te kopiëren, om man pagina’s standaard locatie, hoe u goedkeuringen en eigendom enz. Ik zal de dekking van deze onderwerpen in het volgende artikel over RPM.
** Raadpleeg de engels artikel ~ http://www.indiangnu.org/2009/how-to-create-or-build-rpm-package/
Groeten,
Arun Bagul