Ein Softwarerepository für eigene Software für Debian/Ubuntu-Clients erstellen

Um eigene Deb-Pakete in einem lokalen Netz zu verteilen, soll ein Installationsrepository konfiguriert werden.
Voraussetzungen : ein konfigurierter Server mit Apache2 , dpkg-dev, eigene DEB-Datei(en).
Die DEB-Dateien sollten getestet und per dpkg -i meineSoftware.deb installierbar sein.
Installiere jetzt dpkg-dev:

apt-get install dpkg-dev

Erstelle ein Verzeichnis für den Download per HTTP:

mkdir /var/www/repo
cd /var/www/repo

kopiere die vorhanden DEB-Dateien in das Verzeichnis:

cp irgendwo/*.deb /var/www/repo/

erstelle einen Schlüssel:

gpg --gen-key
   1
   2048    
   0
   y
   Vorname Nachname (wichtig, notieren, brauchen wir noch)
   email
   Kommentar
   o(oder f)
   Passphrase (wichtig, notieren, brauchen wir noch)
   Zufallsbits

Lasse Dir den erzeugten Schlüssel anzeigen:

gpg --list-keys

importiere den Schlüssel auf den Server:

gpg -a --export  | apt-key add -

exportiere den Schlüssel in die Datei PublicKey:

gpg -a --output PublicKey --export "Vorname Nachname"

erstelle Package-Dateien:

dpkg-scanpackages ./ /dev/null > Packages && gzip -c Packages > Packages.gz

Signiere das Repo mit Deinem Schlüssel:

apt-ftparchive release . > Release
gpg -a --yes --output Release.gpg --local-user "Vorname Nachname" --detach-sign Release
Passphrase: (siehe oben)

Ändere die Rechte an dem Verzeichnis damit der Webserver die Dateien ausliefern kann:

chown -R www-data:www-data /var/www/repo

Damit ist der Server fertig konfiguriert. Prüfe im Webbrowser ob das Verzeichnis jetzt sichtbar ist.
http://meinServer/repo
Editiere jetzt auf einem Debianclient die Datei /etc/apt/sources.list und trage folgende Zeile zusätzlich ein:

...
deb http://meinServer/repo/ ./
...

Downloade und installiere einmalig den Schlüssel auf dem Client:

wget http://meinServer/repo/PublicKey
apt-key add PublicKey && rm PublicKey

Installiere jetzt die vorkonfigurierte Software aus dem Repo:

apt-get update
apt-get install meineSoftware

fertig