Siguiendo las instrucciones de la mejor manera de almacenar en caché las descargas de apt en una LAN , Configuré un proxy de almacenamiento en caché en mi red local. Dado que esa máquina no siempre está activa, me gustaría poder actualizar la lista de fuentes e instalar paquetes sin usar ese proxy si no está disponible.
Ya leí la sección Adquirir grupo en la página del manual de apt.conf(5), pero no pude encontrar una opción como "Silent-Fail".
Por el momento, sudo apt-get updatey los comandos relacionados fallan porque no se pudo establecer una conexión. Entonces, ¿cómo configuro el cliente para que se ignore el proxy si no está disponible?
                    
                        networking
                                apt
                                proxy
                                
                    
                    
                        Lekensteyn
fuente
                
                fuente

Respuestas:
Hay una configuración no documentada,
Acquire::http::ProxyAutoDetect. Esta configuración debe contener la ruta completa al binario y no puede tener argumentos. El comando debe generar el proxy que se utilizará (ejemplo:)http://10.0.0.1:8000.Dada la información anterior, se podría crear un script que pruebe un proxy antes de configurarlo. Si no hay un proxy disponible, se debe usar una conexión directa.
A continuación se muestra un script de detección de proxy que prueba el
http://10.0.0.1:8000/yhttp://10.0.0.2:8000proxys .Pon el código en
/etc/apt/detect-http-proxy:Ahora, APT debe estar configurado para usar el script de detección de proxy anterior, por lo tanto, ingrese el siguiente código
/etc/apt/apt.conf.d/30detectproxy:También puse el siguiente código en el archivo para evitar que algún host sea proxificado.
Por defecto, el script muestra si se usa un proxy o no. Para deshabilitar eso, edite
/etc/apt/detect-http-proxyy cambieshow_proxy_messages=1ashow_proxy_messages=0.fuente
apt-cacher-ng::client?if nc -w1 -z 192.168.0.2 3142; then printf http://192.168.0.2:3142; else printf DIRECT; fi. Esperemos que la característica indocumentada se elimine :)i=192.168.0.2;nc -zw1 $i 3142&&echo http://$i:3142/||echo DIRECT: pAhora hay una forma oficial de hacer esto, usando la opción
Acquire::http::Proxy-Auto-Detect(vea laapt.confpágina de manual). El comportamiento es similar al antiguo indocumentadoAcquire::http::ProxyAutoDetect(nota presencia / ausencia de guiones en las opciones de configuración nuevas / antiguas), es en gran medida compatible con versiones anteriores, pero se ha extendido ...Estoy en el proceso de enviar un parche a los mantenedores de apt para mejorar la documentación, pero dado que es poco probable que sea una versión de apt que se envíe con un lanzamiento de distribución durante bastante tiempo, incluiré el texto de El parche propuesto aquí:
Acquire::http::Proxy-Auto-Detectse puede usar para especificar un comando externo para descubrir el proxy http que se usará. APT puede invocar el comando varias veces y pasará un URI al comando como su primer y único parámetro. APT espera que el comando muestre el proxy que se usará para contactar al URI en cuestión en su stdout como una sola línea en el estilohttp://proxy:port/, o la palabraDIRECTsi no se debe usar un proxy. Ningún resultado indica que se debe usar la configuración genérica del proxy.Tenga en cuenta que la detección automática no se utilizará para un host si ya se ha configurado una configuración de proxy específica del host a través de
Acquire::http::Proxy::HOST.Para diagnosticar interacciones con el comando externo, configure
Debug::Acquire::http=yesy / o,Debug::Acquire::https=yespor ejemplo, utilice el-oparámetro de línea de comando.Tenga en cuenta que está utilizando una versión preliminar de apt, versiones 1.3 ~ exp2 a 1.3, luego hay un error (probablemente corregido por 1.3.1) que hace que apt analice el stderr del comando externo junto con el stdout.
fuente
/etc/apt/apt.conf.d/02proxy:/usr/local/bin/apt-proxy-detect.sh:Línea de comando
ncque funcionar (sudo apt-get install netcat) si falta.chmod +x /usr/local/bin/apt-proxy-detect.shCómo funciona
Si puede conectarse a un proxy, imprime el proxy que APT usa. Si no puede, imprime CHUG DIRECTOS y APT normalmente.
salsa
fuente