it-swarm.dev

Jak získám repozitář add-apt pro práci se serverem proxy?

Snažím se postupovat podle pokynů „Instalace křížových nástrojů na Ubuntu 10.04 (Lucid) a 10.10 (Maverick) Hosts“ na wiki.linaro.org (na mém Ubuntu 10.04 VM). Prvním krokem je:

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

Ale když spustím, dostanu:

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

Hádám, že problém je v mé konfiguraci pro proxy server mého zaměstnavatele, zejména pro HTTPS.

Když jsem ve Firefoxu otevřel https://launchpad.net/api/1.0/~linaro-maintainers/+archive/toolchain , ve Firefoxu se mi zobrazí zpráva „Vypršel časový limit připojení“. Poté jsem šel do Preferences Firefoxu -> Upřesnit -> Síť -> Nastavení ... a nastavit HTTP Proxy na "bránu" a port na 8080 a zaškrtnout "Použít tento proxy server pro všechny protokoly". Pak se stránka načítala. To podporuje mou teorii.

Zkusil jsem nastavit proměnné prostředí http_proxy a https_proxy (malé i velké):

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

Také jsem se pokusil změnit je na:

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

A zkusil jsem přidat tento druhý řádek do /etc/apt/apt.conf:

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

Ale i nadále dostávám stejnou chybu.

Jak to vyřeším?

Aktualizace: Postupoval jsem podle pokynů v přijatá odpověď do "Problém s přidáváním repozitářů a připojením z terminálu za proxy " a dostal se dále:

$ 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

Zajímalo by mě, jestli "chyba načtení HTTP" znamená, že musím také přidat "Výchozí nastavení env_keep = http_proxy" do /etc/sudoers...

Aktualizace č. 2: Přidal jsem:

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

... jako v Komentář 18 pro chybu 516032 , ale stále dostávám stejnou chybu „gpgkeys: HTTP načíst chybu 7: nemohl se připojit k hostiteli“.

A to je zvláštní:

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

... protože http_proxy tam není.

Jakákoli rada je vítána.

Aktualizace č. 3: Protože hostitelem mého VM je notebook), vzal jsem ho domů a vyzkoušel jsem ho (s bez proxy):

$ 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)

Fungovalo to. Problém tedy souvisí s konfigurací serveru proxy. Ale myslím, že mám řešení.

121
Daryl Spitzer

Kromě konfigurace serverů proxy řekněte uživateli Sudo, aby zachoval prostředí pomocí funkce -E možnost:

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

s uživatelským jménem a heslem:

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

Pomocí následujícího kódu v terminálu přidejte za proxy klíč gpg,

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

A podle toho vyměňte velká písmena. Pokud používáte server proxy bez ověření uživatele (tj. Uživatelské jméno a heslo), použijte http-proxy=http://PROXY_URL:PORT/ namísto.

Například mít GPG_KEY=C2514567EEA14886 Můžeš použít,

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

kde,

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

Pokud nemáte ověření uživatele, jednoduše použijte,

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

Konečně! Https_proxy musíte nastavit pomocí:

export https_proxy=....

nestačí pouze sada http_proxy.

A já jsem potřeboval provést příkaz add-apt-repository jako root, NE přes Sudo.

Kód:

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

Zdá se, že je nastavena konfigurace serveru proxy, ale server nelze nějak kontaktovat ...

Měl jsem velmi podobný problém, který jsem vyřešil takto: Firemní proxy povoluje pouze port 80 a 443 z bezpečnostních důvodů, takže událost, když je nastavena, protože protokol HKP používá port 11371, nedovolí vám to projít.

Takže, krátce po SSH-ing a získání klíče z jednoho ze svých serverů venku, jeho stažení a lokální instalace, můžete určit server klíčů z níže uvedených serverů a zadat port:

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

např.:

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

Boom, Voila!

6
leroyse

Důvod, proč vaše sudoers změna nefungovala podle očekávání, je ten, že místo:

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

Měl jsi napsat:

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

Také se ujistěte, že mezera mezi Defaults a env_keep je pokaždé karta.

3
Urhixidur

Podařilo se mi to vyřešit úpravou /usr/lib/python3/dist-packages/softwareproperties/ppa.py a přidání

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

pod následující řádek

"--keyserver", self.keyserver,

Další informace o pozadí

ppa.py je skript python), který používá add-apt-repository pro volání gpg. Zdá se, že někdy existuje chyba s gpg, kde nepoužívá proměnnou prostředí http_proxy. To lze potvrdit prohlížením souboru /root/.gnupg/dirmngr.conf a zkontrolujeme, že honor-http-proxy není okomentováno.

3
Junior Leota

