it-swarm.com.de

Wie kann ich Add-Apt-Repository über einen Proxy zum Laufen bringen?

Ich versuche die "Installation von Cross Toolchain auf Ubuntu 10.04 (Lucid) und 10.10 (Maverick) Hosts" Anweisungen auf wiki.linaro.org (auf meiner Ubuntu 10.04 VM) zu befolgen. . Der erste Schritt ist:

Sudo add-apt-repository ppa:linaro-maintainers/toolchain

Aber wenn ich renne, bekomme ich:

Error reading https://launchpad.net/api/1.0/~linaro-maintainers/+archive/toolchain: <urlopen error [Errno 110] Connection timed out>

Ich vermute, das Problem liegt in meiner Konfiguration für den Proxyserver meines Arbeitgebers, insbesondere für HTTPS.

Als ich https://launchpad.net/api/1.0/~linaro-maintainers/+archive/toolchain in Firefox öffnete, wurde "Die Verbindung ist abgelaufen" angezeigt. Ich ging dann zu Firefox-Einstellungen -> Erweitert -> Netzwerk -> Einstellungen ... und stellte HTTP-Proxy auf "Gateway" und Port auf 8080 ein und aktivierte "Diesen Proxyserver für alle Protokolle verwenden". Dann wurde die Seite geladen. Dies unterstützt meine Theorie.

Ich habe versucht, die Umgebungsvariablen http_proxy und https_proxy festzulegen (sowohl in Klein- als auch in Großbuchstaben):

$ set | grep -i proxy
HTTPS_PROXY=https://gateway:8080
HTTP_PROXY=http://gateway:8080
http_proxy=http://gateway:8080
https_proxy=https://gateway:8080

Ich habe auch versucht, sie zu ändern:

$ set | grep -i proxy
HTTPS_PROXY=gateway:8080
HTTP_PROXY=gateway:8080
http_proxy=gateway:8080
https_proxy=gateway:8080

Und ich habe versucht, diese zweite Zeile zu /etc/apt/apt.conf hinzuzufügen:

Acquire::http::proxy "http://gateway:8080/";
Acquire::https::proxy "https://gateway:8080/";

Aber ich bekomme weiterhin den gleichen Fehler.

Wie behebe ich das?

Update: Ich habe die Anweisungen in der akzeptierten Antwort auf "Problem befolgt Hinzufügen von Repositorys und Herstellen einer Verbindung vom Terminal hinter einem Proxy " und weiter:

$ Sudo add-apt-repository ppa:linaro-maintainers/toolchain
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv 1DD749B890A6F66D050D985CF1FCBACA7BE1F97B
gpg: requesting key 7BE1F97B from hkp server keyserver.ubuntu.com
gpgkeys: HTTP fetch error 7: couldn't connect to Host
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0

Ich frage mich, ob der "HTTP-Abruffehler" bedeutet, dass ich auch "Defaults env_keep = http_proxy" zu /etc/sudoers... hinzufügen muss.

Update Nr. 2: Ich fügte hinzu:

Defaults env_keep="http_proxy"
Defaults env_keep="https_proxy"

... wie in Kommentar 18 für Fehler 516032 , aber ich erhalte immer noch den gleichen Fehler "gpgkeys: HTTP-Abruffehler 7: Verbindung zum Host konnte nicht hergestellt werden".

Und das ist merkwürdig:

$ Sudo env | grep proxy
https_proxy=https://gateway:8080

... weil http_proxy nicht da ist.

Jeder Rat wird geschätzt.

Update Nr. 3: Da der Host meines VM ein Laptop ist, habe ich ihn mit nach Hause genommen und dort versucht (ohne Proxies) :

$ Sudo add-apt-repository ppa:linaro-maintainers/toolchain
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv 1DD749B890A6F66D050D985CF1FCBACA7BE1F97B
gpg: requesting key 7BE1F97B from hkp server keyserver.ubuntu.com
gpg: key 7BE1F97B: public key "Launchpad Linaro Overlay PPA" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

