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 స్ట్రింగ్‌ను నిర్మించాల్సిన అవసరం లేదు.

సంబంధిత వ్యాసాలు