Rake shell nezruší proxy Ruby
Změňte ENV Ruby pro další úlohy nebo předejte potomkovi vlastní hash prostředí, místo abyste rušili proxy uvnitř izolovaného volání sh.
sh 'unset http_proxy' mění shell spuštěný pro toto volání. Když skončí, proces Ruby v Rake má stále své původní prostředí a pozdější volání sh ho znovu zdědí.
Chcete-li změnit proces Ruby pro další práci:
ENV.delete('http_proxy')
ENV.delete('HTTP_PROXY')
Ovlivní to pozdější potomky a kód Ruby, který tyto klíče čte. Nepřekonfiguruje to terminál, který Rake původně spustil.
Pro jeden potomkový příkaz předejte jeho prostředí přímo:
sh(
{ 'http_proxy' => nil, 'HTTP_PROXY' => nil },
'ruby', 'download.rb'
)
Rozhraní Ruby pro spouštění procesů považuje hodnoty nil za odstranění z prostředí daného potomka. Rake předá seznam argumentů tomuto rozhraní a jeho vlastní ENV zůstane nezměněn.
Odstraňte klíče relevantní pro skutečného klienta. Operace HTTPS může využít i https_proxy a některé klienty čtou ALL_PROXY nebo jiný konfigurační soubor. Odstranění jediného klíče HTTP není univerzální pokyn k přímé trase.
Forma s více argumenty udržuje argumenty spustitelného souboru oddělené. Není třeba sestavovat shellový řetězec obsahující příkaz pro zrušení a URL.