Cara menentukan bahwa Yum tidak boleh menggunakan proxy untuk domain tertentu

11

Apakah mungkin menentukan domain yang yum harus memotong konfigurasi proxy? Saya khawatir ini tidak mungkin ...

Saya membaca bahwa adalah mungkin untuk menggunakan variabel lingkungan HTTP_PROXY kemudian NO_PROXY, apakah itu solusi yang paling elegan?

[EDIT]

Saya mencoba solusi dengan variabel lingkungan:

export HTTP_PROXY=http://user:pass@host:port
export http_proxy=http://user:pass@host:port
export no_proxy=.domain
export NO_PROXY=.domain

Yum menggunakan proxy tetapi repos * .domain tidak di-bypass.

[WORKAROUND]

Menggunakan http://cntlm.sourceforge.net/ Saya dapat mengkonfigurasi domain mana yang harus diabaikan. Tetapi ini hanya dengan proksi yang memerlukan otentikasi NTLM ...

chepseskaf
sumber

Jawaban:

21

Saya belum bisa menjalankan ini dengan menggunakan variabel lingkungan seperti yang Anda jelaskan di sini. Namun, Yum mendukung proxy sendiri, dan Anda harus dapat melakukan sesuatu seperti ini:

proxy=http://proxy:port

Ke yum.conf dan kemudian menambahkan

proxy=_none_

Ke dalam definisi repo yang tidak ingin Anda akses melalui proksi global. Ini dirinci (walaupun ringkas) di halaman manual yum.conf.

sagepe
sumber
Akhirnya berhasil. Terima kasih! Saya tidak ingin melalui semua host lagi di mana saya melakukannya. Tetapi apakah mungkin juga untuk menambahkan proxy secara langsung ke file repo ini jika diperlukan (mis. Semua repo dengan server paket eksternal, berbeda dengan file repo yang menggunakan manajer paket internal yang tidak memerlukan proxy)
erikbwork
4

Jika saya memahami pertanyaan ini dengan benar, perilaku yang diinginkan adalah

Packages.centos.com ditarik melalui proxy.

paket.internal.lan berjalan langsung tanpa melalui proxy.

Saya baru saja tiba di sini setelah melakukan pencarian sendiri di Google, dan menggunakan info di atas untuk mencapai apa yang saya inginkan, namun saya tidak yakin apakah jawaban di atas selesai.

Untuk melakukan ini saya menggunakan yang berikut ini.

export HTTP_PROXY=http://myproxy.internal.lan:port

export no_proxy=internal.lan

yum install package1 package2

paket1 ditarik dari internet melalui proxy,

paket2 ditarik dari mirror lokal saya tidak melalui proxy.

Jay
sumber
3

Solusi saya melibatkan pengaturan Privoxy, proksi http ringan.

yum instal privoxy

Tambahkan dua klausa penerusan di / etc / privoxy / config:

 forward / myproxy.internal.lan:3128
 forward .internal.lan .

Dan juga menonaktifkan tindakan default privoxy (memastikan tidak ada header yang rusak): (@ line 175 di konfigurasi privel RHEL 5)

#actionsfile standard  # Internal purpose, recommended
#actionsfile default   # Main actions file
#actionsfile user      # User customizations

Kemudian mengatur variabel lingkungan http_proxy dan ftp_proxy ke port privoxy:

menyatakan -x http_proxy = http://127.0.0.1:8118

mendeklarasikan -x ftp_proxy = http://127.0.0.1:8118

yum instal package1 package2

Catatan: jika Anda memiliki garis proxy di yum.conf, hapuslah, itu akan menimpa variabel lingkungan.

YudhiWidyatama
sumber
Saya mencari cara untuk membuat daftar putih host dari privoxy dan saya mendapat jawaban saya di sini :)
ahmadali shafiee
2

Anda bisa menentukannya di file repo. Sebagai contoh:

[hduser@n0 cloudera-manager-installer]$ cat /etc/yum.repos.d/cloudera-cdh4.repo  
[cloudera-cdh4]  
name=Cloudera's Distribution for Hadoop, Version 4  
baseurl=http://"yourhost"/cdh4/  
gpgcheck = 0
enabled=1
proxy=_none_
lzhshen
sumber