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.

Повезани чланци