¿Cómo agregar paquetes a una caché de proxy squid-deb?

10

Para ahorrar ancho de banda y datos en mi plan de Internet, he instalado squid-deb-proxy en un escritorio, y el cliente en él y algunas otras máquinas que tengo. Sin embargo, según la publicación que me puso en esto, parece que si llevo mi computadora portátil * a una red diferente y la actualizo allí, las actualizaciones descargadas NO se copiarán automáticamente al servidor squid-deb-proxy cuando llegue De vuelta en mi red.

Suponiendo que esto sea correcto (lo probaré más tarde), ¿hay alguna forma de pegar estos paquetes en la caché para que no tenga que descargarlos una vez más para otras máquinas en la red?


* Como se señaló en los comentarios, podría simplemente hacer que la computadora portátil sea el servidor proxy, pero en mi caso específico, la computadora portátil es en realidad 1) una VM que no está funcionando todo el tiempo, 2) en una computadora portátil que no está abierta hora. Como tal, esa solución, aunque es buena, no funciona en mi caso.

zpletan
fuente
Al hablar con el autor sobre esto en el pasado, esto es sorprendentemente no trivial, aunque tal vez alguien pueda llegar a algo inteligente.
Jorge Castro
Quizás askubuntu.com/q/113983/8724 podría ayudar. . . .
zpletan
¿Es esta computadora portátil que está utilizando en una red diferente, el squid-deb-proxyservidor?
saji89
@ saji89: no, todas las máquinas están en la misma red.
zpletan
No creo que haya entendido la pregunta que hizo @ saji89, y tengo la misma pregunta. Si instala squid-deb-proxy en la computadora portátil y squid-deb-proxy-client en el escritorio y la computadora portátil, la computadora portátil se convierte en el proxy y usa el proxy localmente. Como tal, cuando esté fuera de casa, mantendrá actualizaciones en la computadora portátil. Cuando vuelvas a casa, el escritorio recibirá actualizaciones de la computadora portátil.
papa

Respuestas:

2

Puede usar apt-move(del paquete del mismo nombre) para crear un repositorio apto local a partir de los archivos en el caché apto de su computadora portátil. Luego, use rsyncpara mantener una copia sincronizada de este repositorio en su LAN. Finalmente, apunte otras máquinas LAN a su copia LAN del repositorio local en la parte superior sources.list, de modo que apt prefiera el repositorio local sobre los remotos.

Robie Basak
fuente
0

Esta sigue siendo una respuesta incompleta, pero podría ser la mejor respuesta posible, así que sigue leyendo si tienes curiosidad sobre posibles soluciones parciales / feas / complicadas.

Pregunta intrigante, me encontré con el mismo problema pero nunca lo solucioné, en cambio solo trato de limitar mi apt-get fuera de mi LAN local. Realmente no valió la pena, a lo sumo desperdicié como 20MB durante el año pasado. Mi siembra de iso torrent lo compensa. ¡Pero!

  1. puede configurar un túnel / proxy entre su computadora portátil y su hogar para utilizar la memoria caché de su hogar (esta es una buena idea de todos modos por razones de privacidad), pero entonces dependería de su velocidad de carga. No solo sería lento, sino que usarías el doble de ancho de banda para descargar lo mismo. 1x entrando a su lan desde los espejos de Ubuntu y 1x saliendo a la cafetería.

  2. Propongo que sea posible ejecutar el servidor de caché en su computadora portátil y luego usar rsync para mantenerlo sincronizado con su servidor doméstico. Sin embargo, esto presenta un problema, ya que cuando está en casa, el servidor de su computadora portátil seguirá ejecutándose. Para lidiar con eso pude ver dos posibilidades. 1. detenga el servidor de caché en su computadora portátil mientras está en casa 2. mantenga todas las copias almacenadas en caché que existen en su servidor doméstico en su computadora portátil también (requisitos de espacio extra) y logre esto no solo enviando datos en caché a su servidor cuando llegue en casa con rsync, pero también extrae regularmente los datos en caché a su servidor portátil. Al sugerir esto, he asumido que la caché de proxy squid-deb en un servidor es compatible con otro y que puede intercambiar archivos dentro y fuera de esa manera. Estas opciones también requerirán algunas secuencias de comandos.

David A
fuente
0

Utilizamos un enfoque simple y estúpido: el proxy squid-deb puede usarse a sí mismo como proxy. Por lo tanto solo hago:

  1. Instalo el software del cliente en el servidor squid-deb-proxy:

    apt-get install squid-deb-proxy-client

  2. Creé un script simple que enumera todos los paquetes instalados y vuelvo a descargar cada paquete:

    #!/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
    

De esta manera ya tenemos un caché básico no tan malo.

Si nos gustaría agregar todos los paquetes de un servidor existente al caché, entonces simplemente ejecutamos el mismo procedimiento 1) y 2)

Tom
fuente