J'essaie d'ajouter le référentiel ppa (en tant que root) avec la commande suivante:
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')
Malheureusement ça ne marche pas. Il semble que curl se connecte au proxy, mais le proxy indique que l'authentification est requise. J'ai essayé avec .curlrc, http_proxy env à la place, mais cela ne fonctionne pas.
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\
C'est peut-être parce qu'il y a @ signe dans le nom d'utilisateur? Wget fonctionne correctement avec proxy.
Connexe: Comment ajouter un référentiel derrière un proxy?
Environnement
Ubuntu 12.04
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
Curl Caractéristiques: GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP
MISE À JOUR
Lors de l'ajout d'informations d'identification dans .curlrc
cat ~/.curlrc
proxy = 165.x.x.232:8080
proxy-user = [email protected]:mypass0
Il semble fonctionner pour la boucle simple .
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
HTTPS également:
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
Mais ne fonctionne toujours pas lors de l'ajout d'un certificat ppa.
pycurl.error: (56, 'Received HTTP code 407 from proxy after CONNECT')
CURL HEADERS
En-têtes envoyés:
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
Répondre:
HTTP/1.1 200 Connection established
EN-TÊTES PyCURL
En-têtes envoyés:
CONNECT launchpad.net:443 HTTP/1.1
Host: launchpad.net:443
User-Agent: PycURL/7.22.0
Proxy-Connection: Keep-Alive
Accept: application/json
Répondre:
HTTP/1.1 407 Proxy Authentication Required
Proxy-Authenticate: BASIC realm="proxy"
Il semble que PyCURL ne renvoie aucune autorisation à la demande.
Réponses:
Solution de contournement si
apt-get
fonctionne toujours derrière le proxy/etc/apt/sources.list
Ajout de sources manuellement
Je pense que sur launchpad.net, chaque ppa contient toujours une petite description sur la façon d'ajouter manuellement des sources. Le site du tableau de bord pour votre ppa mentionné
ppa:nilarimogard/webupd8
est https://launchpad.net/~nilarimogard/+archive/webupd8 . Si vous faites défiler vers le bas, vous voyez une étiquette extensible Détails techniques sur ce PPA . Si vous le développez, vous trouverez la description comment ajouter des sources manuellement. Ajoutez les lignes suivantes à mentionné/etc/apt/sources.list
Bien sûr, vous devez ajuster quantique à la version que vous utilisez actuellement.
Ajout de la clé de signature
La description contient également une clé de signature . Ceci est important, afin que votre système puisse toujours vérifier que vous accédez réellement à une adresse ppa fiable. Dans le cas de votre ppa qui est
1024R/4C9D234C
(peut également être trouvé sous Détails techniques sur ce PPA ), où le nombre derrière la barre oblique est important. Vous pouvez ajouter l'empreinte digitale via leapt-key
programme. En règle générale, vous exécutez la commande suivanteAjouter si
apt-key
ne fonctionne pas via un proxyComme vous avez déjà eu des problèmes avec le
add-apt-repository
programme, cela peut ne pas fonctionner non plus. Vous pouvez donc télécharger et ajouter manuellement la clé 1024 bits. Si celawget
fonctionne, vous pouvez le faire en une seule étape.Sinon sûr " http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x531EE72F4C9D234C " par exemple
/path/key
et utilisezsudo apt-key add /path/key
pour l'ajouter.Fermer avec l'habituel
Ensuite, vous devez mettre à jour les informations du référentiel
apt-get update
, puis vous devriez pouvoir télécharger les packages.Ressources
Mon préféré sur la façon d'utiliser le mécanisme d'emballage (malheureusement en allemand): http://wiki.ubuntuusers.de/Paketquellen_freischalten/PPA
La version du tableau de bord mentionne également tous les points importants: https://help.launchpad.net/Packaging/PPA/InstallingSoftware
Comme il est d'utiliser-atypique clé apt de la manière décrite je ne ai trouvé les informations contenues dans les pages de manuel,
man apt-key
.Réponse connexe qui décrit à peu près la façon standard d'installer les ppa manuellement: /ubuntu//a/38029/128349
la source
En fait, cela semble être beaucoup plus facile que la réponse publiée précédemment. Vous avez juste besoin de "sudo" pour savoir que vous êtes derrière un proxy et cela fonctionnera sans effort. Pour ce faire, vous devez exporter votre proxy
http
ethttps
la façon dont vous le faites habituellement:puis ajoutez
Defaults env_keep="https_proxy"
à la fin du/etc/sudoers
fichier. Après cela, vous devriez pouvoir ajouter le ppa en utilisant la commande:sudo add-apt-repository ppa:the_ppa_you_want_to_add
Ou utiliser
si vous ne souhaitez pas modifier le
/etc/sudoers
fichier. L'-E
option exporte les variables d'environnement vers l'utilisateur sudo.J'ai donné une description détaillée à ce sujet ici sur mon blog .
la source
Assurez-vous que le proxy apt est défini comme ci-dessous
ajoutez les paramètres de proxy suivants et enregistrez le fichier
en outre, exportez les éléments suivants dans Terminal avant d'exécuter la commande
Cela devrait fonctionner.
la source