Tento čtyřfázový přístup pro mě pracoval na Ubuntu 17.04 VM za firemní proxy).

  1. Sudo apt-add-repository ppa:brightbox/Ruby-ng a nechte to selhat
  2. Sudo apt update a vyhledejte chybovou zprávu jako 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 bude nyní fungovat

Všimněte si, že hostitel VM je spuštěn proxy server CNTLM na portu 3128).

3
thegreendroid

To mi pomohlo:

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

Myslím, že existují určité proměnné prostředí, které nejsou v příkazu potřeba, ale nepoškozují.

1
leo

Přidejte PPA ručně do svého /etc/apt/sources.list:

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

Uložte soubor a spusťte Sudo apt-get update. Tato chyba se může objevit:

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

Spusťte následující příkaz k přijetí klíče pro PPA, nezapomeňte změnit klíč (5BB92C09DB82666C) pro odpovídající PPA.

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

Spustit Sudo apt-get update a máte hotovo.

Odkaz: Jak přidat PPA Launchpadu v Debianu prostřednictvím add-apt-repository Příkaz

1
Ajoy

Používám http pomocí curl namísto pokusu o proxy apt-key nebo gpg:

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

Tato metoda by měla být použita místo apt-key příkazový řádek nebo http_proxy nebo https_proxy nastavení proměnných prostředí (které jsou zakázány v nejnovějších verzích apt-key).

1
Dan Anderson

Ve skutečnosti narazím na stejné problémy, tak jsem našel tuto stránku.

  • proměnné prostředí http_proxy (velká a malá písmena) a https_proxy (bez ohledu na případ) něco dělají. Pokud je nenastavíte, v první fázi selže, zdá se, že nastavení proměnných prostředí má nějaký účinek; selže, pokud je neexportujete

    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.
    

    (zbytek je úspěšný - tentokrát)

Věc je někdy zaseknutá a končí obvyklou zprávou časového limitu: Nelze přidat PPA: '"Chyba při čtení https://launchpad.net/api/1.0/~webupd8team/+archive/Java : (7, 'Nepodařilo se připojit k portu launchpad.net 443: Vypršel časový limit připojení') "'.

... ale podvádím, dělám to všechno jako root. Snadným řešením je editace/etc/profile nebo, na Ubuntu/Mint, stačí přidat skript do /etc/profile.d:

    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}'

Jo, jo, je tu také ta věc o kadeře (která se mimochodem používá v apt-add-repozitáři). Příručka říká, že chcete přidat .curlrc do svého domovského adresáře. Protože adresář apt-add-root je vlastní root, znamená to, že jej přidáte do /root/.curlrc:

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

Dobrým nápadem je udělat to samé ve vašem vlastním ~/.curlrc

Také je dobré udělat proxy v/etc/wgetrc, i když to nemá nic společného s položenou otázkou, pouze vám ukládám další vyhledávání na Googlu (pokud si toto přečtete, máte více s proxy ) ...

1
Marabiloso

V /etc/apt/apt.conf.d/01proxy přidejte něco takového

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

To bude proxy všechny stahování aptitude, ale myslím, že je to jediný způsob, jak to provést na backendu. Pokud to váš proxy server podporuje, můžete také použít URL jako http://my.proxy:port/www.target.site.com/url, o kterém vím, pracuje pro apt-cache-ng

Nejsem si jistý, zda add-apt-repository sám používá tato nastavení, ale pokud to nemůžete udělat, můžete repozitář vždy přidat do svého /etc/apt/sources.list nebo /etc/apt/sources.list.d/*mytoolchain*

Od 11.10 je v hlavním repo k dispozici také cross-toolcha, jen apt-get install gcc-arm-linux-gnueabihf. Emdebian také nabízí křížové nástroje a některé pokyny zde: http://gsoc.sitedethib.com/posts/apt-get_install_gcc-4.7-arm-linux-gnueabihf/

1
user72421

Spusťte níže uvedený příkaz v terminálu

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

Proměnné prostředí celého systému by měly být skutečně přidány do /etc/environment (použijte Sudo nebo gksu), zdá se však, že chyba, o které se hovoří, uvádí, že nebyla nalezena žádná data gpg. Nápady:

  • zkontrolujte nastavení proxy serveru (pokud máte přístup)
  • zkontrolujte, zda proxy nějakým způsobem munguje výstup šifrovaného provozu.
  • spusťte nepřetržitý netstat, abyste zjistili, zda se skutečně připojuje k serveru proxy
  • poslední možností by bylo tcpdump a inspekce v wireshark
  • zkuste http tunel;)
0
t0m5k1

Dalším řešením je přidání APT proxy.conf soubor, /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