sh 'unset http_proxy' muuttaa kyseistä kutsua varten käynnistettyä kuorta. Kun se päättyy, Raken Ruby-prosessilla on yhä alkuperäinen ympäristönsä, ja myöhempi sh-kutsu perii sen taas.

Rubyn prosessin muuttamiseksi myöhempää työtä varten:

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

Tämä vaikuttaa myöhempiin lapsiprosesseihin ja Ruby-koodiin, joka lukee näitä avaimia. Se ei määritä uudelleen päätettä, joka alun perin käynnisti Raken.

Yhdelle lapsikomennolle anna sen ympäristö suoraan:

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

Rubyn prosessien käynnistysrajapinta käsittelee nil-arvoja poistoina kyseisen lapsen ympäristöstä. Rake välittää argumenttilistan tälle rajapinnalle ja jättää oman ENV:nsä ennalleen.

Poista avaimet, jotka koskevat varsinaista asiakasta. HTTPS-toiminto voi käyttää myös https_proxyä, ja jotkin asiakkaat lukevat ALL_PROXYn tai toisen asetustiedoston. Yhden HTTP-avaimen poistaminen ei ole yleinen suoran reitin ohje.

Monen argumentin muoto pitää suoritettavan tiedoston argumentit erillään. Kuorimerkkijonoa, joka sisältää poistokomennon ja URL:n, ei tarvitse rakentaa.

Aiheeseen liittyvät artikkelit