Erstellen Sie ein lokales Apt-Repo mit Staging-Umgebung

Erstellen Sie ein lokales Apt-Repo mit Staging-Umgebung

Ich versuche, mit Reprepro ein Apt-Repository zu erstellen, was größtenteils sehr unkompliziert ist. Ich habe diesen Artikel als Referenz verwendet, weil mir die Struktur eines Staging-Baums gefiel.

http://vincent.bernat.im/en/blog/2014-local-apt-repositories.html

Ich kann jedoch nicht begreifen, was wahrscheinlich sehr einfach ist. Anhand eines Beispiels von conf/distributions aus dem folgenden Artikel verwirrt mich die Tatsache, dass ein Paket, wenn ich es importiere, immer nur ins Hauptverzeichnis geht. Es gibt kein Verzeichnis namens precise-staging und precise-prod? Ich versuche, einen separaten Ort zu haben, an dem ich Pakete ablegen kann, die noch nicht getestet wurden, und einen anderen für die Produktion im selben Repo. (/opt/packages/pool/trusty-prod, /opt/packages/pool/trusty-stage)

Ich könnte Clients bei Bedarf mit Puppet über /etc/apt/sources.list.d/ auf einen von beiden verweisen.

Verstehe ich überhaupt nicht, wie das gemacht wird, oder verstehe ich diesen Artikel nicht richtig?

Dailymotion Precise packages (staging)
Origin: Dailymotion 
Label: dm-staging   
Suite: precise-staging
Codename: precise-staging
Architectures: i386 amd64 source
Components: main role/dns role/database role/web # ➊
Description: Dailymotion Precise staging repository
Contents: .gz .bz2
Tracking: keep
SignWith: yes
NotAutomatic: yes # ➋
Log: packages.dm-precise-staging.log
 --type=dsc email-changes

Dailymotion Precise packages (prod)
Origin: Dailymotion # ➌
Label: dm-prod      # ➌
Suite: precise-prod
Codename: precise-prod
Architectures: i386 amd64 source
Components: main role/dns role/database role/web # ➊
Description: Dailymotion Precise prod repository
Contents: .gz .bz2
Tracking: keep
SignWith: yes
Log: packages.dm-precise-prod.log

Antwort1

In 4 Schritten können Sie ein einfaches Repository für sich selbst einrichten

1.Installieren Sie dpkg-dev.
2.Legen Sie die Pakete in ein Verzeichnis
. 3.Erstellen Sie ein Skript, das die Pakete scannt und eine Datei erstellt, die apt-get update lesen kann
. 4. Fügen Sie Ihrer sources.list eine Zeile hinzu, die auf Ihr Repository verweist.

Installieren Sie dpkg-dev

Geben Sie ein Terminal ein

sudo apt-get install dpkg-dev

Das Verzeichnis

Erstellen Sie ein Verzeichnis, in dem Sie Ihre Pakete aufbewahren. Für dieses Beispiel verwenden wir

 /usr/local/mydebs.  


sudo mkdir -p /usr/local/mydebs

Verschieben Sie nun Ihre Pakete in das soeben erstellte Verzeichnis.

Zuvor heruntergeladene Pakete werden auf Ihrem System im Allgemeinen im Verzeichnis /var/cache/apt/archives gespeichert. Wenn Sie apt-cacher installiert haben, sind zusätzliche Pakete im Verzeichnis /packages gespeichert.

Das Skript update-mydebs

Es sind einfache drei Zeilen:

#! /bin/bash
 cd /usr/local/mydebs
 dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

Kopieren Sie das Obige, fügen Sie es in gedit ein und speichern Sie es als update-mydebs in ~/bin. (Die Tilde „~“ steht für Ihr Home-Verzeichnis. Wenn ~/bin nicht existiert, erstellen Sie es: Ubuntu fügt dieses Verzeichnis in Ihren PATH ein. Es ist ein guter Ort, um persönliche Skripte abzulegen.) Machen Sie als Nächstes das Skript ausführbar:

 chmod u+x ~/bin/update-mydebs

So funktioniert das Skript: dpkg-scanpackages durchsucht alle Pakete in mydebs, und die Ausgabe wird komprimiert und in eine Datei (Packages.gz) geschrieben, die apt-get update lesen kann (unten finden Sie eine Referenz, die dies in allen Einzelheiten erklärt). /dev/null ist eine leere Datei; sie ist ein Ersatz für eine Override-Datei, die einige zusätzliche Informationen über die Pakete enthält, die in diesem Fall nicht wirklich benötigt werden. Weitere Informationen hierzu finden Sie unter deb-override(5).

Quellen.Liste

füge die Zeile hinzu

deb file:/usr/local/mydebs ./

zu Ihrer /etc/apt/sources.list, und Sie sind fertig.

CD-Option

Sie können das Verzeichnis mit den Debs auf eine CD brennen und diese auch als Repository verwenden (gut für den Austausch zwischen Computern). Um die CD als Repository zu verwenden, führen Sie einfach aus

sudo apt-cdrom add

Verwenden des Repository

Wenn Sie ein neues Deb in das Verzeichnis mydebs einfügen, führen Sie aus

sudo update-mydebs
sudo apt-get update

Jetzt können Ihre lokalen Pakete mit Synaptic, Aptitude und den Apt-Befehlen bearbeitet werden: apt-get, apt-cache usw. Wenn Sie versuchen, apt-get install auszuführen, werden alle Abhängigkeiten für Sie aufgelöst, sofern sie erfüllt werden können.

Schlecht erstellte Pakete schlagen wahrscheinlich fehl, aber Sie müssen die Dpkg-Hölle nicht durchstehen.

verwandte Informationen