Es funktionierte. Das Problem hängt also mit der Proxy-Konfiguration zusammen. Aber ich denke, ich habe eine Problemumgehung.

118
Daryl Spitzer

Weisen Sie Sudo an, die Umgebung nicht nur zu konfigurieren, sondern auch mit der Option -E zu schützen:

export http_proxy=http://<proxy>:<port>
export https_proxy=http://<proxy>:<port>
Sudo -E add-apt-repository ppa:linaro-maintainers/toolchain

mit Benutzername und Passwort:

export https_proxy=https://<username>:<password>@<proxy>:<port>
182
Amal Pillai

Verwenden Sie den folgenden Code in einem Terminal, um den GPG-Schlüssel hinter dem Proxy hinzuzufügen.

Sudo apt-key adv --keyserver-options http-proxy=http://USER:[email protected]_URL:PORT/ --keyserver keyserver.ubuntu.com --recv-keys GPG_KEY

Und ersetzen Sie Großbuchstaben entsprechend. Wenn Sie einen Proxy ohne Benutzerauthentifizierung verwenden (d. H. Benutzername und Kennwort), verwenden Sie stattdessen http-proxy=http://PROXY_URL:PORT/.

Um beispielsweise GPG_KEY=C2514567EEA14886 zu haben, können Sie Folgendes verwenden:

Sudo apt-key adv --keyserver-options http-proxy=http://user:[email protected]:3128/ --keyserver keyserver.ubuntu.com --recv-keys C2514567EEA14886

wo,

USER_ID=user
PASSWORD=abc123
PROXY_URL=10.10.2.21
PORT=3128

Wenn Sie keine Benutzerauthentifizierung haben, verwenden Sie einfach,

Sudo apt-key adv --keyserver-options http-proxy=http://10.10.2.21:3128/ --keyserver keyserver.ubuntu.com --recv-keys C2514567EEA14886
39
Patxi Gomez

Endlich! Sie müssen https_proxy einstellen über:

export https_proxy=....

nur gesetztes http_proxy reicht nicht aus.

Und ich musste den Befehl add-apt-repository als root ausführen, NICHT über Sudo.

Code:

Sudo su
add-apt-repository ppa:........
9
DaRattler

Es scheint, dass die Proxy-Konfiguration eingerichtet ist, aber irgendwie kann der Server nicht kontaktiert werden ...

Ich hatte ein sehr ähnliches Problem, das ich folgendermaßen gelöst habe: Der Unternehmens-Proxy lässt aus Sicherheitsgründen nur die Ports 80 und 443 zu. Wenn das HKP-Protokoll also Port 11371 verwendet, werden Sie nicht durchgelassen.

Wenn Sie also keinen SSH-Code mehr haben und den Schlüssel nicht von einem Ihrer Server außerhalb herunterladen und lokal installieren möchten, können Sie den Schlüsselserver unter einem der unten aufgeführten angeben und den Port angeben:

http://sks-keyservers.net/overview-of-pools.php

z.B.:

apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys XXXXX

Boom, Voila!

6
leroyse

Der Grund, warum Ihre sudoers Änderung nicht wie erwartet funktioniert hat, ist folgender:

    Defaults env_keep="http_proxy"
    Defaults env_keep="https_proxy"

Du hättest schreiben sollen:

    Defaults env_keep+="http_proxy"
    Defaults env_keep+="https_proxy"

Stellen Sie außerdem sicher, dass der Abstand zwischen Defaults und env_keep jedes Mal ein Tabulator ist.

3
Urhixidur

Ich habe es geschafft, dies zu umgehen, indem ich /usr/lib/python3/dist-packages/softwareproperties/ppa.py editierte und hinzufügte

"--keyserver-options", "http-proxy=<proxy_url>",

unter der folgenden Zeile

"--keyserver", self.keyserver,

Weitere Hintergrundinformationen

