Debianpakete: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) |
Admin (Diskussion | Beiträge) |
||
(15 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Erstellung von | = 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 6: | Zeile 52: | ||
export DEBFULLNAME="VORNAME NACHNAME" | export DEBFULLNAME="VORNAME NACHNAME" | ||
export DEBEMAIL="MAIL@ADRESSE" | export DEBEMAIL="MAIL@ADRESSE" | ||
export REPREPRO_BASE_DIR DEFAULT=/home/kluge/packages-0.1 | |||
</source> | </source> | ||
Zeile 12: | Zeile 59: | ||
== Nötige Pakete installieren == | == Nötige Pakete installieren == | ||
<source lang='bash'> | <source lang='bash'> | ||
sudo apt-get install dh-make reprepro | sudo apt-get install dh-make reprepro tree | ||
</source> | </source> | ||
= Erzeugung eine Pakets = | = Erzeugung eine Pakets = | ||
* Erstellen eines Verzeichnisses mit Paketname-Version | * Erstellen eines Verzeichnisses mit Paketname-Version (packages) | ||
* | * mkdir packages/conf | ||
* | * editieren von packages/conf/distributions | ||
<source lang='bash'> | |||
Origin: Test-Origin | |||
Label: Test-Label | |||
Codename: precise | |||
Suite: stable | |||
Architectures: i386 amd64 source | |||
Components: main | |||
</source> | |||
;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 | * In das Verzeichnis wechseln und | ||
<source lang='bash'> | <source lang='bash'> | ||
Zeile 24: | 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