Debianpakete

Aus Alexander's Wiki

Erstellung von DEBIAN-Paketen

DEBIAN-Pakete in apt-Paketverwaltung

Die DEBIAN-Pakete sollten in ein Format überführt werden, welches das Programm apt versteht um Abhängigkeiten automatisch auflösen zu können. Dafür wird das Programm reprepro verwendet, welches man durch den folgenden Befehl installiert:

  apt-get install reprepro

Als nächstes benötigt man einen PGP-Key (hier 494A1DC2). Siehe hier. In dem Verzeichnis (hier: /var/www/html/hsm), wo die Pakete gebaut werden sollen, muss das Verzeichnisse /conf erstellt werden. In diesem werden die beiden Dateien

distributions
  Origin: Hagleitner SM
  Codename: HAGLEITNER_SM
  Suite: stable
  Architectures: amd64 i386
  Components: main
  Description: Apt repository for my stuff
  SignWith: 494A1DC2

und

options
  verbose
  basedir /var/www/html/hsm
  ask-passphrase

angelegt.

Nun kann man vom Basisverzeichnis aus die DEBIAN-Pakete dem Repository hinzufügen, z.B.:

  reprepro -V includedeb HAGLEITNER_SM ../deb/1-hsm-base_1.0.5.0_amd64.deb

Anzeigen der Pakete im Repository geschieht durch:

 reprepro list HAGLEITNER_SM

Entferne der Pakete geschieht durch:

  reprepro remove HAGLEITNER_SM hsm-base

Vorbereitung

Umgebungsvariablen setzen

export DEBFULLNAME="VORNAME NACHNAME"
export DEBEMAIL="MAIL@ADRESSE"
export REPREPRO_BASE_DIR DEFAULT=/home/kluge/packages-0.1

Diese können dauerhaft in der Datei ~/.profile gespeichert werden

Nötige Pakete installieren

sudo apt-get install dh-make reprepro tree

Erzeugung eine Pakets

  • Erstellen eines Verzeichnisses mit Paketname-Version (packages)
  • mkdir packages/conf
  • editieren von packages/conf/distributions
Origin: Test-Origin
Label: Test-Label
Codename: precise
Suite: stable
Architectures: i386 amd64 source
Components: main
Codename (required) gibt den Idnetifier der Distribution an
z.B. wheezy für Debian
Suite (optional)
stable|unstable|testing
Architectures
(required) gibt die Zielarchitekturen an
Components (required)
main|contrib|...
  • reprepro -b /home/kluge/packages-0.1 createsymlinks
  • reprepro -b /home/kluge/packages-0.1 export
  • mit tree packages-0.1 kann man sich das ganze Gebilde anzeigen lassen
  • reprepro -Vb . includedeb precise ../helloworld_all.deb


  • Das Verzeichnis muss folgende Daten enthalten
xxx-1_all.deb
xxx-1_amd64.changes
xxx-1.debian.tar.gz
xxx-1.dsc
xxx.orig.tar.gz
  • In das Verzeichnis wechseln und
dh_make -f ../xxx.tar.gz

aufrufen

apt Bereitstellung

Aus dem oben erzeugten Paket müssen

  • dists und
  • pool

über einen Webservice erreichbar sein. Die Pfade

  • conf und
  • db

sollten nicht extern abrufbar sein.

Außerdem wird noch eine package.list benötigt

deb http://<URI> precise main
deb-src http://<URI> precise main

Hinzufügen des Repos am User-Client

wget http://<server>/package.list
sudo mv package.list /etc/apt/sources.list.d/
sudo apt-get update
#apt-cache search package