memperoleh :: http :: proxy untuk hanya repositori yang ditentukan

9

Apakah ada cara untuk menggunakan memperoleh :: http :: proxy untuk beberapa repositori?

Saya berada di jaringan yang memiliki server proxy. Jadi setiap orang harus memperbarui /etc/apt/apt.conf dengan menambahkan baris seperti

Acquire::http::Proxy "http://yourproxyaddress:proxyport";
Acquire::https::Proxy "http://yourproxyaddress:proxyport";
Acquire::ftp::Proxy "http://yourproxyaddress:proxyport";
Acquire::socks::Proxy "http://yourproxyaddress:proxyport";

Semuanya baik-baik saja dengan itu.

Tetapi sekarang kami memiliki BANYAK mesin ubuntu dan saya ingin membuat mirror ubuntu lokal.

Jadi kita harus menghapus garis-garis proxy itu .... kecuali untuk repositori eksternal.

Jadi, bagaimana cara mengkonfigurasi sesuatu seperti itu?

Dalam distro berbasis RH Anda dapat memiliki pengaturan proxy global untuk yum dan kemudian menggunakan pengaturan proxy individual untuk setiap repositori. Tetapi tidak menemukan sesuatu yang serupa di Ubuntu.

Gustavo Berman
sumber

Jawaban:

10

Akhirnya saya membuatnya berfungsi seperti yang saya inginkan.

Untuk setiap mirror lokal Anda harus menambahkan garis seperti ini:

Acquire::http::proxy::local.mirror.address "DIRECT";

Jadi, di /etc/apt/apt.conf saya mendapatkan sesuatu seperti:

Acquire::http::Proxy "http://yourproxyaddress:proxyport";
Acquire::http::proxy::local.mirror.address "DIRECT";
Acquire::https::Proxy "http://yourproxyaddress:proxyport";
Acquire::ftp::Proxy "http://yourproxyaddress:proxyport";
Acquire::socks::Proxy "http://yourproxyaddress:proxyport";

Dengan begitu saya dapat menggunakan proxy web kami untuk repositori luar / eksternal dan dapat menggunakan mirror repositori lokal kami tanpa proxy web.

Gustavo Berman
sumber
2
Ini berfungsi dengan baik, tetapi di mana dokumentasi untuk ini ??
chronospoon
1
@ Syncospoon, saya pikir penulis apt berpikir Anda adalah master di Python dan akan tahu persis bagaimana bagian ini bekerja. 8-)
Alexis Wilke
2
Cara sebaliknya mungkin seperti ini: Acquire::http::proxy::HOST_NAME_TO_BE_PROXIED "http://yourproxyaddress:proxyport";misalnya:Acquire::http::proxy::download.docker.com "http://1.2.3.4:1234";
Massood Khaari
-1

Inilah cara saya mengatasi masalah ini.

Hapus semua baris yang diperoleh di apt.conf dan bawa kembali ke keadaan aslinya

Sekarang, ekspor http_proxy Anda sebagai

export http_proxy=http://username:password@host:port 
export no_proxy=.xyz.org

di mana xyz.org adalah nama domain lokal Anda

Sekarang akhirnya jalankan apt-get sebagai berikut.

sudo -E apt-get update

Opsi -E membuat variabel http_proxy tersedia untuk apt-get. Itu dia. Proxy sekarang digunakan untuk semua koneksi eksternal dan bukan untuk jaringan internal.

Hashken
sumber
1
Metode ini tidak kompatibel dengan sistem lainnya.
Gustavo Berman