Reempacotamento e repositório local em um sistema Debian-like

Nesse pequeno artigo venho demonstrar como criar um repositório local para cache de pacotes .deb e veremos também como reempacotar todo um sistema para a utilização posterior de seus pacotes.

[ Hits: 20.923 ]

Por: edps em 11/04/2011 | Blog: https://edpsblog.wordpress.com/


Criação do repositório local



Aproveitando-se do passo anterior veremos como adicionar a pasta 'debs' como repositório local, para isso moveremos a tal pasta 'debs' para /opt, mas no exemplo a renomearei para 'packages':
sudo cp -a $HOME/Desktop/debs /opt/packages

Entraremos na pasta /opt/packages:

cd /opt/packages

E atualizaremos o índice de pacotes:

sudo dpkg-scanpackages . /dev/null > Packages

Ou caso queiram:

sudo dpkg-scanpackages . /dev/null | sudo gzip -9c > Packages.gz

* conclusão do comando acima:
A seguir é hora de adicionar o novo repositório no sources.list:
sudo nano /etc/apt/sources.list

Adicione a entrada abaixo:

### meu repositório local de pacotes.
deb file:/opt/packages /

Após salvar e fechar o arquivo com Ctrl+O e Ctrl+X é hora de atualizar as listas de pacotes e instalar|remover ou reinstalar o que quiser:
sudo apt-get update
ou
sudo apt-get install <pacote>
ou
sudo apt-get remove <pacote>
ou
sudo apt-get install --reinstall <pacote>

Ou mesmo obter informações dos pacotes:
apt-cache search|show <pacote>

E no Synaptic...

Pacotes instalados: 2051, informações de um kernel compilado:
Reinstalação de todos os pacotes:
e terminamos!

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Criação do repositório local
   3. Considerações finais
Outros artigos deste autor

ZRAM (Compressed RAM) no Debian

Enlightenment no Debian Squeeze e no Ubuntu

UFW e GuFW, firewall simples ao alcance de todos

Recuperação de partições deletadas com o TestDisk

ARM, utilização de snapshot de pacotes no Arch Linux

Leitura recomendada

Configurando o Modem HSP56 Micromodem no Linux

Instalar e configurar um servidor FTP no CentOS

Instalação e configuração do J2SE

Integração do Hotspot Mikrotik com AD Windows Server 2012

Tint2 - Split TaskBar com Dual Monitor

  
Comentários
[1] Comentário enviado por eldermarco em 11/04/2011 - 17:29h

Que interessante esse negócio de reempacotar todo o sistema! Muito bom edps!

[2] Comentário enviado por removido em 11/04/2011 - 18:21h

Obrigado eldermarco, isso é bastante útil no caso das pessoas que não tem acesso a Net e que assim quem sabe podem utilizar uma versão determinada de um programa que esteja disponível em outra máquina.

A questão do espelho local é porque ultimamente venho compilando e empacotando muitos pacotes com o Checkinstall, assim fica mais fácil de gerenciá-los. O LibreOffice já está nos repositórios Debian, mas por hora preferi manter a versão que tinha baixado do site oficial.

t+

[3] Comentário enviado por removido em 11/04/2011 - 19:44h

Não sei quem é mais versátil, se é você com toda sua bagagem em GNU/Linux ou o próprio Linux.
Quantas possibilidades! Incrível! Não tem como não dizer que o Linux é o melhor sistema.
Quanto mais leio e aprendo, mais coisas tenho a aprender com você e todos aqui.

Muito bom, Edinaldo.

[4] Comentário enviado por removido em 11/04/2011 - 22:25h

Obrigado Izaias por suas palavras;

a idéia do espelho local não é nova inclusive existem artigos no próprio VOL a esse respeito, mas foi com a dica do DicasL que obtive o melhor resultado.

Sobre o reempacotamento já fiz muito disso quando conheci as maravilhas dos antigos knoppix, kanotix, sidux... grande parte de seus aplicativos eu reempacotava e instalava no meu Debian. Não existe a promessa que tudo o que for reempacotado será possível instalar noutra máquina devido a questão das dependências, porém em máquinas com sistemas semelhantes é bem provável que tudo funcione.

um abraço!


[5] Comentário enviado por rauldipeas em 11/04/2011 - 23:33h

