Rake-ŝelo ne povas forigi la prokurilon de Ruby
Ŝanĝu la ENV de Ruby por postaj taskoj aŭ donu apartan medihaxon por infano anstataŭ forigi prokurilon ene de izolita sh-voko.
sh 'unset http_proxy' ŝanĝas la ŝelon lanĉitan por tiu voko. Kiam ĝi finiĝas, la Ruby-procezo de Rake ankoraŭ havas sian originan medion, kaj posta sh-voko denove heredas ĝin.
Por ŝanĝi la Ruby-procezon por plua laboro:
ENV.delete('http_proxy')
ENV.delete('HTTP_PROXY')
Tio efikas al postaj infanoj kaj al Ruby-kodo, kiu legas tiujn ŝlosilojn. Ĝi ne reagordas la terminalon, kiu komence lanĉis Rake.
Por unu infana komando, donu ĝian medion rekte:
sh(
{ 'http_proxy' => nil, 'HTTP_PROXY' => nil },
'ruby', 'download.rb'
)
La procezlanĉa interfaco de Ruby traktas nil-valorojn kiel forigojn el la medio de tiu infano. Rake pasas la argumentliston al tiu interfaco, lasante sian propran ENV senŝanĝa.
Forigu la ŝlosilojn koncernajn al la reala kliento. HTTPS-operacio povas ankaŭ uzi https_proxy, kaj kelkaj klientoj legas ALL_PROXY aŭ alian agordan dosieron. Forigi nur unu HTTP-ŝlosilon ne estas universala instrukcio pri rekta vojo.
La formo kun pluraj argumentoj tenas la argumentojn de la plenumeblo apartaj. Ne necesas konstrui ŝelĉenon enhavantan forigan komandon kaj URL-on.