In deze gevallen is het makelijk als he programatuur snel kunt instaleren zonder hem op nieuw te moeten instaleren. Daarbij moeten uiteraard ook gelijk eventuele andere systeemfiles aangepast worden om de programatuur goed te laten lopen. Het kan daarbij bijvoorbeeld gaan over het aanmaken van een account waaronder de software loopt.
Voor de rest kun je een helehoop eisen stellen aan het instaleren van de software en het beheer ervan na het beheren. Te denken valt aan:
Dit alles zorgt er voor dat je niet meer uit kunt met het versprieden
van de source in tgz files. Vandaar dat er tools gekomen zijn om
gecompileerde software als packages te verspreiden.
rpm
De manier waarop redhat zijn packeges inpakt zijn rpm files. Hiervan
bestaan 2 vormen. De binairie packages die je gelijk kunt instaleren
en de source packages. De binairie packeges kun je gelijk instaleren
mits je die van de goede archectatuur gebruikt.
De source packeges bevatten voor linux aangepaste patches en configuratie.
Hierdoor kun je ze via rpm --rebuild
in een keer hercompileren
zonder dat je zelf verder iets hoeft te doen.
Alternatieve
Als er iets is waar de verschillende linux distributies het niet
over eens zijn dan is het wel de manier waarop de packages ingepakt
moeten worden. Debian en slackware gebruiken hier hun eigen systemen
voor die volgens de aanhangers daarvan uiteraard suprieur zijn.
Ook de commerciele unix varianten maken gebruik van packages mechanisme.
Mijn inziens heeft hp ook een heel aardig package managment systeem.
Het aanmaken van een rpm file
Het plaatsen van de source
We gaan hier uit van het eerdere behandelde hello programma. Daarbij
is een makefile geschreven en die wil ik distruberen als een package
"mn-hello-1.0". Daartoe plaats ik hello.c en het
Makefile in de directorie "mn-hello-1.0". Deze
directorie pak ik in een tar file dat ik met gzip compress. Die file
plaats ik in de redhat source directorie.
Uiteraard wil ik mijn grandiouse loginname patch mee distribueren dus die plaats ik ook in de source directorie.
Summary: mn hello programma Name: mn-hello Version: 1.0 Release: 1 Copyright: None Group: Demo source: mn-hello-1.0.tar.gz Patch: mn-hello-1.0_patch %description Een hello programma analoog aan het algoritme van Kerningham en Richie als demo bij de lezing van tgz naar rpm. %prep %setup %patch -p1 %build make %install make install %files /usr/local/bin/helloHierin staat een hoop informatie over het package. Zodat mensen weten wat er in zit. Voor de rest staat er vermeld dat de source staat in mn-hello-1.0.tar.gz en de patch in mn-hello-1.0_patch. De %prep en %setup fase pakken de files uit. Er wordt vanuit gegaan dat dit uitgepakt is in mn-hello-1.0. Daarna voert hij in die directorie de patch uit. Vervolgens draait hij
make
en make install
.
Als dat allemaal goed gegaan is word /usr/local/bin/hello ingepakt in het binarie image. Tevens wordt er uitgezocht wat er nodig is om dit programma te draaien. Dat is in dit geval dus alleen libc.
rpm -ba mn-hello-1.0.spec
begint rpm
met het compileren van de source waarna hij het
binairie package en het
source image in pakt.