Debianpakete
Aus Alexander's Wiki
Version vom 13. März 2015, 10:52 Uhr von Admin (Diskussion | Beiträge)
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. 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.
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