Rake-ის ჭურვი ვერ მოხსნის Ruby-ის პროქსის
შეცვალეთ Ruby-ის ENV შემდგომი ამოცანებისთვის ან მიეცით შვილ პროცესს საკუთარი გარემოს hash, ნაცვლად იზოლირებულ sh გამოძახებაში პროქსის მოხსნისა.
sh 'unset http_proxy' ცვლის იმ გამოძახებისთვის გაშვებულ ჭურვს. როცა ის დასრულდება, Rake-ის Ruby პროცესს კვლავ აქვს თავისი საწყისი გარემო და შემდგომი 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-ს.