Come eseguire "sudo apt-get update" tramite proxy nella riga di comando?

63

Nel mio ufficio voglio aggiornare e scaricare tramite (wget) e qui stanno usando il proxy?

Come posso farlo tramite la linea di comando?

    
posta Renjith G 15.10.2010 - 13:07

7 risposte

74

In alcune versioni sudo è configurato in modo tale che tutte le variabili d'ambiente vengano cancellate durante l'esecuzione del comando. Per mantenere il valore del tuo link e risolvere il problema, devi modificare / etc / sudoers, eseguire:

visudo

Quindi trova una riga che dice:

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 trovare la soluzione per questo.

Per non solo correggere apt-get ma anche i programmi di utilità grafica X11 come e.gaptaptic, mintintall, ...) la seguente riga in /etc/sudoers dovrebbe fare il lavoro:

Defaults env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY"
    
risposta data paulo.albuquerque 29.12.2010 - 20:21
33

Usa questo.

[email protected]:~$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://Username:[email protected]:8080";

Questo è quello che uso. Funziona perfettamente.

Apt consente inoltre di inserire le singole impostazioni nei file sotto /etc/apt/apt.conf.d/ , quindi questo ha esattamente lo stesso effetto di quanto sopra, ma potrebbe essere più facile da mantenere se si hanno altre righe nel file .conf :

[email protected]:~$ cat /etc/apt/apt.conf.d/05proxy
Acquire::http::Proxy "http://Username:[email protected]:8080";
    
risposta data John Cartwright 18.03.2013 - 05:24
10
export http_proxy=http://proxyusername:[email protected]:proxyport
sudo apt-get update

L'esportazione non dovrebbe richiedere sudo ing e se il tuo proxy è anonimo, butta solo la parte proxyusername:[email protected] .

    
risposta data Oli 15.10.2010 - 13:19
9

La cosa che ha funzionato per me è stata:

sudo http_proxy=http://yourserver apt-get update

Che è un po 'strano perché esportare semplicemente http_proxy e poi eseguire sudo echo $ http_proxy ha stampato ubbidientemente il valore esportato

    
risposta data Sam 07.04.2011 - 09:05
3

Ubuntu è incredibilmente ostile all'autenticazione dei proxy. Uso un portatile 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'è un posto dove specificare le credenziali in modo sicuro.

Alcuni bug sull'argomento: link

link

link

link

Il suggerimento di Oli di usare un'esportazione è l'unico modo vagamente sicuro per farlo. A volte è 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, forse Active Directory). Qui è dove la prima connessione proxy è autenticata dal proxy contro AD, quindi per un periodo di tempo impostato (in genere 5 minuti) tutte le altre connessioni sono "attendibili" per essere quell'utente. Pertanto, puoi aprire firefox, navigare in Internet (ovunque lo faranno), quindi provare la tua utility (wget, synaptic, qualsiasi cosa) specificando un proxy, ma lasciare il nome utente vuoto.

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 salvato la password nell'applet affinché chiunque possa vedere chi potrebbe prendere in prestito il tuo laptop. Apparentemente la condivisione di laptop è considerata un sacrilegio in terra Linux, dal momento che gli sviluppatori di Seahorse hanno respinto le richieste di insicurezza. Dopodiché, non avevo il coraggio di contattare gli sviluppatori di network-manager.

    
risposta data Scaine 29.12.2010 - 21:24
3

Hai provato a modificare /etc/apt/apt.conf ? Io uso questo per usare apt dietro il nostro proxy aziendale.

Acquire::http::proxy "http://user:[email protected]:port/";

Credo che apt utilizzi questo valore a meno che $ http_proxy sia definito nell'ambiente di shell (ad esempio $ http_proxy ha la precedenza).

    
risposta data Jon Brett 15.10.2010 - 15:32
1

Se è una configurazione temporanea , puoi provare questo: sudo bash -c 'http_proxy="http: // & lt; proxy_host & gt;: & lt; proxy_port & gt; /" apt-get update "

È 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 a proposito di Come verificare Il proxy di rete è realmente applicato? .

    
risposta data Huygens 15.10.2010 - 13:21

Leggi altre domande sui tag