Respuestas:
En algunas versiones, sudo está configurado de tal manera que todas las variables de entorno se borran al ejecutar el comando. Para mantener el valor de su http_proxy y corregir esto, necesita editar / etc / sudoers, ejecute:
visudo
Luego encuentre una línea que diga:
Defaults env_reset
y agregue después:
Defaults env_keep = "http_proxy ftp_proxy"
Las cosas comenzarán a funcionar como se espera.
Gracias a kdogksu en los foros de Ubuntu por encontrar la solución para esto.
Para no solo reparar apt-get sino también utilidades gráficas de X11 como, por ejemplo, synaptic, mintintall, ...) la siguiente línea /etc/sudoers
debería hacer el trabajo:
Defaults env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY"
Utilizar este.
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
Esto es lo que yo uso. Funciona perfectamente.
Apt también permite colocar configuraciones individuales en archivos debajo /etc/apt/apt.conf.d/
, por lo que esto tiene exactamente el mismo efecto que el anterior, pero puede ser más fácil de mantener si tiene otras líneas en el .conf
archivo:
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf.d/05proxy
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
apt.conf
.
/etc/apt/apt.conf
o usar colocar un archivo de configuración en /etc/apt/apt.conf.d
... ¡o funciona! :-)
E: Syntax error /etc/apt/apt.conf:2: Extra junk at end of file
Lo que funcionó para mí fue:
sudo http_proxy=http://yourserver apt-get update
Lo cual es un poco extraño porque simplemente exportando http_proxy y luego ejecutando sudo echo $ http_proxy imprimió obedientemente el valor exportado
$http_proxy
se expande antes de que sudo incluso se ejecute.
export http_proxy=http://proxyusername:proxypassword@proxyaddress:proxyport
sudo apt-get update
La exportación no debería necesitarse sudo
y, si su proxy es anónimo, simplemente abandone la proxyusername:proxypassword@
parte.
wget
?
Si es una configuración temporal , puede intentar esto: sudo bash -c 'http_proxy = "http: // <proxy_host>: <proxy_port> /" apt-get update'
Necesita esto, porque la variable de entorno debe definirse para la cuenta "raíz". Hacer y exportar antes no debería funcionar.
Para una configuración permanente , deberá modificar un archivo del sistema. Esto ya se describe en la siguiente respuesta sobre ¿Cómo verificar que el proxy de red realmente se aplica? .
Ubuntu es increíblemente hostil para autenticar proxies. Uso una computadora portátil Ubuntu en el trabajo y la cantidad de roturas es increíble.
Synaptic, Apt, Firefox, Chromium, etc.todos usan diferentes métodos para especificar un proxy y no hay ningún lugar para especificar credenciales de forma segura.
Algunos errores sobre el tema: https://bugs.edge.launchpad.net/ubuntu/+source/msttcorefonts/+bug/220070
https://bugs.edge.launchpad.net/ubuntu/+source/apt-cacher/+bug/198138
https://bugs.edge.launchpad.net/ubuntu/+source/apt/+bug/433827
https://bugs.edge.launchpad.net/ubuntu/+source/b43-fwcutter/+bug/683630
La sugerencia de Oli de utilizar una exportación es la única forma vagamente segura de hacerlo. A veces también es posible "evitar" el soporte de proxy si el servidor proxy está utilizando autenticación secundaria para minimizar la carga en los servidores de autenticación principales (por ejemplo, Active Directory). Aquí es donde el proxy autentica la primera conexión del proxy contra AD, luego, durante un período de tiempo establecido (generalmente 5 minutos), todas las demás conexiones son "confiables" para ser ese usuario. Por lo tanto, puede abrir Firefox, navegar por Internet (en cualquier lugar), luego probar su utilidad (wget, synaptic, lo que sea) especificando un proxy, pero deje el nombre de usuario en blanco.
Ubuntu es generalmente hostil a cualquier entorno corporativo simplemente porque permite que las contraseñas se lean tan fácilmente. Seahorse es uno de los principales culpables, pero Network Manager también es impactante: conéctese a cualquier red autenticada por PEAP y acaba de almacenar su contraseña en el applet para que cualquiera pueda ver quién puede tomar prestada su computadora portátil. Aparentemente, compartir computadoras portátiles se considera un sacrilegio en tierra de Linux, ya que los desarrolladores de Seahorse rechazaron las afirmaciones de inseguridad. Después de eso, no tuve el corazón para contactar a los desarrolladores del administrador de red.
¿Intentaste editar /etc/apt/apt.conf
? Lo uso para usar apt detrás de nuestro proxy corporativo.
Acquire::http::proxy "http://user:password@host:port/";
Creo que apt usa este valor a menos que $ http_proxy esté definido en su entorno de shell (es decir, $ http_proxy tiene prioridad).
apt.conf
aún debe usarse. Puede ver qué ajustes de configuración cree que ha establecido mediante el uso apt-config dump
.
Si desea ejecutar "sudo apt-get update" a través del proxy en la línea de comandos, use el siguiente comando,
sudo apt-get -o Acquire::http::proxy="http://user:password@host:port/" update;