Como adicionar pacotes a um cache squid-deb-proxy?

10

Para economizar largura de banda e dados no meu plano de Internet, instalei o squid-deb-proxy em um desktop e o cliente nele e em algumas outras máquinas que tenho. No entanto, com base na postagem que me colocou nisso, parece que se eu levar meu laptop * para uma rede diferente e atualizá-lo lá, as atualizações baixadas NÃO serão automaticamente copiadas de volta para o servidor squid-deb-proxy quando eu receber de volta na minha rede.

Supondo que isso esteja correto (testarei mais tarde), existe uma maneira de colar esses pacotes no cache para que eu não precise baixá-los mais uma vez para outras máquinas na rede?


* Conforme observado nos comentários, eu poderia simplesmente tornar o laptop o servidor proxy, mas, no meu caso específico, o laptop é na verdade 1) uma VM que não está sendo executada o tempo todo, 2) em um laptop que não está aberto todo o tempo. Tempo. Como tal, essa solução, embora boa, não funciona no meu caso.

zpletan
fonte
Conversar com o autor sobre isso no passado é surpreendentemente não trivial, talvez alguém possa inventar algo inteligente.
Jorge Castro
Talvez askubuntu.com/q/113983/8724 possa ajudar. . . .
zpletan
Esse laptop que você está usando em uma rede diferente é o squid-deb-proxyservidor?
Saji89
@ saji89: não, todas as máquinas estão na mesma rede.
Zpletan
Acho que você não entendeu a pergunta @ saji89, e tenho a mesma pergunta. Se você instalar o squid-deb-proxy no laptop e o squid-deb-proxy-client na área de trabalho e no laptop, o laptop se tornará o proxy e o usará localmente. Como tal, quando você estiver fora de casa, ele manterá as atualizações no laptop. Quando você voltar para casa, a área de trabalho receberá atualizações do laptop.
popey

Respostas:

2

Você pode usar apt-move(do pacote com o mesmo nome) para criar um repositório apt local a partir dos arquivos no cache apt do seu laptop. Em seguida, use rsyncpara manter uma cópia sincronizada deste repositório na sua LAN. Por fim, aponte outras máquinas da LAN para a sua cópia da LAN do repositório local na parte superior sources.list, de modo que o apt prefira o repositório local aos remotos.

Robie Basak
fonte
0

Essa ainda é uma resposta incompleta, mas pode ser a melhor resposta possível, então continue lendo se estiver curioso sobre possíveis soluções parciais / feias / complicadas.

Pergunta intrigante, eu encontrei o mesmo problema, mas nunca o consertei, apenas tentei limitar meu apt-get fora da minha LAN local. Realmente não valeu a pena, no máximo eu perdi 20MB no ano passado. Minha propagação iso torrent compensa isso. Mas!

  1. você pode configurar um túnel / proxy entre o laptop e a casa para utilizar o cache da sua casa (pelo menos por uma questão de privacidade), mas, dependendo da velocidade de upload, você depende. Isso não seria apenas lento, mas você usaria o dobro da largura de banda para baixar a mesma coisa. 1x entrando na sua LAN a partir dos espelhos do Ubuntu e 1x saindo para a cafeteria.

  2. Proponho que seja possível executar o servidor de cache no seu laptop e use o rsync para mantê-lo sincronizado com o servidor doméstico. Isso apresenta um problema, no entanto, quando você está em casa, o servidor em seu laptop ainda estará em execução. Para lidar com isso, pude ver duas possibilidades. 1. interrompa o servidor de cache em seu laptop enquanto estiver em casa 2. mantenha também todas as cópias em cache existentes em seu servidor em casa (requisitos de espaço extra) e faça isso não apenas enviando dados em cache para o servidor quando chegar em casa com o rsync, mas também regularmente puxando os dados em cache para o servidor do laptop. Ao sugerir isso, assumi que o cache do squid-deb-proxy em um servidor é compatível com outro e que você pode trocar e receber arquivos dessa maneira. Essas opções também certamente exigirão algum script.

David A
fonte
0

Usamos uma abordagem simples e estúpida: o squid-deb-proxy pode se usar como proxy. Portanto, eu apenas faço:

  1. Eu instalo o software cliente no servidor squid-deb-proxy:

    apt-get install squid-deb-proxy-client

  2. Criei um script simples que lista todos os pacotes instalados - e baixe novamente cada pacote:

    #!/bin/bash  
    # Create temp dir & change into it
    tmpdir=$(mktemp -d) 
    pushd $tmpdir   
    # Get all installed packages and re-download them
    for package in $(dpkg --get-selections | cut -f 1); do apt-get download $package; done;
    popd
    # Delete tmp dir
    

Dessa forma, já temos um cache básico não tão ruim.

Se quisermos adicionar todos os pacotes de um servidor existente ao cache, basta executar o mesmo procedimento 1) e 2)

Tom
fonte