Existe algum meio de "autenticar" os pacotes do repositório local?
Por que no Ubuntu, o gerenciador de atualizações dá erro com esses pacotes na hora de atualizar...

[6] Comentário enviado por removido em 11/04/2011 - 23:42h

@rauldipeas,

você pode usar o método que expus nessa dica:

http://www.vivaolinux.com.br/dica/Autenticacao-de-repositorios-em-distros-Debianlike/

ou simplesmente usar a opção ' allow-unauthenticated ' como em:

$ sudo apt-get install --allow-unauthenticated kde-full

* o método da dica é bem melhor pois é definitivo.

um abraço.

[7] Comentário enviado por brunotec em 12/04/2011 - 01:08h

Muito Bom Artigo,

Acho que para ambientes corporativos ou em lan houses onde é preciso instalar em várias máquinas ou como foi dito no artigo em máquinas que não possuam internet é uma ajuda e tanto!!

Agora para uma reinstalação futura pode ser que não seja muito lucrativo pois com as atualizações constantes dos pacotes ocorreria de a maioria estar desatualizada, mas é claro dependendo do tamanho do pacote como em um Libreoffice por exemplo ai seria legal já que como ele é um pouco grande dai bastaria atualizar.

No caso do Debian Estável acho que seria legal tbm já que só recebe atualizações de segurança e sendo assim a maioria dos pacotes não necessitariam de atualização.

@edps

vc é uma grande referencia aqui do VOL para Debian e eu que ja gostava muito dessa distro com seus artigos me identifico com ela cada vez mais.

10zão e um abraço.

[8] Comentário enviado por chimico em 12/04/2011 - 13:47h

Olá edps, vc pode fazer assim também:

dpkg --get-selections | awk '{if ($2=="install") print $1}' | dpkg-repack

para reempacotar sua distro. Já fiz isso em um live cd a partir de uma partição do hd montada para salvar os pacotes deb.
Afinal um live-cd pode além de te fornecer ferramentas de recuperação alguns pacotes no caso de algum problema.
t++

[9] Comentário enviado por tonyrecife em 12/04/2011 - 13:59h

muito bom mesmo. Uso repositório local pra economizar banda de internet. Apenas o servidor baixa os pacotes da internet, os outros baixam dele, isso somado com cache de páginas, etc...
Viva o Linux. Parabens edps.

[10] Comentário enviado por removido em 12/04/2011 - 18:42h

Valeu galera (brunotec, chicotrance e tonyrecife), obrigado pelos comentários.

@chicotrance,

thanks man again! estás me devendo aquela dica do debdelta hein rsrsrs, um abraço meu brother!


[11] Comentário enviado por chimico em 12/04/2011 - 22:44h

Ae edps, a propósito postei hoje (12/04/2011), espero que aprovem, faz tempo que não posto nada (13/03/2008 ), mas tenho muita coisa pra postar, pois me foquei em otimização (sem compilar) e algumas ferramentas em linha de comando como awk, sed, find, kerneis enxutos, mudar o file system sem fazer uma nova instalação (inclusive do root /), apt-build, apt-fast (outros gerenciadores de download), gosto do Arch, mas o Debian..., prefiro compilar tudo nele, ferramentas de backup,...

Abraço!

[12] Comentário enviado por rauldipeas em 13/04/2011 - 04:33h

@edps Obrigado pelas dicas, mais a minha dúvida é sobre como criar um repositório local com chave GPG, falo isso por que tenho um repositório pessoal hospedado no sourceforge, e não sei como criar uma chave GPG pra esse repositório...

Eu só criei o repositório local e hospedei a estrutura de pastas com os arquivos no sourceforge.

Desde já agradeço sua atenção!!

AbraxX!!

[13] Comentário enviado por removido em 13/04/2011 - 18:31h

@chicotrance, valeu e no aguardo de sua dica.

@rauldipeas, nunca fiz esse processo portanto não sei como se faz, mas vendo o artigo abaixo da Ubuntu Wiki, parece que não é difícil:

http://wiki.ubuntu-br.org/GnuPG

1 - instalar o GNUPG
2 - criar suas chaves privadas e pública
3 - assinar seus arquivos
4 - enviar sua chave para um servidor.

