Rake ljuska ne može ukloniti Rubyjev proxy
Promijenite Rubyjev ENV za kasnije zadatke ili dajte zaseban hash okruženja za dijete umjesto uklanjanja proxyja unutar izoliranog sh poziva.
sh 'unset http_proxy' mijenja ljusku pokrenutu za taj poziv. Kad završi, Rubyjev proces u Rakeu i dalje ima svoje izvorno okruženje, a kasniji sh poziv ga ponovno nasljeđuje.
Da promijenite Rubyjev proces za daljnji rad:
ENV.delete('http_proxy')
ENV.delete('HTTP_PROXY')
To utječe na kasniju djecu i Rubyjev kod koji čita te ključeve. On ne rekonfigurira terminal koji je prvotno pokrenuo Rake.
Za jednu dječju naredbu dajte njeno okruženje izravno:
sh(
{ 'http_proxy' => nil, 'HTTP_PROXY' => nil },
'ruby', 'download.rb'
)
Rubyjevo sučelje za pokretanje procesa tretira nil vrijednosti kao uklanjanja iz okruženja tog djeteta. Rake prosljeđuje popis argumenata tom sučelju i ostavlja vlastiti ENV nepromijenjen.
Uklonite ključeve relevantne za stvarnog klijenta. HTTPS radnja može koristiti i https_proxy, a neki klijenti čitaju ALL_PROXY ili drugu konfiguracijsku datoteku. Uklanjanje samo jednog HTTP ključa nije univerzalna uputa za izravnu rutu.
Oblik s više argumenata drži argumente izvršne datoteke odvojenima. Nije potrebno graditi ljusku niza koji sadrži naredbu za uklanjanje i URL.