Respostas:
Não há autoridade central que atribua um significado oficial às variáveis de ambiente antes que os aplicativos possam usá-las. POSIX define o significado de algumas variáveis ( PATH
, TERM
...) e listas de vários outros de uma forma não-normativa como sendo de uso comum, todos eles em letras maiúsculas. http_proxy
e amigos não é um deles.
Ao contrário, basicamente, todas as variáveis de ambiente convencionais usados por muitas aplicações, http_proxy
, https_proxy
, ftp_proxy
e no_proxy
são geralmente minúsculas. Não me lembro de nenhum programa que apenas os entenda em maiúsculas, nem consigo encontrar um que os tente em maiúsculas. Muitos programas usam apenas a variante minúscula, incluindo lynx, wget, curl, perl LWP, perl WWW :: Search, python urllib / urllib2, etc. Portanto, para essas variáveis, a forma correta é a minúscula.
O nome em minúsculas remonta pelo menos ao CERN libwww 2.15 em março de 1994 (obrigado a Stéphane Chazelas por localizá-lo). Não sei o que motivou a escolha de letras minúsculas, o que teria sido incomum até então.
HTTPS_PROXY
. A janela de encaixe também usa a variante maiúscula.
sudo -E apt-add-repository ppa:xxxxx/xxxx
. eu tive que unset https_proxy
eexport HTTPS_PROXY=http://a.b.c.d:xxxx
Não há padrão e as versões maiúsculas e minúsculas são usadas dependendo do aplicativo (consulte também HTTPS_PROXY, ALL_PROXY, NO_PROXY).
Por exemplo:
ondulação
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()
suporta variantes em minúsculas e maiúsculas.
Ele também menciona um problema de segurança:
Se a variável de ambiente REQUEST_METHOD estiver configurada, o que geralmente indica que seu script está sendo executado em um ambiente CGI, a variável de ambiente HTTP_PROXY (_PROXY maiúscula) será ignorada. Isso ocorre porque essa variável pode ser injetada por um cliente usando o cabeçalho HTTP "Proxy:". Se você precisar usar um proxy HTTP em um ambiente CGI, use ProxyHandler explicitamente ou verifique se o nome da variável está em minúscula (ou pelo menos o sufixo _proxy).
Alguns aplicativos permitem NO_PROXY
conter intervalos de estrelas / ip, enquanto outros não.
tão
export https_proxy=$http_proxy HTTP_PROXY=$http_proxy HTTPS_PROXY=$http_proxy NO_PROXY=$no_proxy
você deve ter coberto.
A convenção é usar todas as variáveis de ambiente capps ao exportá-las, para que, ao escrever scripts shell, você possa usar nomes de variáveis em minúsculas sem se preocupar com colisões de nomes com outros programas. Obviamente, isso é apenas uma convenção, não há restrição técnica para limitar os nomes das variáveis de ambiente; portanto, a versão em minúscula pode ser usada em alguns casos, mas a melhor prática é em maiúscula e lembre-se de que elas fazem distinção entre maiúsculas e minúsculas e que podem ter diferentes valores.
http_proxy
e seus irmãos geralmente são minúsculos.
http_proxy
e amigos deve ser escrito em letras minúsculas, violando uma convenção. Para um aplicativo, HTTP_PROXY
seria um bug, porque seria incompatível com o resto do mundo.
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
-> Para constar, acabei de descobrir que a janela de encaixe 17.04.0-ce apenas honra o NO_PROXY.