sh 'unset http_proxy' փոխում է այդ կանչի համար գործարկվող shell-ը։ Երբ այն ավարտվում է, Rake-ի Ruby պրոցեսը դեռ ունի իր սկզբնական environment-ը, և հետագա sh կանչը կրկին ժառանգում է այն։

Ruby պրոցեսը հետագա աշխատանքի համար փոխելու համար՝

ENV.delete('http_proxy')
ENV.delete('HTTP_PROXY')

Դա ազդում է հետագա զավակների և այդ բանալիները կարդացող Ruby կոդի վրա։ Այն չի վերակարգավորում այն տերմինալը, որը սկզբում գործարկել էր Rake-ը։

Մեկ զավակ հրամանի համար տվեք նրա environment-ը ուղղակիորեն՝

sh(
  { 'http_proxy' => nil, 'HTTP_PROXY' => nil },
  'ruby', 'download.rb'
)

Ruby-ի պրոցեսի գործարկման ինտերֆեյսը nil արժեքները դիտում է որպես այդ զավակի environment-ից հեռացումներ։ Rake-ը արգումենտների ցանկը փոխանցում է այդ ինտերֆեյսին՝ իր ENV-ը թողնելով անփոփոխ։

Հեռացրեք փաստացի client-ի համար համապատասխան բանալիները։ HTTPS գործողությունը կարող է նաև օգտագործել https_proxy, իսկ որոշ client-ներ կարդում են ALL_PROXY կամ այլ կարգավորումների ֆայլ։ Միայն մեկ HTTP բանալի հեռացնելը ուղիղ երթուղու համընդհանուր հրահանգ չէ։

Բազմարգումենտ ձևը գործարկվող ֆայլի արգումենտները պահում է առանձին։ Պետք չէ կառուցել shell տող, որը պարունակում է հեռացման հրաման և URL։

Առնչվող հոդվածներ