Rake apvalkalas negali pašalinti Ruby proxy
Pakeiskite Ruby ENV vėlesnėms užduotims arba perduokite atskirą vaiko aplinkos hash, užuot šalinę proxy izoliuotame sh kvietime.
sh 'unset http_proxy' pakeičia tam kvietimui paleidžiamą apvalkalą. Jam pasibaigus, Rake Ruby procesas vis dar turi pradinę aplinką, o vėlesnis sh kvietimas vėl ją paveldi.
Norėdami pakeisti Ruby procesą tolesniam darbui:
ENV.delete('http_proxy')
ENV.delete('HTTP_PROXY')
Tai veikia vėlesnius vaikus ir Ruby kodą, kuris skaito tuos raktus. Jis neperkonfigūruoja terminalo, kuris iš pradžių paleido Rake.
Vienai vaiko komandai pateikite jos aplinką tiesiogiai:
sh(
{ 'http_proxy' => nil, 'HTTP_PROXY' => nil },
'ruby', 'download.rb'
)
Ruby procesų paleidimo sąsaja nil reikšmes traktuoja kaip pašalinimą iš to vaiko aplinkos. Rake perduoda argumentų sąrašą šiai sąsajai ir palieka savo ENV nepakeistą.
Pašalinkite raktus, susijusius su tikruoju klientu. HTTPS operacija taip pat gali naudoti https_proxy, o kai kurie klientai skaito ALL_PROXY arba kitą konfigūracijos failą. Pašalinti vieną HTTP raktą nėra universalus tiesioginio maršruto nurodymas.
Kelių argumentų forma palaiko vykdomojo failo argumentus atskirai. Nereikia kurti apvalkalo eilutės su pašalinimo komanda ir URL.