Como configuro um repositório privado apt que possa suportar múltiplas versões?

9

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

Eu entendo que você não pode ter várias versões de um pacote instalado em um servidor. Isso é puramente para um ambiente de desenvolvimento em que queremos poder testar várias versões antes de liberá-las para o 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 alcançar o oposto, suportar 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 o eploy automatizado do Puppet, podemos especificar qual versão de um pacote queremos em um servidor (com a tag de garantia usando o mesmo nome de pacote).

Experimentei o debmarshal do Google descrito no link , mas não consegui fazê-lo funcionar devido à falta de documentação.

    
por Tom 18.04.2012 / 03:28

2 respostas

7

Eu precisava de um repositório com várias versões pelas mesmas razões que você e é com isso que acabei:

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

Em seguida, crie update-repo.sh que atualizará seu repo 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 do -m quando rodando o 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 propôs.

    
por dtsomp 29.11.2013 / 11:00
3

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

    
por RobotHumans 18.04.2012 / 03:32