Rake лушпа не може да го отстрани проксито на Ruby
Променете го ENV на Ruby за следните задачи или дајте посебен хеш на околината за детето наместо да отстранувате прокси во изолиран sh повик.
sh 'unset http_proxy' ја менува лушпата што се стартува за тој повик. Кога таа завршува, Ruby процесот на Rake сè уште ја има својата првобитна околина, а подоцнежниот sh повик повторно ја наследува.
За да го промените Ruby процесот за понатамошна работа:
ENV.delete('http_proxy')
ENV.delete('HTTP_PROXY')
Тоа влијае на подоцнежните деца и на Ruby кодот што ги чита тие клучеви. Тоа не го реконфигурира терминалот што првично го стартувал Rake.
За една детска команда, дајте ја нејзината околина директно:
sh(
{ 'http_proxy' => nil, 'HTTP_PROXY' => nil },
'ruby', 'download.rb'
)
Интерфејсот за стартување процеси на Ruby ги третира nil вредностите како отстранувања од околината на тоа дете. Rake ја пренесува листата аргументи на тој интерфејс, оставајќи го сопствениот ENV непроменет.
Отстранете ги клучевите релевантни за вистинскиот клиент. HTTPS операцијата може да користи и https_proxy, а некои клиенти читаат ALL_PROXY или друга конфигурациска датотека. Отстранувањето само на еден HTTP клуч не е универзална инструкција за директна рута.
Формата со повеќе аргументи ги држи аргументите на извршната датотека одвоени. Нема потреба да се гради shell низа што содржи команда за отстранување и URL.