Një shell Rake nuk mund të heqë proxy-n e Ruby
Ndryshoni ENV-in e Ruby për detyrat e mëvonshme ose jepni një hash mjedisi të veçantë për fëmijën në vend që të hiqni një proxy brenda një thirrjeje sh të izoluar.
sh 'unset http_proxy' ndryshon shell-in që niset për atë thirrje. Kur ai mbaron, procesi Ruby i Rake ka ende mjedisin e tij origjinal, dhe një thirrje sh e mëvonshme e trashëgon përsëri.
Për të ndryshuar procesin Ruby për punën e mëvonshme:
ENV.delete('http_proxy')
ENV.delete('HTTP_PROXY')
Kjo ndikon në fëmijët e mëvonshëm dhe në kodin Ruby që lexon ato çelësa. Ai nuk e rikonfiguron terminalin që e nisi Rake fillimisht.
Për një komandë të vetme fëmije, jepni mjedisin e saj drejtpërdrejt:
sh(
{ 'http_proxy' => nil, 'HTTP_PROXY' => nil },
'ruby', 'download.rb'
)
Ndërfaqja e nisjes së proceseve të Ruby i trajton vlerat nil si heqje nga mjedisi i atij fëmije. Rake ia kalon listën e argumenteve asaj ndërfaqeje, duke e lënë ENV-in e vet të pandryshuar.
Hiqni çelësat përkatës për klientin aktual. Një operacion HTTPS mund të konsumojë edhe https_proxy, dhe disa klientë konsultojnë ALL_PROXY ose një skedar tjetër konfigurimi. Heqja e vetëm një çelësi HTTP nuk është udhëzim universal për rrugë të drejtpërdrejtë.
Forma me shumë argumente i mban argumentet e ekzekutueshmes të ndara. Nuk është e nevojshme të ndërtohet një varg shell që përmban një komandë heqjeje dhe një URL.