Antworten:
In einigen Releases ist sudo so konfiguriert, dass alle Umgebungsvariablen gelöscht werden, wenn der Befehl ausgeführt wird. Um den Wert für http_proxy beizubehalten und dieses Problem zu beheben, müssen Sie / etc / sudoers bearbeiten und Folgendes ausführen:
visudo
Dann finden Sie eine Zeile, die besagt:
Defaults env_reset
und füge danach hinzu:
Defaults env_keep = "http_proxy ftp_proxy"
Die Dinge werden wie erwartet funktionieren.
Vielen Dank an kdogksu in den Ubuntu-Foren für die Lösung .
Um nicht nur apt-get, sondern auch grafische X11-Utils wie zB synaptic, mintintall, ...) zu reparieren, sollte die folgende Zeile in /etc/sudoers
den Job passen :
Defaults env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY"
Benutze das.
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
Das ist was ich benutze. Funktioniert perfekt.
Mit Apt können auch einzelne Einstellungen in Dateien darunter platziert werden. /etc/apt/apt.conf.d/
Dies hat genau den gleichen Effekt wie oben, ist jedoch möglicherweise einfacher zu pflegen, wenn Sie andere Zeilen in der .conf
Datei haben:
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
oder eine Konfigurationsdatei platzieren in /etc/apt/apt.conf.d
.... funktioniert entweder! :-)
E: Syntax error /etc/apt/apt.conf:2: Extra junk at end of file
Das, was für mich funktioniert hat, war:
sudo http_proxy=http://yourserver apt-get update
Was ein bisschen seltsam ist, weil einfach http_proxy exportiert und dann sudo echo $ http_proxy ausgeführt wird, wobei der exportierte Wert gehorsam ausgedruckt wird
$http_proxy
wird erweitert, bevor sudo überhaupt ausgeführt wird.
export http_proxy=http://proxyusername:proxypassword@proxyaddress:proxyport
sudo apt-get update
Der Export sollte nicht erforderlich sein, sudo
und wenn Ihr Proxy anonym ist, lassen Sie das proxyusername:proxypassword@
Teil einfach fallen .
wget
?
Wenn es sich um eine temporäre Konfiguration handelt , können Sie Folgendes versuchen: sudo bash -c 'http_proxy = "http: // <proxy_host>: <proxy_port> /" apt-get update'
Sie benötigen dies, da die Umgebungsvariable für das Konto "root" definiert werden muss. Vorheriges Ausführen und Exportieren sollte nicht funktionieren.
Für eine dauerhafte Konfiguration müssen Sie eine Systemdatei ändern. Dies wird bereits in der folgenden Antwort beschrieben: Wie wird überprüft, ob der Netzwerk-Proxy wirklich angewendet wird? .
Ubuntu ist unglaublich feindlich gegenüber der Authentifizierung von Proxys. Ich benutze einen Ubuntu-Laptop bei der Arbeit und die Anzahl der Brüche ist unglaublich.
Synaptic, Apt, Firefox, Chromium usw. verwenden unterschiedliche Methoden zum Festlegen eines Proxys und es gibt keinen Ort, an dem Anmeldeinformationen sicher angegeben werden können.
Einige Fehler zum Thema: 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
Olis Vorschlag, einen Export zu verwenden, ist die einzige vage sichere Möglichkeit, dies zu tun. Manchmal ist es auch möglich, die Proxy-Unterstützung zu "fudgen", wenn der Proxy-Server die sekundäre Authentifizierung verwendet, um die Belastung der Hauptauthentifizierungsserver (z. B. Active Directory) zu minimieren. Hier wird die erste Proxy-Verbindung vom Proxy gegen AD authentifiziert, und für einen festgelegten Zeitraum (normalerweise 5 Minuten) werden alle anderen Verbindungen als dieser Benutzer "vertrauenswürdig" eingestuft. Daher können Sie Firefox öffnen, im Internet surfen (wo auch immer) und dann Ihr Dienstprogramm (wget, synaptic, was auch immer) ausprobieren, indem Sie einen Proxy angeben, aber den Benutzernamen leer lassen.
Ubuntu ist im Allgemeinen feindlich gegenüber jeder Unternehmensumgebung, nur weil es das Lesen von Passwörtern so einfach macht. Seahorse ist ein Hauptschuldiger, aber Network Manager ist auch schockierend: Stellen Sie eine Verbindung zu einem PEAP-authentifizierten Netzwerk her, und Sie haben gerade Ihr Kennwort im Applet gespeichert, damit jeder sehen kann, wer möglicherweise Ihren Laptop ausleiht. Offenbar wird das Teilen von Laptops im Linux-Land als Sakrileg angesehen, da Seahorse-Entwickler die Behauptung der Unsicherheit zurückwiesen. Danach hatte ich nicht das Herz, mit den Entwicklern des Netzwerkmanagers Kontakt aufzunehmen.
Hast du versucht zu bearbeiten /etc/apt/apt.conf
? Ich benutze dies, um apt hinter unserem Corporate Proxy zu nutzen.
Acquire::http::proxy "http://user:password@host:port/";
Ich glaube, dass apt diesen Wert verwendet, es sei denn, $ http_proxy ist in Ihrer Shell-Umgebung definiert (dh $ http_proxy hat Vorrang).
apt.conf
sollte noch verwendet werden. Mithilfe von können Sie sehen, welche Konfigurationseinstellungen von apt als festgelegt erachtet werden apt-config dump
.
Wenn Sie "sudo apt-get update" über den Proxy in der Befehlszeile ausführen möchten, verwenden Sie den folgenden Befehl:
sudo apt-get -o Acquire::http::proxy="http://user:password@host:port/" update;