sexta-feira, 18 de abril de 2014

Repositório de pacotes local - APT-GET

Montando um repositório local apt com o dpkg-scanpackages

Muitas vezes precisamos de um repositório local para aliviar o tráfego da banda de Internet ou qualquer outro motivo. O bom é que podemos utilizar um repositório local da mesma forma que os repositórios localizados em ftps, https e rsyncs espalhados pelos mirrors Debian mundo a fora, e ao invés dos computadores da rede irem buscar pacotes de programas na Internet buscarão na rede local. Considere que por mais rápida que seja sua Internet a rede local ainda será n vezes mais rápida.

O seguinte pacote deve está instalado: dpkg-dev_1.16.12_all.deb ou uma versão mais atualizada.

Para montar seu repositório você deve copiar os pacotes para um diretório, digamos, dentro do diretório /home. Crie os diretórios /home/apt/main e copie todos os pacotes que você deseja instalar pra ele. Vamos ao trabalho:

Para copiar os arquivos .deb do CD ou DVD de instalação use a sequência de comandos abaixo: 
[/root]# mkdir -p /home/apt/main
[/root]# cd /home/apt/main
[/root]# find /media/cdrom/pool/ -iname '*.deb' -exec cp -i {} . \;
O comando a ser usado agora é o dpkg-scanpackages. Você precisará criar um arquivo para auxiliar no processo de criação do arquivo Packages.gz – arquivo que guarda as definições de pacotes e que será lido quando você fizer executar o comando apt-get update –. Este arquivo auxiliar pode estar vazio. dentro do diretório /home/apt/:
[/root]# touch /home/apt/arquivo
Agora o processo efetivo de criação do arquivo Packages.gz:
[/root]# dpkg-scanpackages main arquivo | gzip > main/Packages.gz
Agora é só adicionar no /etc/sources.list a linha: deb file:/home/apt main/ Use o comando:
[/root]# echo 'deb file:/home/apt main/' >> /etc/apt/sources.list
Para complementar acrescentar, se você for usar apenas o repositório local, acrescente o seguinte parâmetro ao arquivo /etc/apt/apt.conf
“APT::Get::AllowUnauthenticated 1 ;” para que não apareça a mensagem: AVISO: Os pacotes a seguir não podem ser autenticados. Caso este arquivo não exista você poderá criá-lo.

Sequência de comandos completa:
[/root]# mkdir -p /home/apt/main
[/root]# apt-get install dpkg-dev
[/root]# cd /home/apt /main
[/root]# find /media/cdrom/pool/ -iname '*.deb' -exec cp -i {} . \;
[/root]# cd /home/apt
[/root]# touch arquivo
[/root]# dpkg-scanpackages main arquivo | gzip > main/Packages.gz
[/root]# echo 'deb file:/home/apt main/' >> /etc/apt/sources.list
[/root]# echo 'APT::Get::AllowUnauthenticated 1 ;' >> apt.conf
[/root]# apt-get update
Caso prefira usar seu repositório via http, possibilitando o uso via rede, é só instalar o apache2 e criar um link simbólico do diretório /home/apt para /var/www/. Exemplo:
[root]# ln -s /home/apt /var/www/apt
E no /etc/apt/souces.list mude a linha deb file:/home/apt main/ para deb http://ip_do_pc_repositório/apt main/
[/root]# echo 'deb http://ip_do_pc_repositório/apt main/' >> /etc/apt/sources.list
Pronto se tudo foi seguido passo a passo seu repositório local de pacotes está pronto para uso.

Nenhum comentário:

Postar um comentário