Jak získat repozitář add-apt pro práci prostřednictvím serveru proxy?

110

Pokouším se sledovat "Instalace nástroje Cross Toolchain 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ž běží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 zaměstnavatele, zejména pro HTTPS.

Když jsem otevřel Odkaz ve Firefoxu, dostal jsem "Připojení vypršel ". Pak jsem šel do prohlížeče Firefox -> Rozšířené - > Síť - > Nastavení ... a nastavte protokol HTTP proxy na "bránu" a port na 8080 a zaškrtněte políčko "Použijte tento proxy server pro všechny protokoly". Poté byla načtena stránka. Toto podporuje mou teorii.

Pokusil jsem se 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

Zkoušel jsem je také změnit:

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

Snažil jsem se přidat tento druhý řádek do souboru /etc/apt/apt.conf:

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

Ale i nadále mám stejnou chybu.

Jak mohu tento problém vyřešit?

Aktualizace: Sleduji pokyny v části přijatá odpověď " Problém s přidá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čítání HTTP" znamená, že musím také přidat "výchozí env_keep = http_proxy" na/etc/sudoers ...

Aktualizace č. 2: Přidala jsem:

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

... jako v Komentář 18 k chybě 516032 , ale stále mám stejnou chybu "gpgkeys: chyba HTTP fetch 7: nemohla se připojit k hostiteli".

A toto je zvědavé:

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

... protože neexistuje http_proxy.

Rádi bychom se radili.

Aktualizace č. 3: Protože hostitel mého počítače VM je notebook, vzal jsem ho domů a pokusil se tam (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)

To fungovalo. Takže problém souvisí s konfigurací serveru proxy. Ale myslím, že mám řešení.

    
dané Daryl Spitzer 15.07.2011 02:49

13 odpovědí

164

Kromě konfigurování serverů proxy zadejtesudo k zachování prostředí pomocí možnosti-E:

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>
    
odpověděl Amal Pillai 08.02.2012 12:49
37

Použijte následující kód v terminálu pro přidání gpg klíče za proxy,

sudo apt-key adv --keyserver-options http-proxy=http://USER:PASSWORD@PROXY_URL:PORT/ --keyserver keyserver.ubuntu.com --recv-keys GPG_KEY

A odpovídajícím způsobem vyměňte velká písmena. Používáte-li proxy bez ověření uživatele (tj. Uživatelské jméno a heslo) použijte místo tohohttp-proxy=http://PROXY_URL:PORT/.

Chcete-li například použítGPG_KEY=C2514567EEA14886,

sudo apt-key adv --keyserver-options http-proxy=http://user:abc123@10.10.2.21: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ěřování uživatele jednoduše použít,

sudo apt-key adv --keyserver-options http-proxy=http://10.10.2.21:3128/ --keyserver keyserver.ubuntu.com --recv-keys C2514567EEA14886
    
odpověděl Patxi Gomez 06.02.2013 19:04
8

Nakonec! Potřebujete nastavit https_proxy pomocí:

export https_proxy=....

Nastavení pouze http_proxy nestačí.

Potřeboval jsem provést příkaz add-apt-repository jako root, nikoliv přes sudo.

Kód:

sudo su
add-apt-repository ppa:........
    
odpověděl DaRattler 14.10.2011 11:55
6

Zdá se, že konfigurace serveru proxy je nastavena, ale server nemůže být kontaktován ...

Měl jsem velmi podobnou záležitost, kterou jsem vyřešila takto: Firemní proxy umožňuje z bezpečnostních důvodů pouze porty 80 a 443, takže když je nastaven, protože protokol HKP používá port 11371, nedovolí vám to.

Takže, pokud nedojde k zadání SSH a získáte klíč z jednoho ze svých serverů venku, stáhnete si ho a nainstalujete jej místně, můžete zadat klíčový server z níže uvedených a specifikovat port:

Odkaz

např .:

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

Boom, Voila!

    
odpověděl leroyse 26.07.2013 11:40
3

Důvod, proč změnasudoers nefungovala podle očekávání, je místo toho:

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

Měli jste napsat:

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

Také se ujistěte, že je mezera meziDefaults aenv_keep pokaždé.

    
odpověděl Urhixidur 21.01.2015 20:38
3

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

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

v následujícím řádku

"--keyserver", self.keyserver,

Další informace o pozadí

ppa.py je skript python, který používáadd-apt-repository pro volání gpg. Někdy se zdá, že se jedná o chybu s gpg, kde nepoužívá proměnnou prostředí http_proxy. To lze potvrdit zobrazením souboru/root/.gnupg/dirmngr.conf a zkontrolováním toho, žehonor-http-proxy není komentován.

    
odpověděl Junior Leota 05.07.2017 21:56
1

