Hobbynet repository: Difference between revisions

From Hobbynet Admin Wiki
Jump to navigation Jump to search
(Layout aanpassingen)
Line 1: Line 1:
= doel =
= doel =
Het makkelijk verspreiden van de hobbynet instellingen door middel van deb pakkages
Het makkelijk verspreiden van de hobbynet instellingen door middel van deb packages


= waar =
= waar =
onder www.hobby.nl draait ons repository alles staat in subdir REPO met onder de volgende verdeling
Onder www.hobby.nl draait onze repository. Alles staat in subdir REPO met de volgende onderverdeling
* src (hier bevinden zich de bron bestanden
* src<br>(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 '''
* pool<br>(hier bevinden zich de deb files.<br>Deze staan gecategoriseerd in contrib / dists / main / non-free<br>'''Bijna al onze packages staan in main '''
* dists ( hier worden de indexen Pakkage files voor ubuntu neer gezet)
* dists<br>(hier worden de index en Package 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)
Bewerken van de repostory doen we op '''backup2bit''' ( dit is enige server die bij de benodigde bestanden kan en alle development tools heeft, dit wil je niet op 1 van de storage servers doen).


= hoe =
= hoe =
== file structuur deb file ==
== file structuur deb file ==
Dit is file structuur waar aan een standaard moet voldoen
Dit is de file structuur waar aan een standaard moet voldoen
<pre>
<pre>
|-- debian
|-- debian
Line 32: Line 32:
</pre>
</pre>
=== conffiles ===
=== conffiles ===
In deze bestand staat lijst met configuratie files
In dit bestand staat de lijst met configuratie files
=== control ===
=== 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:
In deze file staat aangeven wat de pakket naam is, wat de versie is, in welke sectie hoort hij thuis, voor welke proccesor is deze, waar is hij van afhankelijk en tenslotte de omschrijving van het pakket.  
 
Een control file ziet er als volgt uit:
<pre>
<pre>
Package: hobby-install
Package: hobby-install
Line 43: Line 45:
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
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>
Maintainer: Bas van den Dikkenberg <bas@hobby.nl>
Description: De hobbynet-install pakkage
Description: De hobbynet-install package
  Dit pakket zorgt dat server conform hobbynet standaard wordt geinstalleerd
  Dit pakket zorgt dat server conform hobbynet standaard wordt geinstalleerd
</pre>
</pre>
=== md5sums ===
=== 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 :
Dit bestand bevat de md5sums van alle files met uitzondering van de DEBIAN directory.
 
Deze output kan in 1x worden gegenereerd met het script make-md5sums :
<pre>
<pre>
b4bc6f4600bed8fff8522b91cc1a7258  usr/share/doc/hobby-install/changelog
b4bc6f4600bed8fff8522b91cc1a7258  usr/share/doc/hobby-install/changelog
Line 53: Line 57:
</pre>
</pre>
=== preinst ===
=== preinst ===
Deze file bevat een script naar keuze die voor de installatie wordt uit gevoerd.
Deze file bevat een script naar keuze die voor de installatie wordt uitgevoerd.
=== prerm ===
=== prerm ===
Deze file bevat een script naar keuze die voor de installatie wordt uit gevoerd.
Deze file bevat een script naar keuze die voor de installatie wordt uitgevoerd.
=== postinst ===
=== postinst ===
Deze file bevat een script naar keuze die na de installatie wordt uit gevoerd.
Deze file bevat een script naar keuze die na de installatie wordt uitgevoerd.
=== postrm ====
=== postrm ===
Deze file bevat een script naar keuze die na de deinstallatie wordt uit gevoerd.
Deze file bevat een script naar keuze die na de deinstallatie wordt uitgevoerd.
=== changelog ===
=== changelog ===
Deze file moet de change log bevatten van het pakket deze file moet gecomprimeerd worden gzip -9
Deze file moet de change log bevatten van het pakket deze file moet gecomprimeerd worden (gzip -9)
=== copyright ===
=== copyright ===
een pakket moet verplicht copyrightfile bevatten de onze ziet er zo uit:
Een pakket moet verplicht een copyrightfile bevatten. De onze ziet er zo uit:
<pre>
<pre>
Copyright: HCC!hobbynet beheer@hobby.nl
Copyright: HCC!hobbynet beheer@hobby.nl
Line 80: Line 84:
</pre>
</pre>
=== eigen bestanden ===
=== 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.<br>
In de directory debian (kleine letters) kan je de tree neerzetten zoals hij gezien vanaf de root op de server geplaatst moeten worden.<br>
''' Let op wil je configuratie files overschrijven moet je eerst op andere locatie neer zetten bijvoorbeeld /tmp en daarna moven met postinst script'''
'''Let op:''' Wil je configuratie files overschrijven dan moet je die '''eerst''' op een andere locatie neer zetten (bijvoorbeeld /tmp) en '''daarna''' moven met het postinst script


== scripts ==
== scripts ==
=== maakdeb ===
=== maakdeb ===
Dit script voer je uit van de root vanuit src directory van pakkage bijvoorbeeld /disk/site/hobbynet/www/repo/src/hobby-install<br>
Dit script voer je uit van de root vanuit src directory van package, bijvoorbeeld /disk/site/hobbynet/www/repo/src/hobby-install<br>
Zorg er voor dat eerst make-md5sums heb gedraait.
Zorg er voor dat je eerst '''make-md5sums''' hebt gedraaid.
het script moet je met volgende syntax uitvoeren
 
Het script moet je met de volgende syntax uitvoeren
  root@backup2bit:/disk/site/hobbynet/www/repo/src/hobby-install# maakdeb '''hobby-install'''
  root@backup2bit:/disk/site/hobbynet/www/repo/src/hobby-install# maakdeb '''hobby-install'''
  dpkg-deb: building package `hobby-install' in `hobby-install_all.deb'.
  dpkg-deb: building package `hobby-install' in `hobby-install_all.deb'.
  warning: lintian's authors do not recommend running it with root privileges!
  warning: lintian's authors do not recommend running it with root privileges!
  E: hobby-install: changelog-file-not-compressed changelog
  E: hobby-install: changelog-file-not-compressed changelog
  kopier naar main pool
  kopieer 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 het script, dan zie je hoe je het met de hand kan doen. Na het maken van het pakket wordt het door lintian gecontroleerd. De meldingen die genegeerd mogen worden worden door het script weg gelaten.


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, dan moet je dat achter het script typen, dus bijvoorbeeld '''maakdeb hobby-vmware non-free'''
Stel je maakt een non-free pakket moet dit achter script typpen dus bijvoorbeeld '''maakdeb hobby-vmware non-free'''


=== make-md5sums ===
=== 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 <br>
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<br>
De melding "Is a directory" mag genegeerd worden:
De melding "Is a directory" mag genegeerd worden:
<pre>
<pre>
Line 113: Line 119:


=== mkpackages ===
=== mkpackages ===
mkpackages zorgt erg voor dat de index files in de dists directory wordt aan gemaakt op basis van de pool directory
mkpackages zorgt er voor dat de index files in de dists directory wordt aan gemaakt op basis van de pool directory

Revision as of 16:47, 8 December 2014

doel

Het makkelijk verspreiden van de hobbynet instellingen door middel van deb packages

waar

Onder www.hobby.nl draait onze repository. Alles staat in subdir REPO met de volgende onderverdeling

  • 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 packages staan in main
  • dists
    (hier worden de index en Package files voor ubuntu neer gezet)

Bewerken van de repostory doen we op backup2bit ( dit is enige server die bij de benodigde bestanden kan en alle development tools heeft, dit wil je niet op 1 van de storage servers doen).

hoe

file structuur deb file

Dit is de 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 dit bestand staat de lijst met configuratie files

control

In deze file staat aangeven wat de pakket naam is, wat de versie is, in welke sectie hoort hij thuis, voor welke proccesor is deze, waar is hij van afhankelijk en tenslotte de omschrijving van het 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 package
 Dit pakket zorgt dat server conform hobbynet standaard wordt geinstalleerd

md5sums

Dit bestand bevat de md5sums van alle files met uitzondering van de DEBIAN directory.

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 uitgevoerd.

prerm

Deze file bevat een script naar keuze die voor de installatie wordt uitgevoerd.

postinst

Deze file bevat een script naar keuze die na de installatie wordt uitgevoerd.

postrm

Deze file bevat een script naar keuze die na de deinstallatie wordt uitgevoerd.

changelog

Deze file moet de change log bevatten van het pakket deze file moet gecomprimeerd worden (gzip -9)

copyright

Een pakket moet verplicht een 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 je de tree neerzetten zoals hij gezien vanaf de root op de server geplaatst moeten worden.
Let op: Wil je configuratie files overschrijven dan moet je die eerst op een andere locatie neer zetten (bijvoorbeeld /tmp) en daarna moven met het postinst script

scripts

maakdeb

Dit script voer je uit van de root vanuit src directory van package, bijvoorbeeld /disk/site/hobbynet/www/repo/src/hobby-install
Zorg er voor dat je eerst make-md5sums hebt gedraaid.

Het script moet je met de 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
kopieer 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 het script, dan zie je hoe je het met de hand kan doen. Na het maken van het pakket wordt het door lintian gecontroleerd. De meldingen die genegeerd mogen worden worden door het script weg gelaten.

Stel je maakt een non-free pakket, dan moet je dat achter het script typen, 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 er voor dat de index files in de dists directory wordt aan gemaakt op basis van de pool directory