Estou tentando seguir as instruções "Instalando o Cross Toolchain no Ubuntu 10.04 (Lucid) e 10.10 (Maverick) Hosts" no wiki.linaro.org (na minha VM do Ubuntu 10.04). O primeiro passo é:
sudo add-apt-repository ppa:linaro-maintainers/toolchain
Mas quando corro, recebo:
Error reading https://launchpad.net/api/1.0/~linaro-maintainers/+archive/toolchain: <urlopen error [Errno 110] Connection timed out>
Acho que o problema está na minha configuração do servidor proxy do meu empregador, principalmente no HTTPS.
Quando abri https://launchpad.net/api/1.0/~linaro-maintainers/+archive/toolchain no Firefox, recebi "A conexão expirou". Entrei no Firefox Preferences -> Advanced -> Network -> Settings ... e configurei o Proxy HTTP como "gateway" e Port para 8080, e verifiquei "Use este servidor proxy para todos os protocolos". Em seguida, a página foi carregada. Isso apóia minha teoria.
Tentei definir as variáveis de ambiente http_proxy e https_proxy (tanto em maiúsculas quanto em minúsculas):
$ set | grep -i proxy
HTTPS_PROXY=https://gateway:8080
HTTP_PROXY=http://gateway:8080
http_proxy=http://gateway:8080
https_proxy=https://gateway:8080
Também tentei alterá-los para:
$ set | grep -i proxy
HTTPS_PROXY=gateway:8080
HTTP_PROXY=gateway:8080
http_proxy=gateway:8080
https_proxy=gateway:8080
E tentei adicionar esta segunda linha ao /etc/apt/apt.conf:
Acquire::http::proxy "http://gateway:8080/";
Acquire::https::proxy "https://gateway:8080/";
Mas continuo recebendo o mesmo erro.
Como faço para solucionar isso?
Atualização: Eu segui as instruções na resposta aceita para "Problema ao adicionar repositórios e conectar-se a partir do terminal atrás de um proxy" e fui além:
$ 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
Gostaria de saber se o "erro de busca HTTP" significa que eu também preciso adicionar "Padrões env_keep = http_proxy" para /etc/sudoers
...
Atualização # 2: adicionei:
Defaults env_keep="http_proxy"
Defaults env_keep="https_proxy"
... como no Comentário 18, referente ao bug 516032 , mas ainda assim recebo o mesmo erro "gpgkeys: HTTP buscar erro 7: não foi possível conectar ao host".
E isso é curioso:
$ sudo env | grep proxy
https_proxy=https://gateway:8080
... porque http_proxy não está lá.
Qualquer conselho é apreciado.
Atualização # 3: Como o host da minha VM é um laptop, levei-o para casa e tentei lá (sem 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)
Funcionou. Portanto, o problema está relacionado à configuração do proxy. Mas suponho que tenho uma solução alternativa.
fonte
Respostas:
Além de configurar proxies, diga
sudo
para preservar o ambiente com a-E
opção:com nome de usuário e senha:
fonte
https_proxy
configuração era necessária ...: Pman sudo
:-E, --preserve-env
indica para a política de segurança que o usuário deseja preservar suas variáveis de ambiente existentes. A política de segurança pode retornar um erro se o usuário não tem permissão para preservar a environment.mUse o código a seguir em um terminal para adicionar a chave gpg atrás do proxy,
E substitua letras maiúsculas de acordo. Se você estiver usando um proxy sem autenticação de usuário (por exemplo, nome de usuário e senha), use-o
http-proxy=http://PROXY_URL:PORT/
.Por exemplo, para
GPG_KEY=C2514567EEA14886
você poder usar,Onde,
Se você não possui autenticação de usuário, basta usar,
fonte
Finalmente! Você precisa definir https_proxy via:
apenas definir http_proxy não é suficiente.
E eu precisava executar o comando add-apt-repository como root, NÃO via sudo.
Código:
fonte
Parece que a configuração do proxy está configurada, mas de alguma forma o servidor não pode ser contatado ...
Eu tive um problema muito semelhante ao que resolvi assim: O proxy corporativo permite apenas as portas 80 e 443 por razões de segurança; portanto, quando estiver configurado, como o protocolo HKP está usando a porta 11371, ele não permitirá que você atravesse.
Portanto, sem SSH e obtendo a chave de um de seus servidores externos, fazendo o download e instalando-a localmente, você pode especificar o servidor de chave dentre os listados abaixo e especificar a porta:
http://sks-keyservers.net/overview-of-pools.php
por exemplo:
Boom, Voila!
fonte
sudo -E apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
O motivo pelo qual sua
sudoers
alteração não funcionou conforme o esperado é que, em vez de:Você deveria ter escrito:
Verifique também se o espaço entre
Defaults
eenv_keep
é uma guia a cada vez.fonte
Eu consegui solucionar isso editando
/usr/lib/python3/dist-packages/softwareproperties/ppa.py
e adicionandosob a seguinte linha
Mais informações básicas
ppa.py
é o script python usadoadd-apt-repository
para chamar gpg. Às vezes parece haver um bug com o gpg onde ele não usa a variável de ambiente http_proxy. Isso pode ser confirmado visualizando o arquivo/root/.gnupg/dirmngr.conf
e verificandohonor-http-proxy
se não está comentado.fonte
Essa abordagem de quatro etapas funcionou para mim em uma VM Ubuntu 17.04 atrás de um proxy corporativo.
sudo apt-add-repository ppa:brightbox/ruby-ng
e deixe falharsudo apt update
e procure uma mensagem de erro comoThe following signatures couldn't be verified because the public key is not available: NO_PUBKEY F5DA5F09C3173AA6
sudo apt-key adv --keyserver-options http-proxy=http://10.0.2.2:3128 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys F5DA5F09C3173AA6
sudo apt update
agora vai funcionarObserve que a VM do host está executando um
CNTLM
servidor proxy na porta 3128.fonte
Isso me ajudou:
Eu acho que existem algumas variáveis de ambiente que não são necessárias no comando, mas elas não prejudicam.
fonte
Adicione o PPA manualmente ao seu
/etc/apt/sources.list
:Salve o arquivo e execute
sudo apt-get update
. Este erro pode aparecer:Execute o comando a seguir para aceitar a chave do PPA, lembrando-se de alterar a chave (5BB92C09DB82666C) do PPA correspondente.
Corra
sudo apt-get update
e pronto.Ref: Como adicionar PPAs da barra de ativação no
add-apt-repository
comando Debian Viafonte
Na verdade, eu encontro os mesmos problemas, foi assim que encontrei esta página.
as variáveis de ambiente http_proxy (diferenciam maiúsculas de minúsculas) e https_proxy (qualquer que seja o caso) fazem alguma coisa. Não configurá-las falha no primeiro estágio; a configuração das variáveis de ambiente parece ter algum efeito; falhará se você não os exportar
(o resto é bem sucedido - desta vez)
A coisa é, às vezes, ele só ficar preso e termina com a mensagem de tempo limite de costume: Não é possível adicionar PPA: "Erro ao ler https://launchpad.net/api/1.0/~webupd8team/+archive/java : (7 ' Falha na conexão com a porta 443 do launchpad.net: O tempo limite da conexão expirou ') "'.
... mas estou trapaceando, estou fazendo tudo isso como raiz. Uma solução fácil é editar o arquivo / etc / profile ou, no Ubuntu / Mint, basta adicionar um script em /etc/profile.d:
Ah, sim, também há algo sobre curl (que é usado pelo apt-add-repository, a propósito). O manual diz para adicionar .curlrc no seu diretório pessoal. Como o apt-add-directory é próprio da raiz, significa adicioná-lo ao /root/.curlrc:
Uma boa idéia é fazer o mesmo em seu próprio ~ / .curlrc
Além disso, ativar o proxy no / etc / wgetrc é uma boa coisa a fazer, embora não tenha nada a ver com a pergunta, estou apenas salvando outra pesquisa no Google (se você ler isso, terá várias com um proxy ) ...
fonte
Em
/etc/apt/apt.conf.d/01proxy
adicionar algo como istoIsso fará o proxy de todos os downloads de aptidão, mas acho que essa é a única maneira de fazer isso no back-end. Se o seu proxy suportar, você também pode usar um URL como o
http://my.proxy:port/www.target.site.com/url
que eu sei que funciona paraapt-cache-ng
Não tenho certeza se o próprio add-apt-repository usa essas configurações, mas se você não conseguir fazer isso funcionar, sempre poderá adicionar o repositório ao seu
/etc/apt/sources.list
ou/etc/apt/sources.list.d/*mytoolchain*
Desde 11.10, também há um recurso de ferramenta cruzada no repositório principal, apenas
apt-get install gcc-arm-linux-gnueabihf
. Também existem cadeias de ferramentas cruzadas disponíveis no emdebian, e algumas instruções aqui: http://gsoc.sitedethib.com/posts/apt-get_install_gcc-4.7-arm-linux-gnueabihf/fonte
O que eu faço é usar http via curl em vez de tentar proxy apt-key ou gpg:
curl -sSL ' http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xBBEBDCB318AD50EC6865090613B00F1FD2C19886 ' \ | sudo apt-key add -
Este método deve ser usado em vez das
apt-key
linhas de comando ouhttp_proxy
ouhttps_proxy
configurações de ambiente variáveis (que são deficientes nas versões mais recentes do apt-key).fonte
Execute o comando abaixo no terminal
fonte
As variáveis de ambiente de todo o sistema devem ser realmente adicionadas a
/etc/environment
(usesudo
orgksu
), mas o erro relatado a você parece indicar que nenhum dado de gpg foi encontrado. Idéias:fonte
Outra solução é adicionar um
proxy.conf
arquivo APT ,/etc/apt/apt.conf.d/proxy.conf
fonte