it:linux:debian:packaging

Debian Packaging

…rund um die Debian Paketverwaltung…

deb uri distribution [component1] [component2] [...] 

Beispiel:

deb ftp://ftp.debian.org/debian stable main

Wesentliche Punkte:

  • Über das Feld „distribution“ wird die Version eingestellt, die installiert werden soll
  • Das Feld „component“ ist optional
http://<uri>
  |-dists
      |-<distribution>
               |-Release
               |-<component>
                      |-binary-<architecture>
                                 |-Packages.gz

Die Ablage von den deb-Pakete selbst ist beliebig; sie sind in der Packages-Datei vermerkt.

Origin: company
Label: repo-server
Codename: experimental (<- distribution)
Architecture: i386 
Components: main (<- componenten, kommagetrennt)
Version: 1.0

Die Release-Datei ermöglicht apt-pinning.

/etc/apt/preferences.d/test:

Package: *
Pin: release o=company,n=experimental,c=main
Pin-Priority: 1001

Dies führt dazu, dass die Pakete aus unserem Repo ggü. denen in den anderen (den offiziellen z.B.) bevorzugt werden. Eine Pin-Priority von mehr als 1000 führt dazu, dass auch ein Downgrade auf die letzte Version in unserem Repo gemacht wird.

  • Es ist das Paket „joe“ in der Version „3.7-2“ auf dem System installiert.
  • Wir bieten in unserem Repo „joe“ in der Version „3.5-1“ an, weil die uns besser gefällt
  • Nach dem Hinzufügen unseres Repos und dem Pinning-Eintrag wird beim Ausführen von
    apt-get install joe

    die Version „3.5-1“ aus unserem Repo installiert.

  1. In einer Distributions/Komponenten Kombination können mehrere Versionen des gleichen Pakets enthalten sein.
  2. apt-get möchte immer gerne die letzte Version eines Pakets installieren.
  3. Versucht man (z.B. über Anhängigkeiten) die Installation eines Pakets zu erzwingen, dass älter als die installierte Version ist, so schmeißt apt-get hin und sag „So nicht!“.
    1. Mittels aptitude kann nach einer Lösung gesucht werden und so dass „ältere“ Paket installiert werden.

Beschreibung

Version a > b eines Pakets ist installiert. Es soll Version b über eine Abhängigkeit eines 3. Pakets installiert werden.

Beschreibung

Über ein Wurzelpaket sollen die Abhängigkeiten aus dem Server-repo exportiert werden, so dass nur die notwendigen Pakete enthalten sind. Das Exportieren soll in ein lokales repo erfolgen, damit auch Clients ohne Internetanbindung geupdatet werden können.

Tools

  • buildfakedeb: Tool um leere Debianpakete zu bauen
  • repo.sh : Einfachen Shellscript um ein repository zu verwalten.

Links

  • it/linux/debian/packaging.txt
  • Zuletzt geändert: 2015/12/24 14:26
  • von 127.0.0.1