Tenho várias máquinas virtuais Linux em execução no meu PC doméstico. Uma das peculiaridades do Linux é que toda vez que você executa um gerenciador de pacotes, ele deseja “atualizar” os repositórios de software configurados – o que basicamente significa que ele deseja baixar um arquivo da Internet. Se eu reverter para um instantâneo anterior da VM, na próxima vez que executar o gerenciador de pacotes, ele baixará novamente exatamente os mesmos dados [já que eles não existem mais na VM].
Parece uma pena desperdiçar largura de banda baixando indefinidamente os mesmos dados repetidamente, então fiquei pensando se há alguma maneira de configurar algum tipo de servidor proxy HTTP que armazene em cache os arquivos baixados. Não tenho ideia de como você faria uma coisa dessas. Em particular, ele precisa ser configurado para que as VMs não precisem “saber” que o cache está lá; precisa ser transparente. Mas não sei como fazer isso.
Alguma sugestão sobre qual software eu preciso usar? Seria bom se eu pudesse executá-lo no sistema operacional host Windows, mas também é possível executar uma pequena VM com um convidado Linux ...
Responder1
Esta apresentação de slidescobre diversas soluções para um proxy de cache de pacotes para distribuições Linux baseadas em Debian:
Aproximadamente
Funciona como um proxy: você informa quais espelhos usar e, em seguida, configura os clientes para usá-lo como único espelho.
Instalando no host do pacote:
sudo apt-get install apport
Configure o approx para usar seus espelhos de back-end favoritos em
/etc/approx/approx.conf
:debian http://ftp.au.debian.org non-US http://ftp.au.debian.org/non-US security http://security.debian.org/security
Configure o cliente para usar o servidor Aprox:
deb http://localcache:9999/debian stable main contrib deb http://localcache:9999/security stable main
Apt-Proxy
Semelhante a Aprox.
Instalar com
sudo apt-get install apt-proxy
Configure espelhos favoritos em
/etc/apt-proxy/apt-proxy-v2.conf
:[debian] backends = http://ftp.au.debian.org http://ftp.us.debian.org
Configure clientes como com Aprox:
deb http://localcache:9999/debian stable main contrib deb http://localcache:9999/security stable main
Eles foram projetados para serem executados no Linux, mas você poderá portá-los para o Windows com o mínimo de problemas. Gostaria de esperar que o Python seja independente de plataforma, mas descobri que os programadores costumam fazer suposições.