sexta-feira, 7 de maio de 2010

APT - Repositório Local

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

Muitas vezes precisamos de um repositório local para aliviar nossa banda de Internet, o bom é que podemos utilizar um repositório local da mesma forma que os repositórios localizados em ftps e mirrors do debian, e ao invés dos computadores da rede ir buscar pacotes na Internet buscará na rede local.

O seguinte pacote deve está instalado: dpkg-dev_1.14.25_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 de instalação use a sequência de comandos:

[/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:

[/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

Nenhum comentário: