
Utilizo Debian 6. Estoy sentado detrás de un proxy, así que configuré Debian para usar ese proxy. La navegación y cualquier actividad HTTP y FTP a través de la GUI funcionan bien.
Quería actualizar mi repositorio de paquetes, así que escribí en un shell:
sudo aptitude
entonces, si intento actualizar el repositorio (presionando 'u'), aptitude se detiene al intentar acceder al servidor FTP de Debian, y esta acción eventualmente expirará.
Pero si lo intenta:
$ su
# aptitude
trabajos de actualización.
¿Cuál es la diferencia entre las dos invocaciones? Las variables de entorno $http_proxy
y $ftp_proxy
existen en ambos shells.
Respuesta1
ElsuEl comando inicia otro Shell como root (o quien sea si proporciona un nombre de usuario y una contraseña correcta). Este shell obtiene todas las variables de entorno normales, que por supuesto incluyen las variables HTTP_PROXY y FTP_PROXY. Así funciona.
ElsudoEl comando QUITA TODAS las variables de entorno excepto un subconjunto específicamente elegido... que por supuesto NO incluye las variables HTTP_PROXY y FTP_PROXY, por lo que sus comandos fallan.
Puedes hacersudomantenga las variables *_PROXY editando el archivo de configuración sudoers, usando elvisudocomando (por supuesto).
Agregar lo siguiente harásudomantenga los valores de HTTP_PROXY y FTP_PROXY:
Defaults env_keep += "http_proxy ftp_proxy https_proxy HTTP_PROXY FTP_PROXY HTTPS_PROXY"
Casualmente, si agrega DISPLAY & HOME a esa lista, también puede usar programas gui con sudo (necesitan la variable DISPLAY para conectarse)
Defaults env_keep += "DISPLAY HOME"
Incluso puedes agregar esas dos líneas, así. (El+=es la clave aquí) Recuerde agregar estas líneas hacia el final del archivo, ya que en las primeras líneas generalmente establece el 'env_keep'variable con una recta'=', que borra cualquier valor anterior.
Respuesta2
Yo mismo estaba luchando con esto y finalmente opté por la solución propuesta en Ask Ubuntu: apt-get no funciona con proxy
Si la configuración
http_proxy
no funciona, intente editarapt.conf
. En
Ubuntuapt.conf
está fragmentado en/etc/apt/apt.conf.d/
el directorio.
En este directorio editar/etc/apt/apt.conf.d/01ubuntu
:APT { Acquire { http { Proxy "http://user:password@server:port"; }; }; };