sh 'unset http_proxy' mijenja ljusku pokrenutu za taj poziv. Kad završi, Ruby proces u Rakeu i dalje ima svoje izvorno okruženje, a kasniji sh poziv ga ponovno nasljeđuje.

Da promijenite Ruby proces za daljnji rad:

ENV.delete('http_proxy')
ENV.delete('HTTP_PROXY')

To utječe na kasniju djecu i Ruby 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.

Povezani članci