Como adicionar o pacote e suas dependências ao meu próprio repositório apt

3

Estou configurando um repositório apt para gerenciar dependências para servidores que eu construo. Estou fazendo isso porque quero ser capaz de criar repetidamente o mesmo servidor repetidas vezes.

Certamente, existem ferramentas ( apt-get ) para analisar um sistema em execução e fazer o download de pacotes necessários para atender a um determinado requisito. Por exemplo, é exatamente isso que acontece quando eu corro

sudo apt-get install --download-only vim

Nesse caso, apt-get analisa o estado do sistema e faz o download dos pacotes necessários para instalar o vim no meu sistema.

Estou procurando uma ferramenta semelhante que me permita baixar pacotes para adicionar ao meu próprio repositório apt. Ele deve fazer o mesmo tipo de análise de dependência no repositório que o apt-get faz no meu sistema e só fazer o download de pacotes que ainda não estão no repositório. Então, quando eu executar o apt-get install ... em um sistema que aponte para o meu repositório, ele poderá instalar o pacote e todas as suas dependências. Existe alguma ferramenta disponível para analisar quais pacotes eu já tenho em meu repositório e então baixar pacotes adicionais necessários?

    
por Daniel 18.01.2013 / 19:48

4 respostas

1

Como @Andrea De Palo disse que teoricamente você pode usar o fantoche e depois de instalar sua distro mestre, basta executar puppet resource package , que listará todos os pacotes instalados com a versão exata, etc.

Depois disso, basta criar um módulo com todos os pacotes listados. Além disso, você também pode usar o fantoche para personalizar os arquivos de configuração, etc.

Vale a pena tentar.

    
por 06.02.2013 / 10:55
1

Eu tenho um Makefile trivial que eu uso para fazer isso, mas aqui está a mesma coisa no shell:

#!/bin/bash
rm -f Release* Packages* new-release
dpkg-scanpackages . /dev/null > Packages
gzip -c -9 <Packages >Packages.gz
apt-ftparchive release . > new-release
mv new-release Release
gpg -abs -o Release.gpg Release

A etapa de GPG não é necessária se você não quiser assinar seu repositório, mas o esforço para fazer isso é mínimo (e atualmente a alternativa é uma alteração de configuração para desabilitar a verificação de assinatura, então você precisa fazer alguma coisa) .

Você então se refere ao diretório no /etc/apt/sources.list do seu cliente assim:

# Local directory
deb file:///var/local/debs ./ 
# Via http(s)
deb http://foo.bar.com/debian ./

O HTTPS pode ser uma boa maneira de permitir atualizações de servidores em todo o mundo sem precisar de uma VPN. Eu fiz isso em um trabalho anterior, apoiando a CA dentro de nossa implantação de marionetes, por isso era totalmente automático.

    
por 18.05.2013 / 13:33
0

Eu nunca usei isso sozinho, não tenho certeza se ele atende às suas necessidades. Mas você pode estar interessado no link

    
por 18.01.2013 / 21:08
0

Que tal usar o Fantoche para automatizar o gerenciamento de pacotes?

    
por 06.02.2013 / 10:45