Como posso usar arquivos .deb locais em minhas compilações pbuilder?

9

Frequentemente, preciso criar pacotes dos quais outro pacote dependa (ou seja, compilar dependências). Em vez de ter todos esses pacotes sendo construídos em meu ppa (o que às vezes pode levar algum tempo), eu gostaria de usar o diretório de resultados do pbuilder como fonte para o próprio pbuilder.

Como posso fazer isso? Posso fazer isso através de um gancho?

    
por txwikinger 04.09.2010 / 23:55

2 respostas

5

Você pode colocá-los em um repositório simples criado com dpkg-scanpackages e disponibilizá-lo via apache. Em seguida, atualize o apt apt do pbuilder para usar seu repo.

    
por Dennis Kaarsemaker 04.09.2010 / 23:57
6

Isso pode ser feito de várias maneiras. Como mencionado por adol, o wiki do Ubuntu tem um bom exemplo de como fazer isso criando um repositório local com mini-dinstall e adicionando isso à sua configuração do pbuilder. A resposta de Dennis sobre o uso do dpkg-scanpackages também funciona.

Eu tenho feito isso recentemente com o apt-ftparchive. Eu gosto dessa abordagem desde que eu acho muito leve. Veja um exemplo anotado do que eu faço:

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

Você também precisa de um gancho de 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

Agora tudo o que você precisa fazer é colocar os pacotes em seu repositório local e eles estarão disponíveis para o pbuilder. Se você está tentando encadear uma cadeia de dependências, você pode fazer o diretório de resultados do pbuilder como seu diretório repo local.

Você provavelmente pode imaginar outras variações sobre isso. Por exemplo, você poderia usar dput com um post_upload_command para gerar o arquivo Packages em vez de usar o hook.

Esta página wiki Debian também pode ser útil.

    
por andrewsomething 11.10.2010 / 04:33