To mi pomohlo:

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

Myslím, že existují některé proměnné prostředí, které nejsou v příkazu potřebné, ale neškodí.

    
odpověděl leo 13.06.2014 18:48
1

Přidejte PPA ručně do složky/etc/apt/sources.list:

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

Uložte soubor a spusťtesudo apt-get update. Může se zobrazit tato chyba:

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 pro přijetí klíče pro PPA a nezapomeňte změnit klíč (5BB92C09DB82666C) pro odpovídající PPA.

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

Spusťtesudo apt-get update a jste hotovi.

Ref: Jak přidat PPA pro Launchpad v Debianu Příkazadd-apt-repository%

    
odpověděl Ajoy 06.04.2017 09:27
1

Vlastně narazím na stejné problémy, tak jsem našel tuto stránku.

  • Prostředí proměnných http_proxy (malá a velká písmena) a https_proxy (v každém případě) něco udělají. V prvním kroku se nezdařilo jejich nastavení, nastavení proměnných prostředí se zdálo mít nějaký efekt; selže, pokud je nebudete exportovat

    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, že někdy to prostě uvízne a končí obvyklým časovým zpožděním:         PPA nelze přidat: 'Chyba při čtení Odkaz : (7,' Nepodařilo se připojit k pocítaci. síťový port 443: Vypršel čas připojení ")" '.

... ale podvázím, dělám to všechno jako kořen. Jednoduchým řešením je úprava / etc / profile nebo, na Ubuntu / Mint, stačí přidat skript do adresáře /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}'

Oh, jo, je tu i ta věc o vlnění (což je mimo jiné apt-add-repository). Příručka říká, že chcete přidat .curlrc do svého domovského adresáře. Vzhledem k tomu, že adresář apt-add-directory je vlastní, znamená to přidání do adresáře /root/.curlrc:

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

Dobrým nápadem je učinit totéž ve vlastních ~ / .curlrc

Je také dobré, když povolíte proxy v souboru / etc / wgetrc, ačkoli to nemá nic společného s otázkou, ukládám vám další vyhledávání na Googlu (pokud si to přečtete, máte více s proxy) ...

    
odpověděl Marabiloso 04.10.2017 18:31
1

Tento čtyřstupňový přístup pracoval pro mě na Ubuntu 17.04 VM za firemním proxy.

  1. sudo apt-add-repository ppa:brightbox/ruby-ng a nechte ji selhat
  2. sudo apt update a podívejte se na chybovou zprávu jakoThe 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í pracovat

Všimněte si, že hostitelský virtuální server používá port% 3_proxyCNTLM na portu 3128.

    
odpověděl thegreendroid 14.12.2017 04:28
0

Proveďte následující příkaz v terminálu

export http_proxy=http://username:password@proxyserver.net:port/
export ftp_proxy=http://username:password@proxyserver.netport/
    
odpověděl Deepak Rajput 08.02.2012 08:05
0

Proměnné pro systémové prostředí by měly být opravdu přidány do/etc/environment (použijtesudo nebogksu), ale chyba, kterou jste ohlásili, zdá se, že se nenalezly žádné údaje gpg. Nápady:

  • zkontrolujte nastavení serveru proxy (pokud máte přístup)
  • zkontrolujte, zda server proxy nějakým způsobem nezahrnuje výstup šifrované komunikace.
  • spusťte nepřetržitý netstat, abyste zjistili, zda se skutečně provádí připojení k serveru proxy
  • Poslední možnost by byla tcpdump & zkontrolovat v drátěném háku
  • vyzkoušejte http tunel;)
odpověděl t0m5k1 29.08.2011 23:04
0

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

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

Budou se stahovat proxy všechny aptitude, ale myslím, že je to jediný způsob, jak to udělat na backend. Pokud váš proxy podporuje, můžete také použít url jakohttp://my.proxy:port/www.target.site.com/url, který vím, že funguje proapt-cache-ng

Nejsem si jistý, jestli použití těchto nastavení použije add-apt-repository, ale pokud to nemůžete udělat, můžete vždy přidat úložiště do složky/etc/apt/sources.list nebo/etc/apt/sources.list.d/*mytoolchain*

Od 11. října je v hlavním repo operačním nástroji křížový nástroj, jenapt-get install gcc-arm-linux-gnueabihf. K dispozici jsou také cross-toolchains dostupné od emdebian a některé instrukce zde: Odkaz

    
odpověděl user72421 27.07.2012 19:08