Saya mencoba menambahkan repositori ppa (sebagai root) dengan perintah berikut:
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')
Sayangnya itu tidak berhasil. Sepertinya curl terhubung ke proxy, tetapi proxy tersebut mengatakan bahwa Otentikasi Diperlukan. Saya sudah mencoba dengan .curlrc, http_proxy env sebagai gantinya, tetapi tidak berhasil.
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\
Mungkin karena ada @ masuk di nama pengguna? Wget berfungsi dengan baik-baik saja proxy.
Terkait: Bagaimana cara saya menambah repositori dari belakang proxy?
Lingkungan Hidup
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
Fitur curl: GSS-Negosiasi IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP
MEMPERBARUI
Ketika menambahkan kredensial ke .curlrc
cat ~/.curlrc
proxy = 165.x.x.232:8080
proxy-user = [email protected]:mypass0
Tampaknya bekerja untuk ikal biasa .
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
Juga 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
Tetapi masih tidak berfungsi saat menambahkan sertifikat ppa.
pycurl.error: (56, 'Received HTTP code 407 from proxy after CONNECT')
KEPALA CURL
Tajuk terkirim:
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
Balasan:
HTTP/1.1 200 Connection established
HEADER PyCURL
Tajuk terkirim:
CONNECT launchpad.net:443 HTTP/1.1
Host: launchpad.net:443
User-Agent: PycURL/7.22.0
Proxy-Connection: Keep-Alive
Accept: application/json
Balasan:
HTTP/1.1 407 Proxy Authentication Required
Proxy-Authenticate: BASIC realm="proxy"
Tampaknya PyCURL tidak mengirim kembali Otorisasi apa pun saat diminta.
Jawaban:
Penanganan masalah jika
apt-get
masih berfungsi di belakang proxy/etc/apt/sources.list
Menambahkan sumber secara manual
Saya pikir di launchpad.net setiap ppa masih berisi deskripsi kecil cara menambahkan sumber secara manual. Situs launchpad untuk ppa yang Anda sebutkan
ppa:nilarimogard/webupd8
adalah https://launchpad.net/~nilarimogard/+archive/webupd8 . Jika Anda menggulir ke bawah, Anda akan melihat label yang dapat diperluas. Rincian teknis tentang PPA ini . Jika Anda mengembangkannya, Anda akan menemukan deskripsi cara menambahkan sumber secara manual. Tambahkan baris berikut ke yang disebutkan/etc/apt/sources.list
Tentu saja Anda harus menyesuaikan jumlah dengan versi apa pun yang saat ini Anda gunakan.
Menambahkan Kunci Masuk
Deskripsi juga berisi kunci penandatanganan . Ini penting, agar sistem Anda selalu dapat memverifikasi bahwa Anda benar-benar mengakses alamat ppa yang dapat dipercaya. Dalam hal ppa Anda
1024R/4C9D234C
(dapat juga ditemukan di bawah Rincian teknis tentang PPA ini ), di mana nomor di belakang garis miring adalah penting. Anda dapat menambahkan sidik jari melaluiapt-key
program. Biasanya Anda akan melakukan perintah berikutMenambahkan jika
apt-key
tidak berfungsi melalui proxyKarena Anda sudah memiliki masalah dengan
add-apt-repository
program ini, ini mungkin juga tidak berfungsi. Jadi, alih-alih Anda dapat mengunduh dan menambahkan kunci 1024 Bit secara manual. Jikawget
berhasil, Anda dapat melakukannya dalam satu langkah.Kalau tidak aman " http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x531EE72F4C9D234C " dalam contoh
/path/key
dan gunakansudo apt-key add /path/key
untuk menambahkannya.Tutup dengan yang biasa
Setelah itu Anda harus memperbarui informasi repositori
apt-get update
dan kemudian Anda dapat mengunduh paket.Sumber daya
Favorit pribadi saya tentang cara menggunakan mekanisme pengemasan (sayangnya dalam bahasa Jerman): http://wiki.ubuntuusers.de/Paketquellen_freischalten/PPA
Versi launchpad juga menyebutkan semua poin penting: https://help.launchpad.net/Packaging/PPA/InstallingSoftware
Karena tidak biasa menggunakan apt-key dengan cara yang dijelaskan saya hanya menemukan informasi di halaman manual
man apt-key
,.Jawaban terkait yang cukup banyak menggambarkan cara standar untuk menginstal ppa secara manual: /ubuntu//a/38029/128349
sumber
Sebenarnya itu tampaknya jauh lebih mudah daripada jawaban yang diposting sebelumnya. Anda hanya perlu "sudo" untuk mengetahui bahwa Anda berada di belakang proxy dan itu akan bekerja dengan mudah. Untuk melakukan ini, Anda perlu mengekspor proxy Anda
http
danhttps
cara yang biasa Anda lakukan:dan kemudian tambahkan
Defaults env_keep="https_proxy"
ke akhir/etc/sudoers
file. Setelah ini, Anda harus dapat menambahkan ppa menggunakan perintah:sudo add-apt-repository ppa:the_ppa_you_want_to_add
atau gunakan
jika Anda tidak ingin memodifikasi
/etc/sudoers
file. The-E
pilihan ekspor variabel lingkungan untuk pengguna sudo.Saya telah memberikan deskripsi terperinci tentang ini di sini di blog saya .
sumber
Pastikan apt proxy diatur seperti di bawah ini
tambahkan pengaturan proxy berikut dan simpan file
selain itu ekspor berikut di Terminal sebelum Anda menjalankan perintah
Ini seharusnya bekerja.
sumber