Rake షెల్ Ruby యొక్క proxyని తీసివేయలేదు
తర్వాతి పనుల కోసం Ruby యొక్క ENVని మార్చండి లేదా వేరుచేసిన sh కాల్ లోపల proxy తీసివేయడం బదులు పిల్ల ప్రక్రియకు ప్రత్యేక environment hash ఇవ్వండి.
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ను వేరుగా ఉంచుతుంది. తీసివేత ఆదేశం మరియు URL ఉన్న shell స్ట్రింగ్ను నిర్మించాల్సిన అవసరం లేదు.