J'essaie d'ajouter le référentiel ppa (en tant que racine) 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. On dirait que curl se connecte au proxy, mais celui-ci 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 un signe @ dans le nom d'utilisateur? Wget fonctionne avec un proxy bien.
Connexes: Comment puis-je 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
caractéristiques curl: GSS-Négocier IDN IPv6 Largefile NTLM NTLM_WB Libz SSL TLS-SRP
UPDATE
Une fois les informations d'identification ajoutées dans .curlrc
cat ~/.curlrc
proxy = 165.x.x.232:8080
proxy-user = [email protected]:mypass0
Cela semble fonctionner pour le plaine curl .
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
Aussi 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
Mais cela 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
PyCURL HEADERS
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.
apt-get
fonctionne toujours derrière le proxy/etc/apt/sources.list
Je pense que sur launchpad.net chaque ppa contient encore une petite description comment ajouter des sources manuellement. Le site tableau de bord pour votre ppa mentionné ppa:nilarimogard/webupd8
est https://launchpad.net/~nilarimogard/+archive/webupd8 . Si vous faites défiler l'écran 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 à la mention /etc/apt/sources.list
deb http://ppa.launchpad.net/nilarimogard/webupd8/ubuntu quantal main
deb-src http://ppa.launchpad.net/nilarimogard/webupd8/ubuntu quantal main
Bien sûr, vous devez ajuster le quantal à la version que vous utilisez actuellement.
La description contient également une clé de signature . Ceci est important pour que votre système puisse toujours vérifier que vous accédez réellement à une adresse ppa de confiance. Si votre ppa est 1024R/4C9D234C
(peut également être trouvé sous Détails techniques sur ce PPA ), où le nombre situé derrière la barre oblique est important. Vous pouvez ajouter l'empreinte digitale via le programme apt-key
. En règle générale, vous devez exécuter la commande suivante
Sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 4C9D234C
apt-key
ne fonctionne pas par proxyPuisque vous avez déjà eu des problèmes avec le programme add-apt-repository
, cela pourrait ne pas fonctionner non plus. Vous pouvez donc télécharger et ajouter manuellement la clé 1024 bits. Si wget
fonctionne, vous pouvez le faire en une seule étape.
wget "http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x531EE72F4C9D234C" -O out && Sudo apt-key add out && rm out
Sinon, safe " http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x531EE72F4C9D234C " dans, par exemple. /path/key
et utilisez Sudo apt-key add /path/key
pour l'ajouter.
Ensuite, vous devez mettre à jour les informations du référentiel apt-get update
et vous devriez ensuite pouvoir télécharger les packages.
Mon préféré sur la façon d'utiliser le mécanisme de packaging (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 n’est pas typique d’utiliser apt-key de la manière décrite, je n’ai trouvé que les informations dans les pages de manuel, man apt-key
.
Réponse associée qui décrit à peu près la manière standard d’installer manuellement ppa: https://askubuntu.com/a/38029/128349
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 que cela fonctionnera sans effort. Pour ce faire, vous devez exporter votre proxy pour http
et https
comme vous le faites habituellement:
export http_proxy=http://username:password@Host:port/
export https_proxy=https://username:password@Host:port/
puis ajoutez Defaults env_keep="https_proxy"
à la fin du fichier /etc/sudoers
. 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
Sudo -E add-apt-repository ppa:the_ppa_you_want_to_add
si vous ne souhaitez pas modifier le fichier /etc/sudoers
. L'option -E
exporte les variables d'environnement vers l'utilisateur Sudo.
J'ai donné une description détaillée à ce sujet ici sur mon blog .
Assurez-vous que apt proxy est défini comme ci-dessous
Sudo vi /etc/apt/apt.conf
ajoutez les paramètres de proxy suivants et enregistrez le fichier
Acquire::http::proxy "http ://proxy.company.com:port/";
Acquire::https::proxy "https ://proxy.company.com:port/";
Acquire::ftp::proxy "ftp://proxy.company.com:port/";
en outre export suivant dans Terminal avant d'exécuter la commande
export http_proxy=http ://proxy.company.com:port/
export https_proxy=https ://proxy.company.com:port/
Cela devrait marcher.