Entwicklerhandbuch/Paketverwaltung

Aus Delixs
Zur Navigation springen Zur Suche springen

Hi Leute,

ich habe mich gestern Abend mit den drei Paketen dput, mini-dinstall und svn-buildpackage beschäftigt.

Einführung

svn-buildpackage

Mit svn-buildpackage hast du die Möglichkeit debian Pakete (die wir im SVN vohalten) für die entspr. Architekturen zu bauen. Wir möchten i386 und amd64 unterstützen. Es werden dabei binäre Debianpakete und source-Pakete erstellt.

Erstere erkennst du an der Dateiendung .deb, letztere bestehen aus zwei Dateien. Eine endet auf dsc, die andere auf tar.gz.

Die source-Pakete kannst du herunterladen, wenn du in deiner sources.list eine Zeile mit deb-src am Anfang stehen hast. Die binären Dateien kannst du herunterladen, wenn du deb als erstes Argument in der Zeile stehen hast.

svn-buildpackage erstellt ausserdem zu jedem Paket eine $PAKETNAME_$VERSION-$UNTERVERSION_$ARCHITEKTUR.changes Datei. (z.B. delixs-firstrun-config_0.1-58_all.deb) Mit dieser Datei kann dput arbeiten.

INFO: Zum Erstellen eines debian-Pakets sollten wir also nicht mehr fakeroot ./debian/rules binary nutzen. Hierbei wird weder die changes Datei noch die source-Dateien erstellt. Lasst uns also wie später unten beschrieben mit dem alias svn-b arbeiten.

dput

Dieses Programm ermöglicht es die binär- und source-Pakete in ein debian Repository zu laden. Also auf solche 'Server', die du in der /etc/apt/sources.list als Installationsquellen eintragen kannst.

dput unterstützt dabei mehrere Verfahren zum Hochladen, die wichtigsten sind ftp,ssh/sftp und lokales Kopieren.

mini-dinstall

dieses Programm erzeugt nun ein Repository mit allen Schickanen:

<source lang="bash"> $\tree |-- delixs1 | |-- all | | |-- Packages | | |-- Packages.bz2 | | |-- Packages.gz | | `-- Release | |-- all.db | |-- amd64 | | |-- Packages | | |-- Packages.bz2 | | |-- Packages.gz | | `-- Release | |-- amd64.db | |-- i386 | | |-- Packages | | |-- Packages.bz2 | | |-- Packages.gz | | `-- Release | |-- i386.db | `-- source | |-- Sources | |-- Sources.bz2 | `-- Sources.gz </source>

  • unter delixs/all liegen die architekturunabhängigen binären debian-Pakete (debs)
  • unter delixs/amd64 liegen die binären amd64 debian-Pakete (debs)
  • unter delixs/i386 liegen die binären i386 debian-Pakete (debs)
  • unter source liegen alle Versionen dieser Pakete im source-Format. Jeweils eine dsc und eine tar.gz Datei

Konfiguration

alias svn-b

der Benutzer dupload

gpg-Schlüssel

Beispiel

Nachfolgend ein Beispiel, wo ich das (nicht existierende) Paket delixs-firstrun-config in der Version 0.1-58 in das lokale Repository hochlade. Am Ende wird automatisch mini-dinstall ausgeführt.

<source lang="bash"> $ dput local delixs-firstrun-config_0.1-58_i3864.changes $ \tree ~/public_html/debian/delixs1/ /home/thorsten/public_html/debian/delixs1/ |-- all | |-- Packages | |-- Packages.bz2 | |-- Packages.gz | |-- Release | `-- delixs-firstrun-config_0.1-58_all.deb |-- all.db |-- amd64 | |-- Packages | |-- Packages.bz2 | |-- Packages.gz | `-- Release |-- amd64.db |-- i386 | |-- Packages | |-- Packages.bz2 | |-- Packages.gz | `-- Release |-- i386.db |-- ksan-firstrun-config_0.1-58_i386.changes `-- source

   |-- Sources
   |-- Sources.bz2
   |-- Sources.gz
   |-- delixs-firstrun-config_0.1-58.dsc
   `-- delixs-firstrun-config_0.1-58.tar.gz

</source>

Erklärung:

  • Unter all liegt das architekturunabhängige Paket delixs-firstrun-config_0.1-58_all.deb
  • direkt im Ordner delixs1 liegt die changes-Datei.
  • unter source liegen die beiden Dateien delixs-firstrun-config_0.1-58.{dsc,tar-gz}

Im Ordner, von dem du das Paket hochgeladen hast (wahrscheinlich build-area), wurde die Datei delixs-firstrun-config_0.1-58_i386.upload angelegt. Der Inhalt:

<source lang="bash"> $ cat ksan-firstrun-config_0.1-58_i386.upload Successfully uploaded delixs-firstrun-config_0.1-58.dsc to localhost. Successfully uploaded delixs-firstrun-config_0.1-58.tar.gz to localhost. Successfully uploaded delixs-firstrun-config_0.1-58_all.deb to localhost. Successfully uploaded delixs-firstrun-config_0.1-58_i386.changes to localhost. </source> Durch dieses logfile weis dput, dass es die Datei nicht nochmal hochladen muss, wenn du es ein zweites Mal probieren solltest.