ppa.py ist das Skript python, das von add-apt-repository zum Aufrufen von gpg verwendet wird. Manchmal scheint es einen Fehler mit gpg zu geben, bei dem die Umgebungsvariable http_proxy nicht verwendet wird. Dies kann bestätigt werden, indem die Datei /root/.gnupg/dirmngr.conf angezeigt und überprüft wird, ob honor-http-proxy nicht auskommentiert ist.

3
Junior Leota

Dieser vierstufige Ansatz funktionierte für mich auf einem Ubuntu 17.04 VM hinter einem Unternehmensproxy.

  1. Sudo apt-add-repository ppa:brightbox/Ruby-ng und lass es scheitern
  2. Sudo apt update und suche nach einer Fehlermeldung wie The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F5DA5F09C3173AA6
  3. Sudo apt-key adv --keyserver-options http-proxy=http://10.0.2.2:3128 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys F5DA5F09C3173AA6
  4. Sudo apt update funktioniert jetzt

Beachten Sie, dass auf dem Host VM ein Proxy-Server CNTLM an Port 3128 ausgeführt wird.

3
thegreendroid

Das hat mir geholfen:

Sudo https_proxy='https://user:[email protected]:port/' \
http_proxy='http://user:[email protected]:port/' \
ftp_proxy='ftp://user:[email protected]:port/' \
no_proxy=localhost,127.0.0.0/8,10.0.0.0/8 add-apt-repository ppa:webupd8team/Java

Ich vermute, dass es einige Umgebungsvariablen gibt, die im Befehl nicht benötigt werden, die aber nicht schaden.

1
leo

Fügen Sie den PPA manuell zu Ihrem /etc/apt/sources.list hinzu:

deb http://ppa.launchpad.net/<user>/<repo>/ubuntu trusty main

Speichern Sie die Datei und führen Sie Sudo apt-get update aus. Dieser Fehler kann auftreten:

W: GPG error: http://ppa.launchpad.net trusty InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5BB92C09DB82666C

Führen Sie den folgenden Befehl aus, um den Schlüssel für die PPA zu akzeptieren, und denken Sie daran, den Schlüssel (5BB92C09DB82666C) für die entsprechende PPA zu ändern.

Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 5BB92C09DB82666C

Führe Sudo apt-get update aus und du bist fertig.

Ref: Wie man Launchpad-PPAs in Debian über den Befehl add-apt-repository hinzufügt

1
Ajoy

Eigentlich stoße ich auf die gleichen Probleme, so habe ich diese Seite gefunden.

  • umgebungsvariablen http_proxy (Groß- und Kleinschreibung beachten) und https_proxy (in jedem Fall) tun etwas. Wenn Sie sie nicht festlegen, schlägt dies in der ersten Phase fehl. Das Festlegen der Umgebungsvariablen scheint jedoch eine gewisse Auswirkung zu haben. es schlägt fehl, wenn Sie sie nicht exportieren

    TCRKVMW ~ $ Sudo su -
    TCRKVMW ~ # export http_proxy=http://10.54.0.4:8080/
    TCRKVMW ~ # export https_proxy=http://10.54.0.4:8080/
    TCRKVMW ~ # add-apt-repository ppa:webupd8team/Java
    You are about to add the following PPA:
     Oracle Java (JDK) Installer (automatically downloads and installs Oracle JDK7 / JDK8 / JDK9). There are no actual Java files in this PPA.
    

    (der Rest ist erfolgreich - diesmal)

Die Sache ist, manchmal bleibt sie einfach hängen und endet mit der üblichen Timeout-Meldung: PPA kann nicht hinzugefügt werden: "Fehler beim Lesen https://launchpad.net/api/1.0/~webupd8team/+archive/Java : (7, 'Verbindung zum launchpad.net-Port 443 fehlgeschlagen: Zeitüberschreitung der Verbindung') "'.

... aber ich betrüge, ich mache das alles als root. Eine einfache Lösung besteht darin,/etc/profile zu bearbeiten oder unter Ubuntu/Mint einfach ein Skript in /etc/profile.d hinzuzufügen:

    TCRKVMW ~ $ Sudo su -c 'F=/etc/profile.d/proxy.sh S="export proxy_http=\"http://192.168.99.4\"\nexport proxy_https=\"http://192.168.99.4\"" ; echo -e ${S} > ${F} ; chmod 700 ${F}'

