Risposte:
In alcune versioni sudo è configurato in modo tale che tutte le variabili di ambiente siano state cancellate durante l'esecuzione del comando. Per mantenere il valore per il tuo http_proxy e risolverlo, devi modificare / etc / sudoers, eseguire:
visudo
Quindi trova una riga che indica:
Defaults env_reset
e aggiungi dopo:
Defaults env_keep = "http_proxy ftp_proxy"
Le cose inizieranno a funzionare come previsto.
Grazie a kdogksu nei forum di Ubuntu per aver trovato la soluzione per questo.
Al fine di risolvere non solo apt-get ma anche utilità grafiche X11 come ad esempio synaptic, mintintall, ...) la seguente riga /etc/sudoers
dovrebbe fare il lavoro:
Defaults env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY"
Usa questo.
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
Questo è quello che uso. Funziona perfettamente.
Apt consente inoltre di posizionare le singole impostazioni nei file /etc/apt/apt.conf.d/
, quindi ha esattamente lo stesso effetto di cui sopra, ma può essere più semplice da mantenere se nel .conf
file sono presenti altre righe :
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 utilizzare posizionare un file di configurazione in /etc/apt/apt.conf.d
.... entrambi funzionano! :-)
E: Syntax error /etc/apt/apt.conf:2: Extra junk at end of file
La cosa che ha funzionato per me è stata:
sudo http_proxy=http://yourserver apt-get update
Il che è un po 'strano perché semplicemente esportando http_proxy e quindi eseguendo sudo echo $ http_proxy è stato stampato obbedientemente il valore esportato
$http_proxy
viene espanso prima ancora che sudo venga eseguito.
export http_proxy=http://proxyusername:proxypassword@proxyaddress:proxyport
sudo apt-get update
L'esportazione non dovrebbe richiedere sudo
ing e se il proxy è anonimo, basta abbandonare la proxyusername:proxypassword@
parte.
wget
?
Se si tratta di una configurazione temporanea , è possibile provare questo: sudo bash -c 'http_proxy = "http: // <proxy_host>: <proxy_port> /" apt-get update'
Questo è necessario perché la variabile di ambiente deve essere definita per l'account "root". Fare ed esportare prima non dovrebbe funzionare.
Per una configurazione permanente , dovrai modificare un file di sistema. Questo è già descritto nella seguente risposta su Come verificare che il proxy di rete sia realmente applicato? .
Ubuntu è incredibilmente ostile all'autenticazione dei proxy. Uso un laptop Ubuntu al lavoro e il numero di rotture è incredibile.
Synaptic, Apt, Firefox, Chromium, ecc. Usano tutti metodi diversi per specificare un proxy e non c'è nessun posto dove specificare le credenziali in modo sicuro.
Alcuni bug sull'argomento: 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
Il suggerimento di Oli di utilizzare un'esportazione è l'unico modo vagamente sicuro per farlo. Talvolta è anche possibile "fudge" il supporto proxy se il server proxy utilizza l'autenticazione secondaria per ridurre al minimo il carico sui server di autenticazione principali (ad esempio, Active Directory). Qui è dove la prima connessione proxy è autenticata dal proxy rispetto ad AD, quindi per un periodo di tempo prestabilito (di solito 5 minuti) tutte le altre connessioni sono "fidate" per essere quell'utente. Pertanto, puoi aprire Firefox, navigare in Internet (ovunque lo farà), quindi provare la tua utility (wget, synaptic, qualunque cosa) specificando un proxy, ma lasciando vuoto il nome utente.
Ubuntu è generalmente ostile a qualsiasi ambiente aziendale semplicemente perché consente di leggere le password così facilmente. Seahorse è un colpevole principale, ma anche Network Manager è scioccante: connettiti a qualsiasi rete autenticata PEAP e hai appena archiviato la password nell'applet per far vedere a chiunque chi potrebbe prendere in prestito il tuo laptop. Apparentemente la condivisione di laptop è considerata un sacrilegio in terra Linux, poiché gli sviluppatori di Seahorse hanno respinto le affermazioni di insicurezza. Successivamente, non ho avuto il coraggio di contattare gli sviluppatori del gestore di rete.
Hai provato a modificare /etc/apt/apt.conf
? Lo uso per usare apt dietro il nostro proxy aziendale.
Acquire::http::proxy "http://user:password@host:port/";
Credo che apt usi questo valore a meno che $ http_proxy non sia definito nel proprio ambiente shell (ovvero $ http_proxy abbia la precedenza).
apt.conf
dovrebbe ancora essere usato. Puoi vedere quali impostazioni di configurazione apt pensa siano state impostate usando apt-config dump
.
Se si desidera eseguire "sudo apt-get update" tramite proxy nella riga di comando, utilizzare il comando seguente,
sudo apt-get -o Acquire::http::proxy="http://user:password@host:port/" update;