Rake শেল Ruby-র প্রক্সি আনসেট করতে পারে না
পরবর্তী কাজের জন্য Ruby-র ENV বদলান বা একটি বিচ্ছিন্ন sh কলে প্রক্সি আনসেট করার বদলে সন্তান প্রক্রিয়ার জন্য আলাদা environment hash দিন।
sh 'unset http_proxy' সেই কলের জন্য চালু হওয়া শেলটি বদলে দেয়। এটি বন্ধ হলে Rake-এর Ruby প্রক্রিয়ায় তার মূল environment থেকে যায়, আর পরের sh কল আবার সেটি উত্তরাধিকার করে।
পরবর্তী কাজের জন্য Ruby প্রক্রিয়া বদলাতে:
ENV.delete('http_proxy')
ENV.delete('HTTP_PROXY')
এটি পরবর্তী সন্তান প্রক্রিয়া ও ওই key-গুলো পড়া Ruby কোডকে প্রভাবিত করে। এটি Rake প্রথমে যে টার্মিনাল চালু করেছিল সেটি পুনরায় কনফিগার করে না।
একটি সন্তান কমান্ডের জন্য তার environment সরাসরি দিন:
sh(
{ 'http_proxy' => nil, 'HTTP_PROXY' => nil },
'ruby', 'download.rb'
)
Ruby-র প্রক্রিয়া চালু করার ইন্টারফেস nil মানকে সেই সন্তানের environment থেকে অপসারণ হিসেবে ধরে। Rake argument list-টি ওই ইন্টারফেসে পাঠায়, ফলে তার নিজের ENV অপরিবর্তিত থাকে।
প্রকৃত client-এর সাথে সম্পর্কিত key-গুলো সরান। একটি HTTPS কাজ https_proxy-ও ব্যবহার করতে পারে, আর কিছু client ALL_PROXY বা অন্য configuration ফাইল দেখে। শুধু একটি HTTP key সরানো সার্বজনীন direct-route নির্দেশ নয়।
একাধিক argument-এর রূপটি চালনযোগ্য argument আলাদা রাখে। unset কমান্ড ও URL সহ shell string তৈরি করার দরকার নেই।