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.

Rilataj artikoloj