Rake'i shell ei saa Ruby proxy't eemaldada
Muutke Ruby ENV-i hilisemate ülesannete jaoks või andke alamprotsessile eraldi keskkonnaräsi, selle asemel et proxy isoleeritud sh-kutse sees eemaldada.
sh 'unset http_proxy' muudab selle kutse jaoks käivitatud shelli. Kui see lõpeb, on Rake'i Ruby protsessil endiselt oma algne keskkond ja hilisem sh-kutse pärib selle uuesti.
Ruby protsessi muutmiseks edasiseks tööks:
ENV.delete('http_proxy')
ENV.delete('HTTP_PROXY')
See mõjutab hilisemaid alamprotsesse ja Ruby koodi, mis neid võtmeid loeb. See ei konfigureeri uuesti terminali, mis Rake'i algselt käivitas.
Ühe alamkäsuga andke selle keskkond otse:
sh(
{ 'http_proxy' => nil, 'HTTP_PROXY' => nil },
'ruby', 'download.rb'
)
Ruby protsesside käivitamise liides käsitleb nil-väärtusi selle alama keskkonnast eemaldamistena. Rake edastab argumentide loendi sellele liidesele, jättes oma ENV muutmata.
Eemaldage võtmed, mis on tegeliku kliendi jaoks olulised. HTTPS-tehing võib kasutada ka https_proxy't ning mõned kliendid loevad ALL_PROXY't või muud konfiguratsioonifaili. Ühe HTTP võtme eemaldamine ei ole üldine otsese marsruudi juhis.
Mitme argumendiga vorm hoiab käivitatava faili argumendid eraldi. Pole vaja koostada shelli stringi, mis sisaldab eemaldamiskäsku ja URL-i.