Estou tentando adicionar o repositório ppa (como raiz) com o seguinte comando:
export HTTP_PROXY="http://[email protected]:[email protected]:8080"
add-apt-repository ppa:nilarimogard/webupd8
Traceback (most recent call last):
File "/usr/bin/add-apt-repository", line 125, in <module>
ppa_info = get_ppa_info_from_lp(user, ppa_name)
File "/usr/lib/python2.7/dist-packages/softwareproperties/ppa.py", line 84, in get_ppa_info_from_lp
curl.perform()
pycurl.error: (56, 'Received HTTP code 407 from proxy after CONNECT')
Infelizmente isso não funciona. Parece que o curl está se conectando ao proxy, mas o proxy diz que a autenticação é necessária. Eu tentei com .curlrc, http_proxy env, mas não funciona.
strace -e network,write -s1000 add-apt-repository ppa:nilarimogard/webupd8
socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 4
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 4
connect(4, {sa_family=AF_INET, sin_port=htons(8080), sin_addr=inet_addr("165.x.x.232")}, 16) = -1 EINPROGRESS (Operation now in progress)
getsockopt(4, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
getpeername(4, {sa_family=AF_INET, sin_port=htons(8080), sin_addr=inet_addr("165.x.x.232")}, [16]) = 0
getsockname(4, {sa_family=AF_INET, sin_port=htons(46025), sin_addr=inet_addr("161.20.75.220")}, [16]) = 0
sendto(4, "CONNECT launchpad.net:443 HTTP/1.1\r\nHost: launchpad.net:443\r\nUser-Agent: PycURL/7.22.0\r\nProxy-Connection: Keep-Alive\r\nAccept: application/json\r\n\r\n", 146, MSG_NOSIGNAL, NULL, 0) = 146
recvfrom(4, "HTTP/1.1 407 Proxy Authentication Required\r\nProxy-Authenticate: BASIC realm=\"proxy\"\r\nCache-Control: no-cache\r\nPragma: no-cache\r\nContent-Type: text/html; charset=utf-8\r\nProxy-Connection: close\r\nSet-Cookie: BCSI-CS-91b9906520151dad=2; Path=/\r\nConnection: close\
Talvez seja porque existe @ sign in o nome de usuário? O Wget funciona bem com proxy.
Relacionado: Como adiciono um repositório por trás de um proxy?
Meio Ambiente
Ubuntu 12.04
liblurl / 7.22.0 OpenSSL / 1.0.1 zlib / 1.2.3.4 libidn / 1.23 librtmp / 2.3
Recursos de ondulação: GSS-Negocie IDN IPv6 Arquivo grande NTLM NTLM_WB SSL libz TLS-SRP
ATUALIZAR
Quando credenciais adicionadas ao .curlrc
cat ~/.curlrc
proxy = 165.x.x.232:8080
proxy-user = [email protected]:mypass0
Parece funcionar para a curvatura simples .
curl www.google.com | head
* Proxy auth using Basic with user '[email protected]'
GET HTTP://www.google.com HTTP/1.1
Proxy-Authorization: Basic cmFmYWwud2llY3pvcmVrQHVi...3R0RDA=
HTTP/1.1 302 Found
Também HTTPS:
curl -v https://www.google.com | head
* Establish HTTP proxy tunnel to www.google.com:443
* Proxy auth using Basic with user '[email protected]'
> CONNECT www.google.com:443 HTTP/1.1
> Host: www.google.com:443
> Proxy-Authorization: Basic cmFmYWwud2llY3pvcmVrQHVi...3R0RDA=
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Proxy-Connection: Keep-Alive
< HTTP/1.1 200 Connection established
* Proxy replied OK to CONNECT request
* successfully set certificate verify locations
Mas ainda não funciona ao adicionar certificado ppa.
pycurl.error: (56, 'Received HTTP code 407 from proxy after CONNECT')
CABEÇALHOS
Cabeçalhos enviados:
CONNECT launchpad.net:443 HTTP/1.1
Host: launchpad.net:443
Proxy-Authorization: Basic cGVvcGxlcmVhbGx5c2hvdWxkQHNhbml0aXplcG9zdHM=
User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
Proxy-Connection: Keep-Alive
Resposta:
HTTP/1.1 200 Connection established
CABEÇAS DO PyCURL
Cabeçalhos enviados:
CONNECT launchpad.net:443 HTTP/1.1
Host: launchpad.net:443
User-Agent: PycURL/7.22.0
Proxy-Connection: Keep-Alive
Accept: application/json
Resposta:
HTTP/1.1 407 Proxy Authentication Required
Proxy-Authenticate: BASIC realm="proxy"
Parece que o PyCURL não reenvia nenhuma autorização quando solicitado.
Respostas:
Solução alternativa, se
apt-get
ainda funcionar atrás do proxy/etc/apt/sources.list
Adicionando fontes manualmente
Acho que no launchpad.net todo ppa ainda contém uma pequena descrição de como adicionar fontes manualmente. O site da barra de ativação do seu ppa mencionado
ppa:nilarimogard/webupd8
é https://launchpad.net/~nilarimogard/+archive/webupd8 . Se você rolar para baixo, verá um rótulo expansível Detalhes técnicos sobre este PPA . Se você o expandir, encontrará a descrição de como adicionar fontes manualmente. Adicione as seguintes linhas aos mencionados/etc/apt/sources.list
É claro que você precisa ajustar quantal para qualquer versão que esteja usando no momento.
Adicionando a chave de assinatura
A descrição também contém uma chave de assinatura . Isso é importante, para que seu sistema possa sempre verificar se você realmente acessa um endereço ppa confiável. No caso do seu ppa (ou seja,
1024R/4C9D234C
também pode ser encontrado em Detalhes técnicos sobre este PPA ), onde o número por trás da barra é importante. Você pode adicionar a impressão digital através doapt-key
programa. Normalmente você executaria o seguinte comandoAdicionando se
apt-key
não funcionar através de proxyComo você já teve problemas com o
add-apt-repository
programa, isso também pode não funcionar. Então, em vez disso, você pode baixar e adicionar a chave de 1024 bits manualmente. Sewget
funcionar, você pode fazer isso em uma única etapa.Caso contrário, é seguro " http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x531EE72F4C9D234C ", por exemplo,
/path/key
e usesudo apt-key add /path/key
para adicioná-lo.Feche com o habitual
Depois, você precisa atualizar as informações do repositório
apt-get update
e, em seguida, conseguir fazer o download dos pacotes.Recursos
Meu favorito pessoal sobre como usar o mecanismo de empacotamento (infelizmente em alemão): http://wiki.ubuntuusers.de/Paketquellen_freischalten/PPA
A versão da barra de ativação também menciona todos os pontos importantes: https://help.launchpad.net/Packaging/PPA/InstallingSoftware
Como é atípico usar o apt-key da maneira descrita, encontrei apenas as informações nas páginas de manual,
man apt-key
.Resposta relacionada que descreve basicamente a maneira padrão de instalar o ppa manualmente: /ubuntu//a/38029/128349
fonte
Na verdade, parece ser muito mais fácil do que a resposta postada anteriormente. Você só precisa do "sudo" para saber que está por trás de um proxy e ele funcionará sem esforço. Para fazer isso, você precisa exportar seu proxy
http
ehttps
da maneira que costuma fazer:e adicione
Defaults env_keep="https_proxy"
ao final do/etc/sudoers
arquivo. Após isso, você poderá adicionar o ppa usando o comando:sudo add-apt-repository ppa:the_ppa_you_want_to_add
ou use
se você não quiser modificar o
/etc/sudoers
arquivo. o-E
opção exporta variáveis de ambiente para o usuário sudo.Eu dei uma descrição detalhada sobre isso aqui no meu blog .
fonte
Verifique se o proxy apt está definido como abaixo
adicione as seguintes configurações de proxy e salve o arquivo
além disso, exporte os seguintes no Terminal antes de executar o comando
Isso deve funcionar.
fonte