Frage Wie erhalte ich add-apt-repository, um über einen Proxy zu arbeiten?


Ich versuche dem zu folgen "Installing Cross Toolchain auf Ubuntu 10.04 (Lucid) und 10.10 (Maverick) Hosts" Anweisungen auf wiki.linaro.org (auf meiner Ubuntu 10.04 VM). 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 Proxy-Server meines Arbeitgebers, insbesondere für HTTPS.

Als ich geöffnet habe https://launchpad.net/api/1.0/~linaro-maintainer/+archive/toolchain In Firefox habe ich "Die Verbindung ist abgelaufen". Ich ging dann in Firefox Einstellungen -> Erweitert -> Netzwerk -> Einstellungen ... und HTTP-Proxy auf "Gateway" und Port 8080, und aktiviert "Verwenden Sie diesen Proxy-Server für alle Protokolle". Dann wird die Seite geladen. Dies unterstützt meine Theorie.

Ich habe versucht, die Umgebungsvariablen http_proxy und https_proxy (sowohl Groß- als auch Kleinbuchstaben) zu setzen:

$ 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 Fehler?

Aktualisieren: Ich folgte den Anweisungen in der akzeptierte Antwort zu "Problem beim Hinzufügen von Repositories und Verbinden vom Terminal hinter einem Proxy" und wurde 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 fetch error" bedeutet, dass ich auch "Defaults env_keep = http_proxy" hinzufügen muss /etc/sudoers...

Update # 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 bekomme immer noch den gleichen "gpgkeys: HTTP fetch Fehler 7: konnte nicht mit Host verbinden" Fehler.

Und das ist neugierig:

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

... weil http_proxy nicht da ist.

Jeder Rat wird geschätzt.

Update # 3: Da der Host meiner VM ein Laptop ist, nahm ich ihn mit nach Hause und probierte dort (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 nehme an, ich habe einen Workaround.


109
2017-07-15 00:49


Ursprung


Nur als Referenz askubuntu.com/questions/60217/... - Deepak Rajput


Antworten:


Informiere dich nicht nur über Proxies sudo die Umwelt mit der -E Möglichkeit:

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>

163
2018-02-08 11:49



Das hat für mich funktioniert! :) Vielen Dank! - RadiantHex
Du hast wirklich gearbeitet - Shashwat Kumar
-E (nachdem ich all die anderen Sachen oben getan habe), hat es für mich funktioniert. - cschooley
und ja, das https_proxy Konfiguration war notwendig ...: P - monkut
Wie kann ich den Proxy dauerhaft hinzufügen und den Schalter "E" umgehen? Ich habe die / etc / environment-Datei ordnungsgemäß mit den Zeilen hinzugefügt ... Danke - Enrique


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

sudo apt-key adv --keyserver-options http-proxy=http://USER:PASSWORD@PROXY_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 http-proxy=http://PROXY_URL:PORT/ stattdessen.

Zum Beispiel haben GPG_KEY=C2514567EEA14886 Sie können verwenden,

sudo apt-key adv --keyserver-options http-proxy=http://user:abc123@10.10.2.21:3128/ --keyserver keyserver.ubuntu.com --recv-keys C2514567EEA14886

woher,

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

37
2018-02-06 18:04



Das ist die definitive Lösung! THAANKS! - linello
Dies "repariert" die Ausführung von add-apt-repository nicht. Tatsächlich funktioniert es um eine seiner Aufgaben. Mindestens ein zusätzlicher Befehl ist erforderlich: sudoedit /etc/apt/sources.list.d/XXXX.list + manuelle Edition zum Hinzufügen der deb URLs ... - Chucky
Dies ist die beste Antwort. - Vik
Das hat auch für mich funktioniert. Danke für die ausführliche Erklärung. - Chuck Conway
Wäre perfekt, wenn Sie einige Informationen hinzufügen, wie Proxy ewig zu beheben. Lösung, die Sie zur Verfügung gestellt erfordert viel zu tippen - Danatela


Endlich! Sie müssen https_proxy über:

export https_proxy=....

nur set http_proxy ist nicht genug.

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

Code:

sudo su
add-apt-repository ppa:........

