sh 'unset http_proxy' त्या कॉलसाठी सुरू होणारे शेल बदलते. ते बंद झाल्यावर Rake च्या Ruby प्रक्रियेकडे अजूनही तिचे मूळ environment असते, आणि नंतरचा sh कॉल ते पुन्हा वारसा म्हणून घेतो.

पुढील कामासाठी Ruby प्रक्रिया बदलण्यासाठी:

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

याचा पुढील चाइल्ड्स आणि त्या keys वाचणाऱ्या Ruby कोडवर परिणाम होतो. ते मूळ Rake सुरू केलेले टर्मिनल पुन्हा कॉन्फिगर करत नाही.

एका चाइल्ड कमांडसाठी, तिचे environment थेट द्या:

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

Ruby चे प्रोसेस-लॉन्च इंटरफेस nil मूल्यांना त्या चाइल्डच्या environment मधून काढणे म्हणून वागवते. Rake argument यादी त्या इंटरफेसला देतो, त्यामुळे त्याचे स्वतःचे ENV बदलत नाही.

प्रत्यक्ष client शी संबंधित keys काढा. HTTPS क्रिया https_proxy देखील वापरू शकते, आणि काही client ALL_PROXY किंवा दुसरी configuration फाइल पाहतात. फक्त एक HTTP key काढणे ही सार्वत्रिक direct-route सूचना नाही.

अनेक-argument स्वरूप कार्यान्वित arguments वेगळे ठेवते. unset कमांड आणि URL असलेली shell स्ट्रिंग तयार करण्याची गरज नाही.

संबंधित लेख