Saya mencoba mengikuti petunjuk "Menginstal Cross Toolchain di Ubuntu 10.04 (Lucid) dan 10.10 (Maverick) Hosts" di wiki.linaro.org (di Ubuntu 10.04 VM). Langkah pertama adalah:
sudo add-apt-repository ppa:linaro-maintainers/toolchain
Tetapi ketika saya menjalankan itu saya mendapatkan:
Error reading https://launchpad.net/api/1.0/~linaro-maintainers/+archive/toolchain: <urlopen error [Errno 110] Connection timed out>
Saya menduga masalahnya adalah konfigurasi saya untuk server proxy majikan saya, terutama untuk HTTPS.
Ketika saya membuka https://launchpad.net/api/1.0/~linaro-maintainers/+archive/toolchain di Firefox, saya mendapat "Sambungan habis waktu". Saya kemudian pergi ke Firefox Preferences -> Advanced -> Network -> Settings ... dan mengatur HTTP Proxy ke "gateway" dan Port ke 8080, dan memeriksa "Gunakan server proxy ini untuk semua protokol". Kemudian halaman dimuat. Ini mendukung teori saya.
Saya sudah mencoba mengatur variabel lingkungan http_proxy dan https_proxy (huruf besar dan kecil):
$ set | grep -i proxy
HTTPS_PROXY=https://gateway:8080
HTTP_PROXY=http://gateway:8080
http_proxy=http://gateway:8080
https_proxy=https://gateway:8080
Saya juga mencoba mengubahnya menjadi:
$ set | grep -i proxy
HTTPS_PROXY=gateway:8080
HTTP_PROXY=gateway:8080
http_proxy=gateway:8080
https_proxy=gateway:8080
Dan saya mencoba menambahkan baris kedua ini ke /etc/apt/apt.conf:
Acquire::http::proxy "http://gateway:8080/";
Acquire::https::proxy "https://gateway:8080/";
Tapi saya terus mendapatkan kesalahan yang sama.
Bagaimana saya memecahkan masalah ini?
Pembaruan: Saya mengikuti instruksi dalam jawaban yang diterima untuk "Masalah menambahkan repositori dan menghubungkan dari terminal di belakang proxy" dan mendapatkan lebih lanjut:
$ sudo add-apt-repository ppa:linaro-maintainers/toolchain
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv 1DD749B890A6F66D050D985CF1FCBACA7BE1F97B
gpg: requesting key 7BE1F97B from hkp server keyserver.ubuntu.com
gpgkeys: HTTP fetch error 7: couldn't connect to host
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
Saya ingin tahu apakah "HTTP fetch error" berarti saya juga perlu menambahkan "Defaults env_keep = http_proxy" ke /etc/sudoers
...
Pembaruan # 2: Saya menambahkan:
Defaults env_keep="http_proxy"
Defaults env_keep="https_proxy"
... seperti dalam Komentar 18 untuk bug 516032 , tapi saya masih mendapatkan kesalahan "gpgkeys: HTTP fetch 7: tidak dapat terhubung ke host" yang sama.
Dan ini penasaran:
$ sudo env | grep proxy
https_proxy=https://gateway:8080
... karena http_proxy tidak ada.
Setiap saran sangat dihargai.
Pembaruan # 3: Karena host VM saya adalah laptop, saya membawanya pulang dan mencobanya (tanpa proxy):
$ sudo add-apt-repository ppa:linaro-maintainers/toolchain
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv 1DD749B890A6F66D050D985CF1FCBACA7BE1F97B
gpg: requesting key 7BE1F97B from hkp server keyserver.ubuntu.com
gpg: key 7BE1F97B: public key "Launchpad Linaro Overlay PPA" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
Itu berhasil. Jadi masalah terkait dengan konfigurasi proxy. Tapi saya kira saya punya solusi.
sumber
Jawaban:
Selain mengonfigurasi proksi, beri tahu
sudo
untuk melestarikan lingkungan dengan-E
opsi:dengan nama pengguna dan kata sandi:
sumber
https_proxy
konfigurasi itu diperlukan ...: Pman sudo
:-E, --preserve-env
Menunjukkan kebijakan keamanan bahwa pengguna ingin mempertahankan variabel lingkungan yang ada. Kebijakan keamanan dapat mengembalikan kesalahan jika pengguna tidak memiliki izin untuk melestarikan lingkungan.mGunakan kode berikut di terminal untuk menambahkan kunci gpg di belakang proxy,
Dan ganti huruf besar sesuai. Jika Anda menggunakan proxy tanpa autentikasi pengguna (misalnya, nama pengguna dan kata sandi) gunakan
http-proxy=http://PROXY_URL:PORT/
sebagai gantinya.Misalnya agar
GPG_KEY=C2514567EEA14886
Anda dapat menggunakan,dimana,
Jika Anda tidak memiliki otentikasi pengguna cukup gunakan,
sumber
Akhirnya! Anda perlu mengatur https_proxy melalui:
hanya mengatur http_proxy tidak cukup.
Dan saya perlu menjalankan perintah add-apt-repository sebagai root, BUKAN melalui sudo.
Kode:
sumber
Tampaknya konfigurasi proxy sudah diatur tetapi entah bagaimana server tidak dapat dihubungi ...
Saya memiliki masalah yang sangat mirip yang saya selesaikan seperti ini: Proksi perusahaan hanya mengizinkan port 80 dan 443 untuk alasan keamanan, jadi ketika pengaturan, karena protokol HKP menggunakan port 11371, itu tidak akan membiarkan Anda melewatinya.
Jadi, singkat dari SSH-ing keluar dan mendapatkan kunci dari salah satu server Anda di luar, mengunduhnya dan menginstalnya secara lokal, Anda dapat menentukan server kunci dari pada yang tercantum di bawah ini dan menentukan port:
http://sks-keyservers.net/overview-of-pools.php
misalnya:
Boom, Voila!
sumber
sudo -E apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
Alasan
sudoers
perubahan Anda tidak berfungsi seperti yang diharapkan adalah bahwa alih-alih:Anda seharusnya menulis:
Pastikan juga spasi antara
Defaults
danenv_keep
merupakan tab setiap kali.sumber
Saya berhasil mengatasinya dengan mengedit
/usr/lib/python3/dist-packages/softwareproperties/ppa.py
dan menambahkandi bawah baris berikut
Informasi latar belakang lainnya
ppa.py
adalah skrip python yang digunakan olehadd-apt-repository
untuk memanggil gpg. Kadang-kadang tampaknya ada bug dengan gpg di mana ia tidak menggunakan variabel lingkungan http_proxy. Ini dapat dikonfirmasi dengan melihat file/root/.gnupg/dirmngr.conf
dan memeriksa untuk melihat yanghonor-http-proxy
tidak dikomentari.sumber
Pendekatan empat langkah ini berhasil bagi saya pada Ubuntu 17,04 VM di belakang proxy perusahaan.
sudo apt-add-repository ppa:brightbox/ruby-ng
dan biarkan itu gagalsudo apt update
dan cari pesan kesalahan sepertiThe following signatures couldn't be verified because the public key is not available: NO_PUBKEY F5DA5F09C3173AA6
sudo apt-key adv --keyserver-options http-proxy=http://10.0.2.2:3128 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys F5DA5F09C3173AA6
sudo apt update
sekarang akan bekerjaPerhatikan bahwa VM host menjalankan
CNTLM
server proxy pada port 3128.sumber
Ini membantu saya:
Saya kira ada beberapa variabel lingkungan yang tidak diperlukan dalam perintah tetapi mereka tidak membahayakan.
sumber
Tambahkan PPA secara manual ke
/etc/apt/sources.list
:Simpan file dan jalankan
sudo apt-get update
. Kesalahan ini mungkin muncul:Jalankan perintah berikut untuk menerima kunci untuk PPA, ingat untuk mengubah kunci (5BB92C09DB82666C) untuk PPA yang sesuai.
Lari
sudo apt-get update
dan Anda selesai.Ref: Cara Menambahkan PPA Launchpad Di Debian Via
add-apt-repository
Commandsumber
Sebenarnya, saya mengalami masalah yang sama, itulah cara saya menemukan halaman ini.
variabel lingkungan http_proxy (case sensitif) dan https_proxy (case apa pun) melakukan sesuatu. Tidak menetapkan mereka gagal pada tahap pertama, pengaturan variabel lingkungan tampaknya memiliki efek; itu akan gagal jika Anda tidak mengekspornya
(sisanya berhasil - kali ini)
Masalahnya adalah, kadang-kadang, itu hanya macet dan diakhiri dengan pesan batas waktu yang biasa: Tidak dapat menambahkan PPA: '"Kesalahan membaca https://launchpad.net/api/1.0/~webupd8team/+archive/java : (7,' Gagal terhubung ke port launchpad.net 443: Koneksi habis waktu ') "'.
... tapi saya curang, saya melakukan semua ini sebagai root. Solusi mudah adalah dengan mengedit / etc / profile atau, di Ubuntu / Mint, cukup tambahkan skrip di /etc/profile.d:
Oh, ya, ada juga hal tentang curl (yang digunakan oleh apt-add-repository, by the way). Manual mengatakan untuk menambahkan .curlrc di direktori home Anda. Karena apt-add-directory adalah milik root, itu berarti menambahkannya ke /root/.curlrc:
Ide yang bagus adalah melakukan hal yang sama di ~ ~ .curlrc Anda sendiri
Juga, mengaktifkan proxy di / etc / wgetrc adalah hal yang baik untuk dilakukan, meskipun itu tidak ada hubungannya dengan pertanyaan yang diajukan, saya hanya menyimpan Anda pencarian lain di Google (jika Anda membaca ini, Anda memiliki beberapa dengan proxy ) ...
sumber
Dalam
/etc/apt/apt.conf.d/01proxy
add sesuatu seperti iniIni akan mem - proxy semua unduhan aptitude, tapi saya pikir ini adalah satu-satunya cara untuk melakukan ini di backend. Jika proxy Anda mendukungnya, Anda juga dapat menggunakan url seperti
http://my.proxy:port/www.target.site.com/url
yang saya tahu berfungsi untukapt-cache-ng
Saya tidak yakin apakah add-apt-repository sendiri menggunakan pengaturan ini, tetapi jika Anda tidak dapat membuatnya, Anda selalu dapat menambahkan repositori ke
/etc/apt/sources.list
atau/etc/apt/sources.list.d/*mytoolchain*
Sejak 11.10 ada juga cross-tool yang tersedia di repo utama, adil
apt-get install gcc-arm-linux-gnueabihf
. Ada juga cross-toolchains yang tersedia dari emdebian, dan beberapa instruksi di sini: http://gsoc.sitedethib.com/posts/apt-get_install_gcc-4.7-arm-linux-gnueabihf/sumber
Apa yang saya lakukan adalah menggunakan http via curl alih-alih mencoba proxy apt-key atau gpg:
curl -sSL \ ' http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xBBEBDCB318AD50EC6865090613B00F1FD2C19886 ' \ | sudo apt-key add -
Metode ini harus digunakan sebagai ganti pengaturan
apt-key
baris perintah atauhttp_proxy
atauhttps_proxy
variabel lingkungan (yang dinonaktifkan di versi terbaru dari tombol-tepat).sumber
Jalankan perintah di bawah ini di terminal
sumber
Variabel lingkungan sistem lebar harus benar-benar ditambahkan ke
/etc/environment
(menggunakansudo
ataugksu
), tetapi kesalahan yang dilaporkan kepada Anda tampaknya menyatakan tidak ada data gpg ditemukan. Ide ide:sumber
Solusi lain adalah menambahkan
proxy.conf
file APT ,/etc/apt/apt.conf.d/proxy.conf
sumber