សែល Rake មិនអាចដក proxy របស់ Ruby បានទេ
ផ្លាស់ប្តូរ ENV របស់ Ruby សម្រាប់កិច្ចការបន្ទាប់ ឬផ្តល់ hash បរិស្ថានជាក់លាក់សម្រាប់កូន ជំនួសឱ្យការដក proxy នៅក្នុងការហៅ sh ដាច់ដោយឡែក។
sh 'unset http_proxy' ផ្លាស់ប្តូរសែលដែលបានចាប់ផ្តើមសម្រាប់ការហៅនោះ។ នៅពេលវាចេញ ដំណើរការ Ruby របស់ Rake នៅតែមានបរិស្ថានដើមរបស់វា ហើយការហៅ sh បន្ទាប់នឹងទទួលមរតកវាម្តងទៀត។
ដើម្បីផ្លាស់ប្តូរដំណើរការ Ruby សម្រាប់ការងារបន្ទាប់៖
ENV.delete('http_proxy')
ENV.delete('HTTP_PROXY')
វាប៉ះពាល់ដល់កូនដំណើរការបន្ទាប់ និងកូដ Ruby ដែលអានកូនសោទាំងនោះ។ វា មិនកំណត់សារឡើងវិញនូវ terminal ដែលបានចាប់ផ្តើម Rake ដំបូង។
សម្រាប់ពាក្យបញ្ជាកូនមួយ ផ្តល់បរិស្ថានរបស់វាដោយផ្ទាល់៖
sh(
{ 'http_proxy' => nil, 'HTTP_PROXY' => nil },
'ruby', 'download.rb'
)
ចំណុចប្រទាក់បើកដំណើរការរបស់ Ruby ចាត់ទុកតម្លៃ nil ជាការដកចេញពីបរិស្ថានរបស់កូននោះ។ Rake បញ្ជូនបញ្ជីអាគុយម៉ង់ទៅចំណុចប្រទាក់នោះ ដោយទុក ENV របស់ខ្លួនមិនផ្លាស់ប្តូរ។
ដកកូនសោដែលពាក់ព័ន្ធនឹង client ពិតប្រាកដ។ ប្រតិបត្តិការ HTTPS ក៏អាចប្រើ https_proxy ដែរ ហើយ client ខ្លះពិនិត្យ ALL_PROXY ឬឯកសារកំណត់រចនាសម្ព័ន្ធផ្សេង។ ការដកកូនសោ HTTP តែមួយមិនមែនជាការណែនាំផ្លូវផ្ទាល់ជាសកលទេ។
ទម្រង់ពហុអាគុយម៉ង់រក្សាអាគុយម៉ង់របស់ឯកសារប្រតិបត្តិដាច់ពីគ្នា។ មិនចាំបាច់បង្កើតខ្សែអក្សរសែលដែលមានពាក្យបញ្ជាដក និង URL ទេ។