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.