Como configuro um repositório apt privado que pode suportar várias versões?

10

Estou pensando em como configurar um repositório apt privado (no 10.04 LTS) que pode suportar várias versões.

Entendo que você não pode ter várias versões de um pacote instaladas em um servidor. Este é um ambiente puramente para desenvolvimento, onde queremos poder testar várias versões antes de liberá-las no repositório apt de produção.

Eu sei que você pode ter várias versões colocando o número da versão no nome do pacote, no entanto, quero obter o oposto, suporte a várias versões de um mesmo nome de pacote.

por exemplo, packagename_1.0_all.deb e packagename_2.0_all.deb em vez de packagename-1.0_1.0_all.deb e packagename-2.0_2.0_all.deb

Para aqueles que estão familiarizados com a implantação automatizada do Puppet - podemos especificar qual versão de um pacote queremos em um servidor (com a tag garantir usando o mesmo nome de pacote).

Eu tentei o debmarshal do Google descrito em http://wiki.debian.org/HowToSetupADebianRepository, mas não consegui fazê-lo funcionar devido à falta de documentação.

Tom
fonte

Respostas:

9

Eu precisava de um repositório com várias versões pelos mesmos motivos que você e foi assim que acabei:

apt-get install apache2 dpkg-dev
mkdir -p /var/www/repo/binary

Em seguida, crie update-repo.shque atualize seu repositório com as informações dos pacotes

#!/bin/bash
cd /var/www/repo
dpkg-scanpackages -m binary /dev/null | gzip -9c > /var/www/repo/binary/Packages.gz

Coloque seus arquivos .deb em / var / www / repo / binary e execute update-repo.sh

No restante das máquinas:

echo "deb http://myserver/repo binary" > /etc/apt/sources.list.d/myrepo.list
apt-get update

etc etc...

A mágica acontece por causa da -mexecução do dpkg-scanpackages. Sem -m, apenas uma versão está listada em Packages.gz

Eu não tentei, mas deve ser trivial fazer o mesmo para sub-repositórios separados, como o hbdgaf proposto.

dtsomp
fonte
1
Pesquisei MUITO até encontrar a sua resposta com o -minterruptor. Muito obrigado!
Mario Tacke
3

Hospede-o com um nome de distribuição diferente. lúcido e testando por exemplo. Em seguida, altere suas entradas na caixa de teste
de: deb http://homegrown.local/ubuntu lucid main
para: deb http://homegrown.local/ubuntu testing main

RobotHumans
fonte