Абалонка 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 не з'яўляецца ўніверсальнай інструкцыяй прамога маршруту.
Форма з некалькімі аргументамі захоўвае аргументы выканальнага файла асобна. Няма патрэбы будаваць радок абалонкі з камандай скасавання і URL.