Comment puis-je utiliser des fichiers locaux .deb dans mes builds pbuilder?

9

Souvent, je dois créer des packages dont dépend un autre package (c'est-à-dire créer des dépendances). Au lieu d'avoir tous ces packages en cours de construction dans mon ppa (ce qui peut parfois prendre un certain temps), je voudrais utiliser le répertoire de résultats de pbuilder comme source pour le pbuilder lui-même.

Comment puis-je faire ceci? Puis-je le faire via un crochet?

txwikinger
la source

Réponses:

5

Vous pouvez les coller dans un simple repo créé avec dpkg-scanpackages et le rendre disponible via apache. Ensuite, mettez à jour la configuration apt de pbuilder pour utiliser votre dépôt.

Dennis Kaarsemaker
la source
3
Voir aussi wiki.ubuntu.com/PbuilderHowto#Building With Local Packages. Je ne sais pas si leur exemple OTHERMIRROR, contre le système de fichiers local fonctionne tout de suite. J'ai pris la route facile d'utiliser un chemin localhost pour mon dépôt de package supplémentaire.
andol
6

Cela peut se faire de plusieurs manières. Comme mentionné par adol, le wiki Ubuntu a un bel exemple de la façon de le faire en créant un référentiel local avec mini-dinstall et en l'ajoutant à votre configuration pbuilder. La réponse de Dennis concernant l'utilisation de dpkg-scanpackages fonctionne également.

Je l'ai fait récemment avec apt-ftparchive. J'aime cette approche car je la trouve très légère. Voici un exemple annoté de ce que je fais:

# 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"

Vous avez également besoin d'un hook pbuilder:

# 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

Maintenant, tout ce que vous avez à faire est de déposer les packages dans votre référentiel local et ils seront disponibles pour pbuilder. Si vous essayez de chaîner la construction d'une chaîne de dépendances, vous pouvez faire de votre répertoire de résultats pbuilder votre répertoire repo local.

Vous pouvez probablement imaginer d'autres variations à ce sujet. Par exemple, vous pouvez utiliser dput avec une commande post_upload_command pour générer le fichier Packages au lieu d'utiliser le hook.

Cette page wiki Debian pourrait également être utile.

andrewsomething
la source
1
Le fichier de hook doit être appelé D05...(numéro à deux chiffres) et doit être exécutable. Aussi (au moins lors de l'utilisation de pbuilder-dist) après avoir ajouté le paquet supplémentaire apt-utils, vous devez appeler pbuilder-dist <dist> update --override-configune fois. Et aussi aussi avec pbuilder-dist, vous devez définir OTHERMIRROR en tant que variable d'environnement car il remplace le paramètre de fichier de configuration.
BubuIIC