Criando um proxy de pacotes .deb com HTTP-Replicator

O HTTP-Replicator é um proxy-cache para repositórios de pacotes *.deb, típicos do Debian e seus derivados, como Ubuntu (na verdade pode ser usado para outros tipos de repositórios também, tipo os ebuilds do Gentoo). Com isso, quando uma máquina da rede interna baixar um pacote qualquer, ele ficará armazenado no cache do HTTP-Replicator. Na próxima vez que este pacote (do mesmo repositório) for requisitado por outra máquina da rede interna, a esta máquina receberá o pacote direto do cache do HTTP-Replicator, sem precisar fazer um novo download da Internet.

A vantagem do HTTP-Replicator sobre as alternativas mais usuais, como apt-cache e apt-proxy, é que com ele não é necessário alterar o arquivo sources.list dos clientes. Basta uma linha de configuração no apt.conf (ou um arquivo em /etc/apt/apt.conf.d/) para que os clientes usem o servidor com HTTP-Replicator como proxy. Usamos este ótimo software aqui na Riopro há uns 2 anos, com ótimos resultados. Veja a seguir como instalá-lo e configurá-lo.

Este tutorial foi testado no Ubuntu Linux 6.06, mas funciona da mesma maneira na versão anterior e posterior do mesmo, e deve funcionar no Debian atual. Para outras distribuições, o procedimento de configuração será parecido, use apenas o pacote .tar.gz ao invés do .deb.

Bom, em primeiro lugar baixe a última versão do HTTP-Replicator do site dele. Escolha a opção já empacotada em .deb. Em seguida vá ao diretório onde salvastes o mesmo e instale-o com um:

sudo dpkg -i http-replicator_*.deb

Em seguida, crie um diretório onde serão armazenados os pacotes .deb que os usuários baixarão, e dê permissões adequadas ao mesmo para o usuário que o HTTP-Replicator irá usar. Por exemplo:

$ sudo mkdir /var/cache/http-replicator
$ sudo chown proxy /var/cache/http-replicator

Agora, altere o arquivo /etc/default/http-replicator, onde fica a configuração do software, removendo ou comentando a linha 19 (que impede que o proxy rode) e configurando as opções de inicialização de acordo com o desejado. Não esqueça de adicionar a faixa de IP’s permitidos para os clientes, pois o default é apenas localhost e alterar a porta default de 8080 para outra que não conflite com eventuais outros sistemas que você tenha na mesma máquina. Para maiores informações sobre as opções, consulte a página do programa. Um arquivo de configuração de exemplo já alterado desta maneira pode ser visto aqui.

Só nos resta iniciar o serviço com o comando sudo /etc/init.d/http-replicator start ou reiniciar o computador, pois por default a instalação já configura os links para que o programa inicie como serviço na inicialização do sistema. Se algo der errado, verifique o log (em /var/log/http-replicator.log por padrão), geralmente os problemas têm a ver com permissão de diretórios.

Para configurar os clientes para que os mesmos passem a fazer seus downloads à partir do HTTP-Replicator, basta criar o arquivo /etc/apt/apt.conf.d/30http-replicator com o seguinte conteúdo:

Acquire::http::Proxy "http://SERVIDOR:PORTA";

Onde SERVIDOR é o endereço IP ou nome da máquina da rede rodando o HTTP-Replicator, e PORTA é a porta onde o mesmo está escutando, conforme descrito no arquivo de configuração do proxy.

5 opiniões sobre “Criando um proxy de pacotes .deb com HTTP-Replicator”

  1. Bom artigo Rodrigo! Um pessoal aqui onde trabalho conseguiu “conectar” o http-replicator ao squid, e pelos últimos dados e para as peculiaridades do nosso ambiente e nossos usuários isso nos economizou 18% de banda!

    Se estiver interessado em como fazer isso entre em contato comigo por e-mail.
    []s

    Andreyev

  2. Recebemos uma mensagem do Eduardo Cruz dizendo que não estava funcionando no Ubuntu 6.10. O motivo era que até o Ubuntu 6.06 o /bin/sh era alias de /bin/bash e agora ele é alias de /bin/dash. Com isso ele não acha o comando interno source e não levanta o http-replicator corretamente. Mude então no seu /etc/init.d/http-replicator de #!/bin/sh para #!/bin/sh.distrib no ubuntu 6.10 que vai funcionar.

    abraços

  3. Instalei aqui e só funcionou tudo certo após eu alterar a primeira linha do script de inicialização para “#! /bin/bash”, pois pelo que percebi o “#! /bin/sh” não tem a instrução “source” que é utilizada para carregar o arquivo de configurações. Detalhe, aqui é o Ubuntu 8.04

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *