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.
Introdução
A principal ideia que trago com este artigo é a utilização de um espelho local para que se possa utilizar os pacotes .debs que temos (seja por meio de download|compilação etc) de forma parecida como é feita num repositório Debian.
Em segundo lugar; mas não menos importante vem a possibilidade de reempacotar todo o sistema para posterior uso dos pacotes, seja na nossa própria máquina ou numa outra que não tenha acesso à Internet. Nesse caso fiz algo parecido para o Arch Linux nessa dica.
No caso acima podemos ainda copiar todo o resultado do processo: sources.list e pasta com os pacotes, salvá-los num pendrive e utilizá-los numa outra máquina ou na mesma no caso de uma futura reinstalação.
Outro caso que esse método é uma solução é para aqueles usuários que utilizam o famoso 'apt-get clean' que remove todo o cache dos pacotes, nesse caso o que fazer então? Baixar tudo novamente? Sim se possível for! Mas se não for... reempacotemos ora!
Espero que gostem!
E se caso não o tenham instalado, instale-o assim:
sudo apt-get install dpkg-repack
* ou sigam o passo alternativo indicado no fim do artigo.
Começando.
Tendo instalado o programa vamos ao reempacotamento e tal como visto na imagem abaixo, criaremos uma pasta chamada 'debs', na qual entraremos a seguir, obteremos a informação dos pacotes instalados e através dela geraremos um script para o reempacotamento, os passos são esses: Criação da pasta:
mkdir debs
Entrada na pasta de trabalho:
cd debs/
Obtenção da lista de pacotes instalados com o dpkg:
dpkg --get-selections | awk '{if ($2=="install") print $1}' > debian_packages.list * como visto na imagem tenho 2051 pacotes instalados, alguns dos repositórios Debian, outros compilados e empacotados com o Checkinstall e outros baixados da Internet (caso do LibreOffice).
Criação do script para reempacotamento:
cat debian_packages.list | awk '{ print "dpkg-repack " $1 }' > repack.sh Daremos permissão de execução para o script:
chmod +x repack.sh
Execução do script gerado:
sudo ./repack.sh
Script em execução (demora um pouco... afinal são 2051 pacotes, alguns bem grandes caso do Sauerbraten, Nexuiz etc): Término do reempacotamento: Pasta na qual os arquivos foram gerados: Informações da pasta e remoção dos arquivos gerados (debian_packages.list e repack.sh): rm -fv debian_packages.list; rm -fv repack.sh):
e tendo concluído isso, estamos prontos para o próximo passo...
Em segundo lugar; mas não menos importante vem a possibilidade de reempacotar todo o sistema para posterior uso dos pacotes, seja na nossa própria máquina ou numa outra que não tenha acesso à Internet. Nesse caso fiz algo parecido para o Arch Linux nessa dica.
No caso acima podemos ainda copiar todo o resultado do processo: sources.list e pasta com os pacotes, salvá-los num pendrive e utilizá-los numa outra máquina ou na mesma no caso de uma futura reinstalação.
Outro caso que esse método é uma solução é para aqueles usuários que utilizam o famoso 'apt-get clean' que remove todo o cache dos pacotes, nesse caso o que fazer então? Baixar tudo novamente? Sim se possível for! Mas se não for... reempacotemos ora!
Espero que gostem!
Reempacotamento de um sistema Debian
Para reempacotarmos todos os nossos pacotes em uma distro Debian-based (Ubuntu, Mint aptosid e outros) utilizaremos o software 'dpkg-repack' que já foi alvo de dica aqui no VOL:E se caso não o tenham instalado, instale-o assim:
sudo apt-get install dpkg-repack
* ou sigam o passo alternativo indicado no fim do artigo.
Começando.
Tendo instalado o programa vamos ao reempacotamento e tal como visto na imagem abaixo, criaremos uma pasta chamada 'debs', na qual entraremos a seguir, obteremos a informação dos pacotes instalados e através dela geraremos um script para o reempacotamento, os passos são esses: Criação da pasta:
mkdir debs
Entrada na pasta de trabalho:
cd debs/
Obtenção da lista de pacotes instalados com o dpkg:
dpkg --get-selections | awk '{if ($2=="install") print $1}' > debian_packages.list * como visto na imagem tenho 2051 pacotes instalados, alguns dos repositórios Debian, outros compilados e empacotados com o Checkinstall e outros baixados da Internet (caso do LibreOffice).
Criação do script para reempacotamento:
cat debian_packages.list | awk '{ print "dpkg-repack " $1 }' > repack.sh Daremos permissão de execução para o script:
chmod +x repack.sh
Execução do script gerado:
sudo ./repack.sh
Script em execução (demora um pouco... afinal são 2051 pacotes, alguns bem grandes caso do Sauerbraten, Nexuiz etc): Término do reempacotamento: Pasta na qual os arquivos foram gerados: Informações da pasta e remoção dos arquivos gerados (debian_packages.list e repack.sh): rm -fv debian_packages.list; rm -fv repack.sh):
e tendo concluído isso, estamos prontos para o próximo passo...