Réponses:
Il n'y a pas d'autorité centrale qui attribue une signification officielle aux variables d'environnement avant que les applications puissent les utiliser. POSIX définit la signification de certaines variables ( PATH
, TERM
...) et énumère plusieurs autres d'une manière non normative comme dans l' usage commun, tous en majuscules. http_proxy
et les amis n'en font pas partie.
Contrairement à toutes essentiellement variables d'environnement conventionnelles utilisées par de nombreuses applications, http_proxy
, https_proxy
, ftp_proxy
et no_proxy
sont souvent minuscules. Je ne me souviens d'aucun programme qui ne les comprend qu'en majuscules, je ne trouve même pas celui qui les essaie en majuscules. De nombreux programmes utilisent uniquement la variante en minuscule, y compris lynx, wget, curl, perl LWP, perl WWW :: Search, python urllib / urllib2, etc. Donc, pour ces variables, la bonne forme est celle en minuscules.
Le nom en minuscule remonte au moins à la bibliothèque CERN libwww 2.15 en mars 1994 (merci à Stéphane Chazelas de l'avoir localisé). Je ne sais pas ce qui a motivé le choix des minuscules, ce qui aurait été inhabituel à l'époque.
HTTPS_PROXY
. docker utilise également la variante majuscule.
sudo -E apt-add-repository ppa:xxxxx/xxxx
. je devais unset https_proxy
etexport HTTPS_PROXY=http://a.b.c.d:xxxx
Il n'y a pas de standard et les versions majuscules et minuscules sont utilisées selon l'application (voir également HTTPS_PROXY, ALL_PROXY, NO_PROXY).
Par exemple:
boucle
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)). [..]
Python
urllib.request.getproxies()
prend en charge les variantes en minuscules et en majuscules.
Il mentionne également un problème de sécurité:
Si la variable d'environnement REQUEST_METHOD est définie, ce qui indique généralement que votre script s'exécute dans un environnement CGI, la variable d'environnement HTTP_PROXY (majuscule _PROXY) sera ignorée. En effet, cette variable peut être injectée par un client à l'aide de l'en-tête HTTP «Proxy:». Si vous devez utiliser un proxy HTTP dans un environnement CGI, utilisez explicitement ProxyHandler ou assurez-vous que le nom de la variable est en minuscules (ou au moins le suffixe _proxy).
Certaines applications permettent NO_PROXY
de contenir des étoiles / plages ip tandis que d'autres ne le font pas.
Alors
export https_proxy=$http_proxy HTTP_PROXY=$http_proxy HTTPS_PROXY=$http_proxy NO_PROXY=$no_proxy
devrait vous avoir couvert.
La convention consiste à utiliser toutes les variables d'environnement capps lors de leur exportation, de sorte que lorsque vous écrivez des scripts shell, vous pouvez utiliser des noms de variables en minuscules sans vous soucier des collisions de noms avec d'autres programmes. Bien sûr, il s'agit uniquement d'une convention, il n'y a aucune restriction technique sur la limitation des noms des variables d'environnement, de sorte que la version en minuscules pourrait être utilisée dans certains cas, mais la meilleure pratique est en majuscules, et rappelez-vous qu'elles sont sensibles à la casse afin qu'elles puissent avoir différentes valeurs.
http_proxy
et ses frères et sœurs sont généralement en minuscules.
http_proxy
et les amis doit être orthographiée en minuscules, en violation d'une convention. L'utilisation d'une application HTTP_PROXY
serait un bug car elle serait incompatible avec le reste du monde.
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
-> Pour mémoire, je viens de découvrir que le docker 17.04.0-ce ne rend hommage qu'à NO_PROXY.