¿Cómo puedo usar archivos .deb locales en mis compilaciones de pbuilder?

9

A menudo necesito crear paquetes de los que depende otro paquete (es decir, dependencias de compilación). En lugar de tener todos esos paquetes construidos primero en mi ppa (que a veces puede llevar algo de tiempo), me gustaría usar el directorio de resultados de pbuilder como fuente para el propio pbuilder.

¿Cómo puedo hacer esto? ¿Puedo hacer esto a través de un gancho?

txwikinger
fuente

Respuestas:

5

Puede pegarlos en un repositorio simple creado con dpkg-scanpackages y hacer que esté disponible a través de apache. Luego actualice la configuración de apt de pbuilder para usar su repositorio.

Dennis Kaarsemaker
fuente
3
Consulte también wiki.ubuntu.com/PbuilderHowto#Building With Local Packages. No estoy seguro si su ejemplo OTHERMIRROR, contra el sistema de archivos local funciona de inmediato. Tomé la ruta fácil de usar una ruta localhost para mi repositorio de paquete adicional.
andol
6

Esto se puede hacer de varias maneras. Según lo mencionado por adol, el wiki de Ubuntu tiene un buen ejemplo de cómo hacer esto creando un repositorio local con mini-dinstall y agregando eso a su configuración de pbuilder. La respuesta de Dennis sobre el uso de dpkg-scanpackages también funciona.

He estado haciendo esto recientemente con apt-ftparchive. Me gusta este enfoque ya que lo encuentro muy ligero. Aquí hay un ejemplo anotado de lo que hago:

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

También necesita un gancho 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

Ahora todo lo que tiene que hacer es colocar los paquetes en su repositorio local y estarán disponibles para pbuilder. Si está tratando de crear una cadena de dependencias en cadena, puede convertir su directorio de resultados de pbuilder como su directorio de repositorio local.

Probablemente puedas imaginar otras variaciones sobre esto. Por ejemplo, podría usar dput con un post_upload_command para generar el archivo de paquetes en lugar de usar el enlace.

Esta página wiki de Debian también podría ser útil.

andrewsomething
fuente
1
El archivo de enlace debe llamarse D05...(número de dos dígitos) y debe ser ejecutable. Además (al menos cuando se usa pbuilder-dist) después de agregar el paquete adicional apt-utils, debe llamar pbuilder-dist <dist> update --override-configuna vez. Y también de nuevo con pbuilder-dist necesita configurar el OTHERMIRROR como una variable de entorno, ya que anula la configuración del archivo de configuración.
BubuIIC