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 é:
Mas quando corro, recebo:
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):
Também tentei alterá-los para:
E tentei adicionar esta segunda linha ao /etc/apt/apt.conf:
Mas continuo recebendo o mesmo erro.
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:
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:
... 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:
... porque http_proxy não está lá.
Atualização # 3: Como o host da minha VM é um laptop, levei-o para casa e tentei lá (sem proxies):
Funcionou. Portanto, o problema está relacionado à configuração do proxy. Mas suponho que tenho uma solução alternativa.
Apenas para referência askubuntu.com/questions/60217/...
Além de configurar proxies, diga sudopara preservar o ambiente com a -Eopção:
com nome de usuário e senha:
— Amal Pillai
Ya realmente funcionou
— Shashwat Kumar
-E (depois de fazer todas as outras coisas acima) fez funcionar para mim.
— cschooley
e sim, a https_proxyconfiguração era necessária ...: P
Como adicionar proxy permanentemente e evitar a opção -E? Eu tenho o arquivo / etc / environment configurado corretamente com as linhas adicionadas ... Obrigado
De man sudo: -E, --preserve-envindica 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.m
Use 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=C2514567EEA14886você poder usar,
Se você não possui autenticação de usuário, basta usar,
— Patxi Gomez
Na verdade, isso não "corrige" a execução do comando add-apt-repository. Na verdade, ele trabalha em torno de uma de suas tarefas. Pelo menos um comando adicional é necessária: sudoedit /etc/apt/sources.list.d/XXXX.list + edição manual para adicionar o deb URLs ...
Seria perfeito se você adicionar algumas informações sobre como corrigir o proxy eternamente. Solução fornecida exige um monte de digitação
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.
— DaRattler
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:
— leroyse
Sim. Isso funcionou, para mim, ao instalar o Mono no Debian 7:sudo -E apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
O motivo pelo qual sua sudoersalteração não funcionou conforme o esperado é que, em vez de:
Você deveria ter escrito:
Verifique também se o espaço entre Defaultse env_keepé uma guia a cada vez.
Eu consegui solucionar isso editando /usr/lib/python3/dist-packages/softwareproperties/ppa.pye adicionando
sob a seguinte linha
ppa.pyé o script python usado add-apt-repositorypara 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.confe verificando honor-http-proxyse não está comentado.
— Junior Leota
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 falhar
sudo apt update e procure uma mensagem de erro como The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F5DA5F09C3173AA6
sudo apt update agora vai funcionar
Observe que a VM do host está executando um CNTLMservidor proxy na porta 3128.
Você não precisa esperar pelo apt para lhe dizer qual é a chave. Está presente nos detalhes técnicos do PPA : "Impressão digital: 80F70E11F0F0D5F10CB20E62F5DA5F09C3173AA6"
Isso é verdade, mas achei esse processo um pouco mais fácil.
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.
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 updatee pronto.
Ref: Como adicionar PPAs da barra de ativação no add-apt-repositorycomando Debian Via
— Uma alegria
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 ) ...
— Marabiloso
Em /etc/apt/apt.conf.d/01proxyadicionar algo como isto
Isso 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/urlque 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.listou/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/
user72421: como você sabia que o proxy deveria ser prefixado com 01 e não com outro número?
Não funciona com apt-get & keyserver
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-keylinhas de comando ou http_proxyou https_proxyconfigurações de ambiente variáveis (que são deficientes nas versões mais recentes do apt-key).
As variáveis ​​de ambiente de todo o sistema devem ser realmente adicionadas a /etc/environment(use sudoor gksu), mas o erro relatado a você parece indicar que nenhum dado de gpg foi encontrado. Idéias: