जवाबों:
कोई केंद्रीय प्राधिकरण नहीं है जो अनुप्रयोगों का उपयोग करने से पहले पर्यावरण चर के लिए एक आधिकारिक अर्थ प्रदान करता है। POSIX कुछ चर ( PATH, TERM...,) के अर्थ को परिभाषित करता है और सामान्य उपयोग में होने के रूप में गैर-मानक तरीके से कई और सूचीबद्ध करता है, उन सभी को अपरकेस में। http_proxyऔर दोस्त उनमें से एक नहीं है।
मूल रूप से सभी पारंपरिक वातावरण में कई अनुप्रयोगों के द्वारा प्रयोग किया जाता चर के विपरीत, http_proxy, https_proxy, ftp_proxyऔर no_proxyआमतौर पर लोअरकेस कर रहे हैं। मुझे किसी भी कार्यक्रम की याद नहीं है जो केवल उन्हें अपरकेस में समझता है, मैं एक भी नहीं खोज सकता जो उन्हें अपरकेस में कोशिश करता है। कई कार्यक्रम केवल लिनेक्स, विग, कर्ल, पर्ल एलडब्ल्यूपी, पर्ल डब्ल्यूडब्ल्यूडब्ल्यू :: खोज, पायथन यूरलिब / यूरलिब 2, आदि सहित लोअरकेस संस्करण का उपयोग करते हैं। इसलिए इन चर के लिए सही रूप लोअरकेस वन है।
मार्च 1994 में लोअरकेस नाम कम से कम CERN libwww 2.15 पर वापस आ गया (धन्यवाद करने के लिए स्टीफन चेज़ेलस के लिए)। मुझे नहीं पता कि लोअरकेस की पसंद ने क्या प्रेरित किया, जो तब भी असामान्य था।
HTTPS_PROXY। docker अपरकेस संस्करण का भी उपयोग करता है।
sudo -E apt-add-repository ppa:xxxxx/xxxx। मैं था unset https_proxyऔरexport HTTPS_PROXY=http://a.b.c.d:xxxx
कोई मानक नहीं है और दोनों अपरकेस और लोअरकेस संस्करण का उपयोग अनुप्रयोग के आधार पर किया जाता है (HTTPS_PROXY, ALL_PROXY, NO_PROXY भी देखें)।
उदाहरण के लिए:
कर्ल
ENVIRONMENT VARIABLES
Curl reads and understands the following environment variables:
http_proxy, HTTPS_PROXY, FTP_PROXY
They should be set for protocol-specific proxies. General proxy should be
set with
ALL_PROXY
A comma-separated list of host names that shouldn't go through any proxy is
set in (only an asterisk, '*' matches all hosts)
NO_PROXY
Git
http.proxy
Override the HTTP proxy, normally configured using the http_proxy, https_proxy,
and all_proxy environment variables (see curl(1)). [..]
अजगर
urllib.request.getproxies() लोअरकेस और अपरकेस वेरिएंट दोनों को सपोर्ट करता है।
इसमें एक सुरक्षा मुद्दे का भी उल्लेख है:
यदि पर्यावरण चर REQUEST_METHOD सेट है, जो आमतौर पर इंगित करता है कि आपकी स्क्रिप्ट CGI वातावरण में चल रही है, तो पर्यावरण चर HTTP_PROXY (अपरकेस _PROXY) को अनदेखा कर दिया जाएगा। इसका कारण यह है कि चर "प्रॉक्सी:" HTTP हेडर का उपयोग करके क्लाइंट द्वारा इंजेक्ट किया जा सकता है। यदि आपको एक CGI वातावरण में HTTP प्रॉक्सी का उपयोग करने की आवश्यकता है, तो या तो ProxyHandler का स्पष्ट रूप से उपयोग करें, या सुनिश्चित करें कि चर का नाम लोअरकेस (या कम से कम _proxy प्रत्यय) में है।
कुछ एप्लिकेशन NO_PROXYसितारों / आईपी-रेंज को शामिल करने की अनुमति देते हैं जबकि अन्य नहीं करते हैं।
इसलिए
export https_proxy=$http_proxy HTTP_PROXY=$http_proxy HTTPS_PROXY=$http_proxy NO_PROXY=$no_proxy
आपको कवर करना चाहिए था।
सम्मेलन का उपयोग सभी capps पर्यावरण चर का उपयोग करते समय उन्हें किया जाता है, ताकि जब आप शेल स्क्रिप्ट लिख रहे हों तो आप अन्य कार्यक्रमों के साथ नाम टकराव के बारे में चिंता किए बिना लोअरकेस चर नामों का उपयोग कर सकें। बेशक यह केवल एक सम्मेलन है, पर्यावरण चर के नामों को सीमित करने पर कोई तकनीकी प्रतिबंध नहीं है, इसलिए लोअरकेस संस्करण को कुछ मामलों में इस्तेमाल किया जा सकता है, लेकिन सबसे अच्छा अभ्यास ऊपरी मामला है, और याद रखें कि वे केस संवेदनशील हैं ताकि वे अलग हो सकें मान।
http_proxyऔर इसके भाई-बहन आमतौर पर कमतर होते हैं।
http_proxyऔर दोस्तों के लिए वास्तविक मानक एक सम्मेलन के उल्लंघन में, लोअरकेस में वर्तनी है। उपयोग करने के लिए एक आवेदन के लिए HTTP_PROXYएक बग होगा क्योंकि यह दुनिया के बाकी हिस्सों के साथ असंगत होगा।
दोनों http_proxyऔर HTTP_PROXYRHEL और ubuntu आधारित सिस्टम पर काम करना चाहिए।
Unlike basically all conventional environment variables used by many applications, http_proxy, https_proxy, ftp_proxy and no_proxy are commonly lowercase. I don't recall any program that only understands them in uppercase-> रिकॉर्ड के लिए, मुझे अभी पता चला है कि 17.04.0-CE केवल NO_PROXY का सम्मान करता है।