Come posso usare i file .deb locali nelle build del mio pbuilder?


9

Spesso ho bisogno di creare pacchetti da cui dipende un altro pacchetto (ovvero costruire dipendenze). Invece di avere tutti quei pacchetti che vengono prima compilati nel mio ppa (che a volte può richiedere del tempo), vorrei usare la directory dei risultati di pbuilder come fonte per lo stesso pbuilder.

Come posso fare questo? Posso farlo tramite un gancio?

Risposte:


5

Puoi incollarli in un semplice repository creato con dpkg-scanpackages e renderlo disponibile tramite apache. Quindi aggiorna la configurazione apt di pbuilder per usare il tuo repository.


3
Vedi anche wiki.ubuntu.com/PbuilderHowto#Building con pacchetti locali. Non sono sicuro che il loro esempio OTHERMIRROR, rispetto al file system locale, funzioni correttamente. Ho preso la semplice strada di usare un percorso localhost per il mio repository di pacchetti extra.
andol

6

Questo può essere fatto in diversi modi. Come accennato da adol, la wiki di Ubuntu ha un bell'esempio di come farlo creando un repository locale con mini-dinstall e aggiungendolo alla configurazione del tuo pbuilder. Anche la risposta di Dennis sull'utilizzo di dpkg-scanpackages funziona.

L'ho fatto di recente con apt-ftparchive. Mi piace questo approccio poiché lo trovo molto leggero. Ecco un esempio annotato di ciò che faccio:

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

È inoltre necessario un gancio per 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

Ora tutto ciò che devi fare è rilasciare i pacchetti nel tuo repository locale e saranno disponibili per pbuilder. Se si sta tentando di creare una catena di dipendenze, è possibile creare la directory dei risultati del pbuilder come directory repo locale.

Probabilmente puoi immaginare altre variazioni su questo. Ad esempio, è possibile utilizzare dput con un comando post_upload_ per generare il file Packages anziché utilizzare l'hook.

Questa pagina wiki Debian potrebbe anche essere utile.


1
Il file hook deve essere chiamato D05...(numero a due cifre) e deve essere eseguibile. Inoltre (almeno quando usi pbuilder-dist) dopo aver aggiunto il pacchetto aggiuntivo apt-utils devi chiamare pbuilder-dist <dist> update --override-configuna volta. E anche di nuovo con pbuilder-dist è necessario impostare OTHERMIRROR come variabile d'ambiente poiché sovrascrive l'impostazione del file di configurazione.
BubuIIC,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.