Crie um repositório apt local com ambiente de teste

Crie um repositório apt local com ambiente de teste

Estou tentando criar um repositório apt com reprepro, que é muito simples em sua maior parte. Tenho usado este artigo como referência porque gostei da estrutura de uma árvore de teste.

http://vincent.bernat.im/en/blog/2014-local-apt-repositories.html

No entanto, não consigo entender o que provavelmente é muito simples. Usando um exemplo de conf/distributions do artigo abaixo, fico confuso com o fato de que quando importo um pacote ele sempre vai apenas para main. Não existe um diretório chamado precise-staging e precise-prod? O que estou tentando fazer é ter um local separado para colocar pacotes que não foram testados e outro para produção no mesmo repositório. (/opt/packages/pool/trusty-prod, /opt/packages/pool/trusty-stage)

Eu poderia apontar clientes para qualquer um deles conforme necessário via /etc/apt/sources.list.d/ com fantoche.

Estou perdendo completamente como isso seria feito ou entendendo este artigo?

Dailymotion Precise packages (staging)
Origin: Dailymotion 
Label: dm-staging   
Suite: precise-staging
Codename: precise-staging
Architectures: i386 amd64 source
Components: main role/dns role/database role/web # ➊
Description: Dailymotion Precise staging repository
Contents: .gz .bz2
Tracking: keep
SignWith: yes
NotAutomatic: yes # ➋
Log: packages.dm-precise-staging.log
 --type=dsc email-changes

Dailymotion Precise packages (prod)
Origin: Dailymotion # ➌
Label: dm-prod      # ➌
Suite: precise-prod
Codename: precise-prod
Architectures: i386 amd64 source
Components: main role/dns role/database role/web # ➊
Description: Dailymotion Precise prod repository
Contents: .gz .bz2
Tracking: keep
SignWith: yes
Log: packages.dm-precise-prod.log

Responder1

Existem 4 etapas para configurar um repositório simples para você

1.Instale o dpkg-dev
2.Coloque os pacotes em um diretório
3.Crie um script que irá verificar os pacotes e criar um arquivo que o apt-get update pode ler
4. Adicione uma linha ao seu sources.list apontando para o seu repositório

Instale dpkg-dev

Digite um terminal

sudo apt-get install dpkg-dev

O diretório

Crie um diretório onde você manterá seus pacotes. Para este exemplo, usaremos

 /usr/local/mydebs.  


sudo mkdir -p /usr/local/mydebs

Agora mova seus pacotes para o diretório que você acabou de criar.

Os pacotes baixados anteriormente são geralmente armazenados em seu sistema no diretório /var/cache/apt/archives. Se você instalou o apt-cacher você terá pacotes adicionais armazenados em seu diretório /packages.

O script update-mydebs

É um simples forro de três:

#! /bin/bash
 cd /usr/local/mydebs
 dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

Recorte e cole o texto acima no gedit e salve-o como update-mydebs em ~/bin. (o til '~' significa seu diretório inicial. Se ~/bin não existir, crie-o: o Ubuntu colocará esse diretório em seu PATH. É um bom lugar para colocar scripts pessoais). Em seguida, torne o script executável:

 chmod u+x ~/bin/update-mydebs

Como o script funciona: dpkg-scanpackages analisa todos os pacotes em mydebs, e a saída é compactada e gravada em um arquivo (Packages.gz) que o apt-get update pode ler (veja abaixo uma referência que explica isso em detalhes excruciantes ). /dev/null é um arquivo vazio; é um substituto para um arquivo de substituição que contém algumas informações adicionais sobre os pacotes, que neste caso não são realmente necessárias. Veja deb-override(5) se quiser saber mais sobre isso.

Fontes.lista

adicione a linha

deb file:/usr/local/mydebs ./

para o seu /etc/apt/sources.list e pronto.

Opção de CD

Você pode gravar o diretório que contém os debs em um CD e usá-lo também como repositório (bom para compartilhar entre computadores). Para usar o CD como repositório, basta executar

sudo apt-cdrom add

Usando o Repositório

Sempre que você colocar um novo deb no diretório mydebs, execute

sudo update-mydebs
sudo apt-get update

Agora seus pacotes locais podem ser manipulados com Synaptic, aptitude e os comandos apt: apt-get, apt-cache, etc. Quando você tentar instalar o apt-get, quaisquer dependências serão resolvidas para você, desde que possam ser atendidas .

Pacotes mal feitos provavelmente irão falhar, mas você não terá suportado o inferno do dpkg.

informação relacionada