Oh, ja, es gibt auch das, was Curl ausmacht (das übrigens von apt-add-repository verwendet wird). Das Handbuch fordert Sie auf, .curlrc in Ihr Home-Verzeichnis aufzunehmen. Da das apt-add-Verzeichnis dem Root-Verzeichnis angehört, bedeutet dies, dass es zu /root/.curlrc hinzugefügt wird:

    proxy_http="http://192.168.99.4"
    proxy_https="http://192.168.99.4"

Eine gute Idee ist, dasselbe in Ihrem eigenen ~/.curlrc zu tun

Außerdem ist es eine gute Sache, den Proxy in/etc/wgetrc zu aktivieren, obwohl dies nichts mit der gestellten Frage zu tun hat. Ich speichere Ihnen nur eine weitere Suche bei Google (wenn Sie dies lesen, haben Sie mehrere mit einem Proxy ) ...

1
Marabiloso

In /etc/apt/apt.conf.d/01proxy füge so etwas hinzu

Acquire::http { Proxy "http://192.168.0.99:3142"; };

Dies wird Proxy alle Aptitude-Downloads, aber ich denke, dies ist die einzige Möglichkeit, dies im Backend zu tun. Wenn Ihr Proxy dies unterstützt, können Sie auch eine URL wie http://my.proxy:port/www.target.site.com/url verwenden, von der ich weiß, dass sie für apt-cache-ng funktioniert.

Ich bin nicht sicher, ob add-apt-repository diese Einstellungen verwendet, aber wenn Sie dies nicht tun können, können Sie das Repository immer zu Ihrem /etc/apt/sources.list oder /etc/apt/sources.list.d/*mytoolchain* hinzufügen.

Seit 11.10 gibt es im Hauptrepo auch ein Cross-Toolchailable, nur apt-get install gcc-arm-linux-gnueabihf. Es gibt auch Cross-Toolchains von Emdebian und hier einige Anweisungen: http://gsoc.sitedethib.com/posts/apt-get_install_gcc-4.7-arm-linux-gnueabihf/

1
user72421

Führen Sie den folgenden Befehl im Terminal aus

export http_proxy=http://username:[email protected]:port/
export ftp_proxy=http://username:[email protected]/
0
Deepak Rajput

Systemweite Umgebungsvariablen sollten wirklich zu /etc/environment hinzugefügt werden (verwenden Sie Sudo oder gksu), aber der Ihnen gemeldete Fehler scheint zu besagen, dass keine GPG-Daten gefunden wurden. Ideen:

  • überprüfen Sie die Proxy-Einstellungen (wenn Sie Zugriff haben)
  • überprüfen Sie, ob der Proxy die Ausgabe von verschlüsseltem Datenverkehr beeinträchtigt.
  • führen Sie eine fortlaufende netstat aus, um festzustellen, ob tatsächlich eine Verbindung zum Proxy hergestellt wird
  • das letzte Mittel wäre, tcpdump & inspect in wireshark durchzuführen
  • versuche einen http tunnel;)
0
t0m5k1

Ich benutze http via curl, anstatt zu versuchen, apt-key oder gpg zu vertreten:

curl -sSL\' http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xBBEBDCB318AD50EC6865090613B00F1FD2C19886 '\| Sudo apt-key add -

Diese Methode sollte anstelle der apt-key Befehlszeile oder http_proxy oder https_proxy Umgebungsvariableneinstellungen verwendet werden (die in den neuesten Versionen von apt-key deaktiviert sind).

0
Dan Anderson

Eine andere Lösung ist das Hinzufügen einer APT proxy.conf -Datei, /etc/apt/apt.conf.d/proxy.conf

Acquire::http::Proxy "http://your.proxy.server.here.com:port/";
Acquire::https::Proxy "http://your.proxy.server.here.com:port/";
0
Dan Anderson