8
2017-10-14 09:55





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

Ich hatte ein sehr ähnliches Problem, das ich so gelöst habe: Der Firmen-Proxy erlaubt nur Port 80 und 443 aus Sicherheitsgründen, also Ereignis bei der Einrichtung, da das HKP-Protokoll Port 11371 verwendet, wird es Sie nicht durchlassen.

Also, kurz vor SSH-out und holen Sie den Schlüssel von einem Ihrer Server draußen, herunterladen und lokal installieren, können Sie den Schlüsselserver von einer 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
2017-07-26 09:40



Jep. Das funktionierte für mich während der Installation von Mono unter Debian 7: sudo -E apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF - ken


Der Grund deiner sudoers Änderung hat nicht wie erwartet funktioniert, dass statt:

    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 auch sicher, dass der Abstand zwischen Defaults und env_keep ist jedes Mal ein Tab.


3
2018-01-21 19:38





Ich habe es geschafft, dies durch Bearbeiten zu umgehen /usr/lib/python3/dist-packages/softwareproperties/ppa.py und hinzufügen

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

unter der folgenden Zeile

"--keyserver", self.keyserver,

Weitere Hintergrundinformationen

ppa.py ist das Python-Skript, das von verwendet wird add-apt-repository gpg aufrufen. Es scheint manchmal einen Fehler mit gpg zu geben, bei dem die Umgebungsvariable http_proxy nicht verwendet wird. Dies kann durch Anzeigen der Datei bestätigt werden /root/.gnupg/dirmngr.conf und überprüfen, um das zu sehen honor-http-proxy ist nicht auskommentiert.


3
2017-07-05 19:56





Das hat mir geholfen:

sudo https_proxy='https://user:password@proxyhost:port/' \
http_proxy='http://user:password@proxyhost:port/' \
ftp_proxy='ftp://user:password@proxyhost: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, aber nicht schädlich sind.


1
2018-06-13 16:48





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

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

Speichern Sie die Datei und führen Sie sie aus sudo apt-get update. 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 das PPA zu akzeptieren, wobei Sie daran denken, den Schlüssel (5BB92C09DB82666C) für das entsprechende PPA zu ändern.

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

Lauf sudo apt-get update und du bist fertig.

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


1
2018-04-06 07:27





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

  • Umgebungsvariablen http_proxy (Groß- und Kleinschreibung beachten) und https_proxy (was auch immer) etwas tun. Wenn sie nicht gesetzt werden, schlägt die erste Stufe fehl, und die Umgebungsvariablen scheinen etwas zu bewirken. Es wird fehlschlagen, 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 es einfach stecken und endet mit der üblichen Timeout-Nachricht:         PPA kann nicht hinzugefügt werden: '"Fehler beim Lesen https://launchpad.net/api/1.0/~webupd8team/+archive/java: (7, 'Fehler beim Verbinden mit launchpad.net-Port 443: Verbindungstimeout abgelaufen') ''.

... 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, da ist auch die Sache mit curl (die übrigens von apt-add-repository verwendet wird). Das Handbuch sagt, curlrc in Ihrem Home-Verzeichnis hinzuzufügen. Da das apt-add-Verzeichnis das eigene Root-Verzeichnis ist, bedeutet es, es zu /root/.curlrc hinzuzufügen:

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

Eine gute Idee ist, das gleiche in Ihrem eigenen ~ / .curlrc zu machen

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


1
2017-10-04 16:31





Dieser vierstufige Ansatz funktionierte für mich auf einer Ubuntu 17.04 VM hinter einem Corporate Proxy.

  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 wird jetzt funktionieren

Beachten Sie, dass auf der Host-VM a ausgeführt wird CNTLM Proxy-Server auf Port 3128.


1
2017-12-14 03:28



Sie müssen nicht darauf warten, dass apt Ihnen sagt, was der Schlüssel ist. Es ist da in den technischen Details von die PPA: "Fingerabdruck: 80F70E11F0F0D5F10CB20E62F5DA5F09C3173AA6" - muru
Das stimmt, aber ich fand diesen Prozess etwas einfacher. - thegreendroid