Internetsiz Ortamda pip İle Paket Kurulumu


Merhabalar,

Durum:

  • Elimizde iki adet Centos7 makinemiz var.Farklı ağdalar.
  • Birincisi normal şekilde internete çıkabiliyor. Fakat diğeri internete çıkamıyor.
  • Birinci makineden ikinciye ssh bağlantısı yapılabiliyor.1
  • İkinci makineye yum ile python, python-pip kurulacak.
  • İkinci makineye pip ile libvirt paketi kurulacak.

Bu durumda bir çok işlem yapılabilir. Fakat ben proxy kurmadan SSH protokolü ile proxy oluşturarak ikinci makineyi internete çıkartmayı anlatacağım.

İkinci makineye login oluyoruz.

İkinci makineden birinci makineye SSH Proxy Tunel oluşturuyoruz. (8123 portunda bir proxy servisi alttaki komutla olusturulur)
ssh -D 8123 -f -C -q -N root@10.10.10.5
Artık ikinci makinenin 8123 portuna çalışan bir sock5 tipinde bir proxy servisimiz mevcut. yum ile update yapmak/paket yüklemek istediğimizde bu servis üzerinden işlemleri gerçekleştirebiliriz.

Yum komutunu socks5 ile çalıştırmak için /etc/yum.conf dosyasını açıp proxy ifadesini proxy=socks5://ip:port  formatında alttaki gibi değiştiriyoruz.
proxy=socks5://localhost:8123
Artık yum ile python paketini kurabiliriz.
yum install python python-pip
Python paketleri kurulduktan sonra pip komutu ile istediğimiz paketi kurabiliriz… FAKAT!!

pip komutu sadece http/https proxy yi desteklemektedir. socks5/socks protokollerini desteklememektedir. Socks proxy yi adres gösterirseniz alttaki hatayı vermektedir.
Could not install packages due to an EnvironmentError: Missing dependencies for SOCKS support.
Bu durumu aşabilmek için socks proxy i http proxy e çeviren birşeylere ihtiyaç var. Bunlardan biri Centos7 de “privoxy”, Ubuntuda “proxychains” olan uygulamalardır.
yum komutuyla uygulamayı kuruyoruz.
yum install privoxy -y
/etc/privoxy/config dosyasını açarak forward-socks5[t] ile başlayan satırı alttaki gibi yapıyoruz.
forward-socks5 / 127.0.0.1:8123 .

Kaydedip kapattıktan sonra privoxy yi
systemctl start privoxy
komutu ile başlatıyoruz. Artık 8118 portunda çalışan bir http proxy miz mevcut. Bu proxy i kullanarak istediğimiz güncellemeleri kurabilir istediğimiz paketi yükleyebiliriz.

artık pip proxy yi kullanabiliriz. Örnek;
pip install libvirt-python --proxy localhost:8118