Rake-kuori ei voi poistaa Rubyn proxyä
Muuta Rubyn ENV myöhempiä tehtäviä varten tai anna lapselle oma ympäristöhash sen sijaan, että poistaisit proxyn eristetyn sh-kutsun sisällä.
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.