Hobbynet repository
doel
Het makkelijk verspreiden van de hobbynet instellingen door middel van deb pakkages
waar
onder www.hobby.nl draait ons repository alles staat in subdir REPO met onder de volgende verdeling
- src (hier bevinden zich de bron bestanden
- pool (hier bevinden zich de deb files deze staan gecategoriseerd in contrib dists main non-free bijna al onze pakkages staan in main
- dists ( hier worden de indexen Pakkage files voor ubuntu neer gezet)
Bewerken van Repostory doen we op backup2bit ( dit is enigste server die bij de benodigde bestanden kan en al dev tools hebt wil niet op 1 van de storage servers doen)
hoe
file structuur deb file
Dit is file structuur waar aan een standaard moet voldoen
|-- debian | |-- DEBIAN | | |-- conffiles (optioneel) | | |-- control (omschrijving van pakket) | | |-- md5sums (controle file) | | |-- postinst | | |-- preinst (optioneel) | | |-- postrm (mag leeg) | | `-- prerm (mag leeg) | `-- usr | `-- share | `-- doc | `-- hobby-pakketnaam | |-- changelog.gz (verplicht!) | `-- copyright (verplicht!) |-- debian-binary
conffiles
In deze bestand staat lijst met configuratie files
control
In deze file staat aangeven wat pakket naam is wat is versie in welke sectie hoort hij thuis en voor welke proccesor is deze en waar is hij afhankelijk en omschrijving van pakket. een control file ziet er als volgt uit:
Package: hobby-install Version: 1.3 Section: admin Priority: optional Architecture: all Depends: hobby-grub,linux-image-server,linux-headers-server,build-essential,hobby-insusers,hobby-ipv6,hobby-logging,hobby-mail,hobby-mc,hobby-nfs,hobby-nrpe,hobby-ntp,hobby-proxy,hobby-snmp,hobby-ssh,hobby-firewall Maintainer: Bas van den Dikkenberg <bas@hobby.nl> Description: De hobbynet-install pakkage Dit pakket zorgt dat server conform hobbynet standaard wordt geinstalleerd
md5sums
deze file bevat de md5sums van alle files met uitzondering van de DEBIAN directory een file ziet er als volgt uit deze output kan in 1x worden gegenereerd met het script make-md5sums :
b4bc6f4600bed8fff8522b91cc1a7258 usr/share/doc/hobby-install/changelog 638e612a375a44d66bcc6efa34992734 usr/share/doc/hobby-install/copyright
preinst
Deze file bevat een script naar keuze die voor de installatie wordt uit gevoerd.
prerm
Deze file bevat een script naar keuze die voor de installatie wordt uit gevoerd.
postinst
Deze file bevat een script naar keuze die na de installatie wordt uit gevoerd.
postrm =
Deze file bevat een script naar keuze die na de deinstallatie wordt uit gevoerd.
changelog
Deze file moet de change log bevatten van het pakket deze file moet gecomprimeerd worden gzip -9
copyright
een pakket moet verplicht copyrightfile bevatten de onze ziet er zo uit:
Copyright: HCC!hobbynet beheer@hobby.nl 2011-10-27 The entire code base may be distributed under the terms of the GNU General Public License (GPL), which appears immediately below. Alternatively, all of the source code as any code derived from that code may instead be distributed under the GNU Lesser General Public License (LGPL), at the choice of the distributor. The complete text of the LGPL appears at the bottom of this file. See /usr/share/common-licenses/(GPL|LGPL)
eigen bestanden
in de directory debian (kleine letters) kan de tree neer zetten zoals hij gezien vanaf de root op de server geplaatst moeten worden.
Let op wil je configuratie files overschrijven moet je eerst op andere locatie neer zetten bijvoorbeeld /tmp en daarna moven met postinst script
scripts
maakdeb
Dit script voer je uit van de root vanuit src directory van pakkage bijvoorbeeld /disk/site/hobbynet/www/repo/src/hobby-install
Zorg er voor dat eerst make-md5sums heb gedraait.
het script moet je met volgende syntax uitvoeren
root@backup2bit:/disk/site/hobbynet/www/repo/src/hobby-install# maakdeb hobby-install dpkg-deb: building package `hobby-install' in `hobby-install_all.deb'. warning: lintian's authors do not recommend running it with root privileges! E: hobby-install: changelog-file-not-compressed changelog kopier naar main pool
Je geeft dus aan hoe deb file moet gaan heten hij voegt zelf _all.deb toe aangezien de pakket die wij maken over het algemeen voor alle procesoren zijn, zo niet kijk in de source van script zie je hoe je met de hand kan doen. Na het maken van het pakket wordt het door lintian gecontrolleerd. de melding die genegeerd mogen worden worden door script weg gelaten. Stel je maakt een non-free pakket moet dit achter script typpen dus bijvoorbeeld maakdeb hobby-vmware non-free
make-md5sums
Dit script maakt de md5sum file dit moet uitgevoerd worden in de debian directory dus bv /disk/site/hobbynet/www/repo/src/hobby-install/debian
De melding "Is a directory" mag genegeerd worden:
root@backup2bit:/disk/site/hobbynet/www/repo/src/hobby-install/debian# make-md5sums removing old md5sum file md5sum: .: Is a directory md5sum: usr: Is a directory md5sum: usr/share: Is a directory md5sum: usr/share/doc: Is a directory md5sum: usr/share/doc/hobby-install: Is a directory removing temp files root@backup2bit:/disk/site/hobbynet/www/repo/src/hobby-install/debian#
mkpackages
mkpackages zorgt erg voor dat de index files in de dists directory wordt aan gemaakt op basis van de pool directory