Rake shell batek ezin du Rubyren proxy-a kendu
Aldatu Rubyren ENV ondorengo zereginetarako edo eman haur bakoitzarentzako ingurune-hash bereizia, sh deialdi isolatu batean proxy-a kendu beharrean.
sh 'unset http_proxy' deialdi horretarako abiarazten den shell-a aldatzen du. Hura amaitzean, Rakeko Ruby prozesuak bere jatorrizko ingurunea du oraindik, eta geroagoko sh deialdi batek berriro heredatzen du.
Ondorengo lanerako Ruby prozesua aldatzeko:
ENV.delete('http_proxy')
ENV.delete('HTTP_PROXY')
Honek geroagoko haurrei eta gako horiek irakurtzen dituen Ruby kodeari eragiten dio. Ez du Rake jatorriz abiarazi zuen terminala birkonfiguratzen.
Haur komando bakarrerako, eman haren ingurunea zuzenean:
sh(
{ 'http_proxy' => nil, 'HTTP_PROXY' => nil },
'ruby', 'download.rb'
)
Rubyren prozesuak abiarazteko interfazeak nil balioak haur horren ingurunetik kentzat hartzen ditu. Rake-k argumentu-zerrenda interfaze horri pasatzen dio, eta bere ENV aldatu gabe uzten du.
Kendu benetako bezeroari dagozkion gakoak. HTTPS eragiketa batek https_proxy ere kontsumi dezake, eta bezero batzuek ALL_PROXY edo beste konfigurazio fitxategi bat kontsultatzen dute. HTTP gako bakarra kentzea ez da bide zuzenaren argibide unibertsala.
Argumentu anitzeko formak exekutagarriaren argumentuak bereizita mantentzen ditu. Ez da beharrezkoa kentzeko komandoa eta URL bat dituen shell katea eraikitzea.