Yanıtlar:
Uygulamalar kullanmadan önce çevre değişkenlerine resmi bir anlam veren merkezi bir otorite yoktur. POSIX , bazı değişkenlerin ( PATH
,, TERM
…) anlamını tanımlar ve birkaçını, normal kullanımda olduğu gibi, hepsini büyük harf olarak, normal olmayan bir şekilde listeler. http_proxy
ve arkadaşlar onlardan biri değil.
Birçok uygulamalar tarafından kullanılan temelde tüm geleneksel ortam değişkenleri farklı olarak http_proxy
, https_proxy
, ftp_proxy
ve no_proxy
yaygın küçük harf olur. Onları yalnızca büyük harflerle anlayan hiçbir programı hatırlamıyorum, büyük harfle çalışan bir program bile bulamıyorum. Birçok program, yalnızca lynx, wget, curl, perl LWP, perl WWW :: Search, python urllib / urllib2, vb. Dahil olmak üzere küçük harf varyantını kullanır. Bu değişkenler için doğru form küçük harf olur.
Küçük harf ismi Mart 1994’te en az 2.15 libr CERN liberaline dayanır (bunun yerini belirleyen Stéphane Chazelas sayesinde). Küçük harf seçimini neyin motive ettiğini, ki o zamanlar sıradışı olanı bilmiyorum.
HTTPS_PROXY
. liman işçisi ayrıca büyük harf türevini kullanır.
sudo -E apt-add-repository ppa:xxxxx/xxxx
. zorundaydım unset https_proxy
veexport HTTPS_PROXY=http://a.b.c.d:xxxx
Standart yoktur ve uygulamaya bağlı olarak hem büyük hem küçük harf kullanılır (ayrıca bkz. HTTPS_PROXY, ALL_PROXY, NO_PROXY).
Örneğin:
bukle
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)). [..]
piton
urllib.request.getproxies()
hem küçük hem de büyük harf çeşitlerini destekler.
Ayrıca bir güvenlik sorunundan da bahseder:
Eğer genellikle betiğinizin bir CGI ortamında çalıştığını gösteren REQUEST_METHOD ortam değişkeni ayarlanmışsa, HTTP_PROXY (büyük harf _PROXY) ortam değişkeni yoksayılır. Bunun nedeni, bu değişkenin “Proxy:” HTTP başlığı kullanılarak bir müşteri tarafından enjekte edilebilmesidir. Bir CGI ortamında bir HTTP proxy kullanmanız gerekirse, ProxyHandler'ı açıkça kullanın veya değişken adının küçük harfli olduğundan emin olun (veya en azından _proxy soneki).
Bazı uygulamalar NO_PROXY
yıldızların / ip aralıklarının bulunmasına izin verirken, diğerleri değildir.
Yani
export https_proxy=$http_proxy HTTP_PROXY=$http_proxy HTTPS_PROXY=$http_proxy NO_PROXY=$no_proxy
örtmelisin.
Kural, bunları dışa aktarırken tüm başlık çevre değişkenlerini kullanmaktır, böylece kabuk komut dosyaları yazarken, diğer programlarla isim çarpışmalarından endişe etmeden küçük harfli değişken adlarını kullanabilirsiniz. Elbette bu sadece bir kongredir, çevre değişkenlerinin isimlerini sınırlama konusunda teknik bir kısıtlama yoktur, bu nedenle küçük harf sürümü bazı durumlarda kullanılabilir, ancak en iyi uygulama büyük harf olur ve büyük küçük harf duyarlı olduklarını unutmayın. değerler.
http_proxy
ve kardeşleri genellikle küçük harflerdir.
http_proxy
ve arkadaşlar için fiili standart , bir sözleşmeye aykırı olarak küçük harflerle yazılmalıdır. Bir uygulamanın kullanımı HTTP_PROXY
bir hata olacaktır çünkü dünyanın geri kalanıyla uyumsuz olacaktır.
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
-> Kayıt için, 17.04.0-ce docker'ın sadece NO_PROXY'i onurlandırdığını öğrendim.