Debianpakete: Unterschied zwischen den Versionen

Aus Alexander's Wiki
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Erstellung von Debian-Paketen, die für die Installation wie apt-get benutzt werden können.
= 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:
<source lang="bash">
  apt-get install reprepro
</source>
 
Als nächstes benötigt man einen PGP-Key (hier ''494A1DC2''). Siehe [[Gpg|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
 
<source lang="bash">
  Origin: Hagleitner SM
  Codename: HAGLEITNER_SM
  Suite: stable
  Architectures: amd64 i386
  Components: main
  Description: Apt repository for my stuff
  SignWith: 494A1DC2
</source>
 
und
;options
 
<source lang="bash">
  verbose
  basedir /var/www/html/hsm
  ask-passphrase
</source>
 
angelegt.
 
Nun kann man vom Basisverzeichnis aus die DEBIAN-Pakete dem Repository hinzufügen, z.B.:
<source lang="bash">
  reprepro -V includedeb HAGLEITNER_SM ../deb/1-hsm-base_1.0.5.0_amd64.deb
</source>
 
Anzeigen der Pakete im Repository geschieht durch:
<source lang="bash">
reprepro list HAGLEITNER_SM
</source>
 
Entferne der Pakete geschieht durch:
<source lang="bash">
  reprepro remove HAGLEITNER_SM hsm-base
</source>


= Vorbereitung =
= Vorbereitung =
Zeile 37: Zeile 83:
* reprepro -b /home/kluge/packages-0.1 export
* reprepro -b /home/kluge/packages-0.1 export
* mit ''tree packages-0.1'' kann man sich das ganze Gebilde anzeigen lassen
* mit ''tree packages-0.1'' kann man sich das ganze Gebilde anzeigen lassen
* reprepro -Vb . includedeb precise ../helloworld_all.deb




Zeile 51: Zeile 98:
</source>
</source>
aufrufen
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
<source lang='bash'>
deb http://<URI> precise main
deb-src http://<URI> precise main
</source>
= Hinzufügen des Repos am User-Client =
<source lang='bash'>
wget http://<server>/package.list
sudo mv package.list /etc/apt/sources.list.d/
sudo apt-get update
#apt-cache search package
</source>

Aktuelle Version vom 13. März 2015, 10:58 Uhr

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