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.