sh 'unset http_proxy' verander die dop wat vir daardie oproep begin word. Wanneer dit uitgaan, het Rake se Ruby-proses steeds sy oorspronklike omgewing, en 'n latere sh-oproep erf dit weer.

Om die Ruby-proses vir latere werk te verander:

ENV.delete('http_proxy')
ENV.delete('HTTP_PROXY')

Dit raak latere kinde en Ruby-kode wat daardie sleutels lees. Dit herkonfigureer die terminaal wat Rake oorspronklik begin het nie.

Vir een kindopdrag, gee sy omgewing direk:

sh(
  { 'http_proxy' => nil, 'HTTP_PROXY' => nil },
  'ruby', 'download.rb'
)

Ruby se proseslanseerkoppelvlak behandel nil-waardes as verwyderings uit daardie kind se omgewing. Rake gee die argumentlys aan daardie koppelvlak, wat sy eie ENV onveranderd laat.

Verwyder die sleutels wat vir die werklike kliënt relevant is. 'n HTTPS-bewerking kan ook https_proxy gebruik, en sommige kliënte raadpleeg ALL_PROXY of 'n ander konfigurasielêer. Om net een HTTP-sleutel te verwyder is nie 'n universele instruksie vir 'n direkte roete nie.

Die vorm met veelvuldige argumente hou uitvoerbare argumente apart. Daar is geen nodigheid om 'n dopstring te bou wat 'n ontset-opdrag en 'n URL bevat nie.

Verwante artikels