MAKEPKG(8)

NAAM
makepkg - Maak Slackware pakketten.

SYNOPSIS
makepkg [ -l, --linkadd y|n ] [ -c, --chown y|n ] pakketnaam

BESCHRIJVING
makepkg maakt een nieuw Slackware compatibel pakket. Het pakket wordt gemaakt door gebruik te maken van de inhoud van de huidige directory en alle subdirectories. Symbolische links worden omgezet naar script-code om weer opnieuw gemaakt te worden wanneer het pakket wordt geïnstalleerd. Deze code wordt toegevoegd aan het primaire installatiescript (install/doinst.sh ). Als dat script niet bestaat wordt dit aangemaakt met deze inhoud. Het pakket zal worden geschreven naar het bestand pakketnaam wat de volledige naam moet zijn inclusief de extensie. Deze is meestal .tgz, maar .tbz, .tlz, en .txz zijn ook mogelijk. De juiste compressietool (gzip, bzip2, lzma, of xz) moet ook op de machine zijn geïnstalleerd.

OPTIES

-l, --linkadd y|n
    Indien y, voeg alle gevonden symbolische links toe aan het installatiescript (doinst.sh) en verwijder ze. Dit is de aanbevolen actie. Zonder deze optie zal makepkg vragen wat te doen als symbolische links worden gevonden.

-p, --prepend
    Bij deze optie zal elke symbolische link die wordt toegevoegd aan doinst.sh vooraan het bestaande script worden bijgezet. Dit is nuttig voor pakketten die gedeelde libraries bevatten die als eerste gelinkt moeten worden omdat programma's die later in het doinst.sh script nodig hebben.

-c, --chown y|n
    Indien y, zal makepkg alle directory-permissies naar 755 en eigendom naar root:root terug zetten. In het algemeen zul je permissies en eigendommen voor jezelf al vastgesteld moeten hebben, dus vertrouwen op deze optie is nogal slordig. Standaard instelling is 'n'. Als deze optie niet wordt opgegeven zal makepkg erom vragen.

INSTALLATIESCRIPTS
Er worden 3 soorten installatiescripts ondersteund door het Slackware pakkettensysteem.

Het eerste is het
    primaire installatiescript. Dit bevindt zich in de subdirectory ./install en moet doinst.sh heten om als zodanig herkend te worden. Dit (en andere installatiescripts) moet geschreven zijn met de basis Bourne shell syntaxis zoals herkend door de ash shell omdat dit de shell is die wordt gebruikt om het script uit te voeren vanaf een Slackware installatiediskette. Een veel gemaakte fout is het gebruik van bash syntax-extensies, omdat het script correct werkt wanneer het wordt uitgevoerd vanaf harddisk maar zal falen vanaf diskette. Als het pakket voor eigen gebruik is maakt dat niet uit maar wees voorzichtig wanneer je het pakket wilt delen met anderen. Het primaire installatiescript wordt uitgevoerd direct nadat het pakket is geïnstalleerd met installpkg, pkgtool, of setup.

Het tweede soort script is het
    configuratie script. Dit bevindt zich in subdirectory ./var/log/setup en de naam hiervan moet beginnen met setup. om als zodanig te worden herkend. Een voorbeeld is het tijdzone-script: /var/log/setup/setup.timeconfig. Deze scripts worden uitgevoerd tijdens de CONFIGURE fase van setup, en vanaf dan iedere keer dat de gebruiker de CONFIGURE optie van setup uitvoert. Typisch zal de gebruiker deze fase van setup doorlopen nadat alle pakketten zijn geïnstalleerd. Alles wat interactief moet zijn gaat in een van deze scripts om het stoppen van pakketteninstallatie tijdens setup te voorkomen.

Het derde soort script is het
    onlyonce script. Zoals de naam al suggereert worden deze slechts één keer uitgevoerd nadat het pakket is geïnstalleerd, in tegenstelling tot het standaard configuratie script. Deze scripts bevinden zich ook in de ./var/log/setup directory. Hun naam moet beginnen met setup., maar moet ook de string onlyonce bevatten. Een voorbeeld zou een script kunnen zijn met de naam /var/log/setup/setup.onlyonce.testscript

PAKKETFORMAAT
makepkg gebruikt GNU tar plus GNU gzip om zijn pakketten te maken. Een eenvoudige manier om een pakket uit te pakken (zonder het installatiescript uit te voeren natuurlijk) is met een commando zoals:

explodepkg pakket.tgz

Of met zoiets als:

gzip -dc pakket.tgz | tar xvvf -

AUTEUR
Patrick J. Volkerding <volkerdi@slackware.com>

ZIE OOK
installpkg(8), explodepkg(8), removepkg(8), pkgtool(8), upgradepkg(8)