Mengikuti instruksi di Cara terbaik untuk menyimpan cache unduhan unduhan di LAN? , Saya telah menyiapkan proxy caching di jaringan lokal saya. Karena mesin itu tidak selalu menyala, saya ingin dapat me-refresh daftar sumber dan menginstal paket tanpa menggunakan proxy itu jika tidak tersedia.
Saya sudah membaca bagian grup Acquire di halaman manual apt.conf(5)
, tapi saya tidak bisa menemukan opsi seperti "Silent-Fail".
Saat ini, sudo apt-get update
dan perintah terkait gagal karena tidak ada koneksi yang dapat dibuat. Jadi, bagaimana cara mengkonfigurasi klien sehingga proksi diabaikan jika tidak tersedia?
networking
apt
proxy
Lekensteyn
sumber
sumber
Jawaban:
Ada pengaturan tidak berdokumen
Acquire::http::ProxyAutoDetect
,. Pengaturan ini harus berisi path lengkap ke biner dan tidak dapat memiliki argumen. Perintah harus menampilkan proksi yang akan digunakan (contohhttp://10.0.0.1:8000
:).Dengan informasi di atas, skrip dapat dibuat yang mencoba proxy sebelum menyetelnya. Jika tidak ada proxy yang tersedia, koneksi langsung harus digunakan.
Di bawah ini adalah skrip deteksi proxy yang mencoba
http://10.0.0.1:8000/
danhttp://10.0.0.2:8000
proksi.Masukkan kode
/etc/apt/detect-http-proxy
:Sekarang, APT harus dikonfigurasi untuk menggunakan skrip deteksi proxy di atas, jadi masukkan kode berikut ini
/etc/apt/apt.conf.d/30detectproxy
:Saya juga meletakkan kode selanjutnya ke file untuk mencegah beberapa host dari proksi.
Secara default, skrip menampilkan apakah proxy digunakan atau tidak. Untuk menonaktifkannya, edit
/etc/apt/detect-http-proxy
dan ubahshow_proxy_messages=1
keshow_proxy_messages=0
.sumber
apt-cacher-ng::client
?if nc -w1 -z 192.168.0.2 3142; then printf http://192.168.0.2:3142; else printf DIRECT; fi
. Semoga saja fitur yang tidak berdokumen dihapus :)i=192.168.0.2;nc -zw1 $i 3142&&echo http://$i:3142/||echo DIRECT
: pSekarang ada cara yang didukung secara resmi untuk melakukan ini - menggunakan opsi -
Acquire::http::Proxy-Auto-Detect
(lihatapt.conf
halaman manual). Perilaku mirip dengan yang tidak berdokumen lamaAcquire::http::ProxyAutoDetect
(perhatikan ada / tidak adanya tanda hubung dalam opsi konfigurasi baru / lama), sebagian besar kompatibel secara mundur, tetapi telah diperpanjang ...Saya sedang dalam proses mengajukan tambalan kepada pengelola apt untuk meningkatkan dokumentasi, tetapi karena ini tidak mungkin untuk membuatnya menjadi versi apt yang dikirimkan dengan rilis distro untuk beberapa waktu, saya akan memasukkan teks dari patch yang diusulkan di sini:
Acquire::http::Proxy-Auto-Detect
dapat digunakan untuk menentukan perintah eksternal untuk menemukan proxy http yang akan digunakan. APT dapat memanggil perintah beberapa kali, dan akan memberikan URI ke perintah sebagai parameter pertama dan satu-satunya. APT mengharapkan perintah untuk menampilkan proxy yang akan digunakan untuk menghubungi URI yang bersangkutan di stdout sebagai satu baris dalam stylehttp://proxy:port/
, atau kataDIRECT
jika proxy tidak boleh digunakan. Tidak ada output yang menunjukkan bahwa pengaturan proxy generik harus digunakan.Perhatikan bahwa deteksi otomatis tidak akan digunakan untuk host jika konfigurasi proxy khusus host sudah ditetapkan via
Acquire::http::Proxy::HOST
.Untuk mendiagnosis interaksi dengan perintah eksternal, setel
Debug::Acquire::http=yes
dan / atauDebug::Acquire::https=yes
mis. Menggunakan-o
parameter baris perintah.Catatan yang menggunakan versi pra-rilis apt, versi 1.3 ~ exp2 ke 1.3 kemudian ada bug (kemungkinan diperbaiki oleh 1.3.1) yang menyebabkan apt untuk mengurai stderr dari perintah eksternal bersama dengan stdout.
sumber
/etc/apt/apt.conf.d/02proxy
:/usr/local/bin/apt-proxy-detect.sh
:Garis komando
nc
berfungsi (sudo apt-get install netcat
) jika hilang.chmod +x /usr/local/bin/apt-proxy-detect.sh
Bagaimana itu bekerja
Jika itu dapat terhubung ke proxy, itu mencetak proxy keluar APT menggunakannya. Jika tidak bisa, ia akan mencetak chug LANGSUNG dan APT secara normal.
saus
sumber