O Linux não tem um equivalente à variável %ProgramFiles%
do Windows porque não precisa de um. Há um local padrão para programas instalados em seu próprio diretório: /opt
. Bit maioria dos programas não estão instalados lá, porque eles vêm em pacotes, e seus arquivos estão localizados onde serão encontrados por outros programas. As razões pelas quais o Windows tem uma variável %ProgramFiles%
são, na verdade, amplamente históricas:
- O Windows possui letras de unidade. Mesmo se
\Program Files
fosse o local padrão, ainda haveria a pergunta se é c:\Program Files
, D:\Program Files
, etc. O Linux nunca teve esse problema porque links simbólicos permitem que um diretório apareça em qualquer lugar, independentemente do meio de armazenamento físico em que esteja. (Janelas modernas não precisam disso porque têm um recurso equivalente, mas a localização permanece modificável para compatibilidade com versões anteriores.)
- O Windows permite que o administrador escolha o nome dos diretórios do sistema. Linux não faz isso; tudo bem, porque nunca funcionou, enquanto o Windows teve que acomodar os administradores que escolheram locais diferentes para compatibilidade com versões anteriores.
- Todo programa do Windows vem com seu próprio instalador, portanto não há um mecanismo de gerenciamento de pacotes real, e a única maneira de rastrear quais arquivos pertencem a qual pacote é ter um pacote por diretório. Isso está começando a mudar, mas ainda não chegou lá. Em contraste, o Linux normalmente armazena arquivos onde eles serão encontrados e permite que o gerenciador de pacotes acompanhe quem eles pertencem.
O Linux possui variáveis de ambiente que especificam caminhos: PATH
para comandos executáveis, LD_LIBRARY_PATH
para bibliotecas compartilhadas, MANPATH
para páginas manuais, etc. Eles são todos sobre onde encontrar arquivos, não onde colocar arquivos. Onde colocar arquivos não é algo que programas conhece, é algo que gerenciadores de pacotes conhecem. Os gerenciadores de pacotes têm seus arquivos de dados, eles não precisam de variáveis de ambiente para dizer onde estão as coisas.
A estrutura de diretórios nos sistemas Linux é padronizada no Padrão de hierarquia do sistema de arquivos . Não há necessidade de variáveis de ambiente para a maioria delas, seja porque o local é padrão ou porque não há necessidade de um único local.
O fato de que diferentes distribuições têm diferentes sistemas de pacotes não é devido a diferentes estruturas de diretórios. É um dos principais diferenciais entre distribuições.