Como posso usar arquivos .deb locais nas compilações do pbuilder?

9

Muitas vezes, preciso criar pacotes dos quais outro pacote depende (ou seja, construir dependências). Em vez de ter todos esses pacotes sendo compilados primeiro no meu ppa (que às vezes pode levar algum tempo), eu gostaria de usar o diretório de resultados do pbuilder como uma fonte para o próprio pbuilder.

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

txwikinger
fonte

Respostas:

5

Você pode colá-los em um repositório simples criado com o dpkg-scanpackages e disponibilizá-lo via apache. Atualize a configuração apt do pbuilder para usar seu repositório.

Dennis Kaarsemaker
fonte
3
Consulte também wiki.ubuntu.com/PbuilderHowto#Building Com pacotes locais. Não tenho certeza se o exemplo OTHERMIRROR, no sistema de arquivos local, funciona imediatamente. Eu segui o caminho mais fácil de usar um caminho de host local para meu repositório de pacotes extra.
andol
6

Isso pode ser feito de várias maneiras. Conforme 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-o à sua configuração do pbuilder. A resposta de Dennis sobre o uso do dpkg-scanpackages também funciona.

Eu venho fazendo isso recentemente com o apt-ftparchive. Eu gosto dessa abordagem, pois acho muito leve. Aqui está um exemplo anotado do que 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 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 é soltar os pacotes no seu repositório local e eles estarão disponíveis para o pbuilder. Se você estiver tentando criar uma cadeia de dependências em cadeia, poderá criar o diretório de resultados do pbuilder como seu diretório de repo local.

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

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

andrewsomething
fonte
1
O arquivo do gancho precisa ser chamado D05...(número de dois dígitos) e precisa ser executável. Também (pelo menos ao usar o pbuilder-dist) após adicionar o pacote extra do apt-utils, você deve chamar pbuilder-dist <dist> update --override-configuma vez. E também novamente com o pbuilder-dist, você precisa definir o OTHERMIRROR como uma variável de ambiente, pois substitui a configuração do arquivo de configuração.
BubuIIC