it-swarm-eu.dev

Wie kann ich lokale .deb-Dateien in meinen pbuilder-Builds verwenden?

Oft muss ich Pakete erstellen, von denen ein anderes Paket abhängt (d. H. Abhängigkeiten erstellen). Anstatt alle diese Pakete zuerst in meinem ppa zu erstellen (was manchmal einige Zeit in Anspruch nehmen kann), möchte ich das Ergebnisverzeichnis von pbuilder als Quelle für den pbuilder selbst verwenden.

Wie kann ich das machen? Kann ich das über einen Haken machen?

9
txwikinger

Sie können sie in ein einfaches Repo stecken, das mit dpkg-scanpackages erstellt wurde, und dieses über Apache verfügbar machen. Aktualisieren Sie dann die Apt-Konfiguration von pbuilder, um Ihr Repo zu verwenden.

5

Dies kann auf verschiedene Arten erfolgen. Wie von adol erwähnt, enthält das Ubuntu-Wiki ein Nettes Beispiel , wie dies getan werden kann, indem ein lokales Repository mit mini-dinstall erstellt und Ihrer pbuilder-Konfiguration hinzugefügt wird. Dennis 'Antwort zur Verwendung von dpkg-scanpackages funktioniert ebenfalls.

Ich habe dies kürzlich mit apt-ftparchive gemacht. Ich mag diesen Ansatz, da ich ihn sehr leicht finde. Hier ist ein kommentiertes Beispiel für meine Arbeit:

# From my ~/.pbuilderrc file

# Location of the dir where you keep pbuilder hook scripts.
HOOKDIR="/home/andrew/.pbuilder-hooks"

# Path to your local repo to be used as a mirror written as apt source line.
OTHERMIRROR="deb file:///home/andrew/pbuilder/local_repo ./"

# Path to your local repo. This tells pbuilder to mount this directory so it is available in the chroot.
BINDMOUNTS="/home/andrew/pbuilder/local_repo"

# As we need to have the apt-ftparchive command, we need to insure this package is installed.
EXTRAPACKAGES="apt-utils"

Du brauchst auch einen pbuilder hook:

# From my ~/.pbuilder-hooks/D5update-local-repo file

# Path to the local repo.
LOCAL_REPO="/home/andrew/pbuilder/local_repo"

# Generate a Packages file.
(cd $LOCAL_REPO ; apt-ftparchive packages . > Packages)

# Update to include any new packages in the local repo.
apt-get update

Jetzt müssen Sie nur noch die Pakete in Ihr lokales Repo legen und sie stehen pbuilder zur Verfügung. Wenn Sie versuchen, eine Kette von Abhängigkeiten zu erstellen, können Sie das Ergebnisverzeichnis von pbuilder als lokales Repo-Verzeichnis festlegen.

Sie können sich wahrscheinlich andere Variationen vorstellen. Beispielsweise könnten Sie dput mit einem post_upload_command verwenden, um die Packages-Datei zu generieren, anstatt den Hook zu verwenden.

Diese Debian-Wiki-Seite könnte auch hilfreich sein.

6
andrewsomething