Rake shell သည် Ruby ၏ proxy ကို ဖျက်နိုင်မည်မဟုတ်
နောက်ပိုင်းအလုပ်များအတွက် Ruby ၏ ENV ကို ပြောင်းပါ သို့မဟုတ် သီးခြား sh ခေါ်ဆိုမှုအတွင်း proxy ဖျက်မည့်အစား ကလေးလုပ်ငန်းစဉ်အတွက် environment hash သီးသန့် ပေးပါ။
sh 'unset http_proxy' ထိုခေါ်ဆိုမှုအတွက် စတင်သော shell ကို ပြောင်းလဲသည်။ ၎င်းထွက်သွားသောအခါ Rake ၏ Ruby လုပ်ငန်းစဉ်သည် ၎င်း၏ မူလ environment ကို ဆက်လက်ရှိနေပြီး နောက်ပိုင်း sh ခေါ်ဆိုမှုက ၎င်းကို ထပ်မံအမွေရသည်။
နောက်ပိုင်းအလုပ်အတွက် Ruby လုပ်ငန်းစဉ်ကို ပြောင်းရန်:
ENV.delete('http_proxy')
ENV.delete('HTTP_PROXY')
၎င်းသည် နောက်ပိုင်း ကလေးများနှင့် ထို key များကို ဖတ်သော Ruby ကုဒ်အပေါ် သက်ရောက်သည်။ ၎င်းသည် Rake ကို မူလစတင်ခဲ့သော terminal ကို ပြန်လည်ပြင်ဆင်ခြင်း မရှိပါ။
ကလေးအမိန့်တစ်ခုအတွက် ၎င်း၏ environment ကို တိုက်ရိုက်ပေးပါ:
sh(
{ 'http_proxy' => nil, 'HTTP_PROXY' => nil },
'ruby', 'download.rb'
)
Ruby ၏ လုပ်ငန်းစဉ်စတင်သည့် interface သည် nil တန်ဖိုးများကို ထိုကလေး၏ environment မှ ဖယ်ရှားခြင်းအဖြစ် သတ်မှတ်သည်။ Rake သည် argument စာရင်းကို ထို interface သို့ ပေးပို့ပြီး ၎င်း၏ကိုယ်ပိုင် ENV ကို မပြောင်းလဲဘဲ ထားသည်။
အမှန်တကယ် client နှင့် သက်ဆိုင်သော key များကို ဖယ်ရှားပါ။ HTTPS လုပ်ဆောင်ချက်သည် https_proxy ကိုလည်း အသုံးပြုနိုင်ပြီး client အချို့သည် ALL_PROXY သို့မဟုတ် အခြား configuration ဖိုင်ကို ကြည့်သည်။ HTTP key တစ်ခုတည်းကို ဖယ်ရှားခြင်းသည် ယေဘုယျ တိုက်ရိုက်လမ်းကြောင်း ညွှန်ကြားချက် မဟုတ်ပါ။
အများကိန်း argument ပုံစံသည် အလုပ်လုပ်နိုင်သော ဖိုင်၏ argument များကို သီးခြားထားရှိသည်။ ဖျက်ရန် အမိန့်နှင့် URL ပါသော shell စာတန်းကို တည်ဆောက်ရန် မလိုအပ်ပါ။