caso tente e se funcionar, posta um artigo no VOL.

artigos sobre o assunto:

http://www.vivaolinux.com.br/artigo/Gerar-par-de-chaves-com-o-GnuPG-em-11-passos
http://www.vivaolinux.com.br/artigo/Assinatura-e-criptografia-de-dados-com-GPG/

espero tê-lo ajudado!

[14] Comentário enviado por Fabio_Farias em 27/04/2011 - 10:11h

Parabéns Edinaldo.
Mais um belo trabalho seu amigo. É sempre um prazer ler trabalhos como esse. Obrigado por contribuir.
Abraços!

[15] Comentário enviado por brunotec em 27/04/2011 - 14:39h

SALVOU A PÁTRIA !!!

tem um PC aqui em casa onde é inviável levar um cabo de rede até ele e para funcionar meu wireless usb nele eu precisava instalar o firmware-ralink e wireless-tools mas baixando os debs e levando até ele sempre dava errode dependencias "lib" e com esse reempacotamento eu consegui instalar os aplicativos de boa e consegui fazer funcionar a wireless! hehehe

o repositório funcionou direitinho e aproveitei e já instalei os drivers nvidia e outras coisa.


mais uma vez, Valeu.

[16] Comentário enviado por removido em 27/04/2011 - 17:42h

@FábioFarias,

obrigado pelo comentário caro colega, um abraço!

@brunotec,

beleza cara, que bom que funcionou.

[17] Comentário enviado por removido em 27/04/2011 - 17:50h


ADENDO AO ARTIGO:


sempre que novos pacotes forem adicionados ou excluídos do repositório local é recomendável que se faça:

$ cd caminho-da-pasta ### no meu caso /opt/packages

$ sudo dpkg-scanpackages . /dev/null > Packages

ou

$ sudo dpkg-scanpackages . /dev/null | sudo gzip -9c > Packages.gz

$ sudo apt-get update


peço desculpas por ter esquecido esse detalhe pois só atentei a isso quando baixei os pacotes do Emerald para Debian e os adicionei no repo local, mas não rodei os passos acima.

* sobre o Emerald para Debian e derivados:

http://www.vivaolinux.com.br/screenshot/Xfce-XFCE+Compix+Emerald/

[18] Comentário enviado por removido em 05/05/2011 - 16:19h

gostei,so ficaria melhor com algo parecido com o um script para reinstalar todos os pacotes .

[19] Comentário enviado por noctuae em 06/05/2011 - 13:35h

Ta aparecendo isso em todos os pacotes processados...

dpkg-deb: building package `amsn' in `./amsn_0.98.4-0ubuntu1_amd64.deb'.
dpkg-deb: warning: './dpkg-repack-3271/DEBIAN/control' contains user-defined field 'Original-Maintainer'
dpkg-deb: warning: ignoring 1 warning about the control file(s)

Porque será...

[20] Comentário enviado por noctuae em 06/05/2011 - 13:40h

Outra coisa

Eu to com problemas com a minha placa de video , sera que na reinstalação destes pacotes no sistema zerado no mesmo PC nao vou recolocar o problema de novo...

[21] Comentário enviado por removido em 23/05/2011 - 09:07h

@ noctuae ,tive o mesmo problema,esse foi o segundo.
no primeiro passo da primeira vez não deu quase nenhum erro mas na hora de mover os arquivos para uma pasta percebi que os pacotes eram menores que o original,na hora de criar repositório deu erro(por alguma informação errada no pacote).
O que deve dar esses erros nos arquivos de controle do *.deb ?

[22] Comentário enviado por removido em 23/05/2011 - 20:08h

desculpa aí galera por não ter visto esses últimos comentários.

em relação ao arquivo 'control' são apenas warnings, que não influenciaram no tamanho dos pacotes.

sobre o tamanho dos pacotes uma possível causa seria o 'localepurge' que remove todo e qualquer locale que não esteja definido (marcado) em /etc/locale.nopurge, isso influenciará no tamanho do pacote com certeza.

até parei de usá-lo, pois como uso o debdelta para diminuir o tamanho dos pacotes baixados durante a atualização do sistema, se o localepurge estiver instalado os deltas não são aplicados.

um abraço!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts