Aviso :
Este documento não é válido e não é mais mantido.
|
[ << ]
[ < ]
[ Início ]
[ > ]
[ >> ]
5. Variáveis de ambiente
Conteúdo:
5.a. Variáveis de ambiente?
O que são
Uma variável de ambiente é um objeto nomeado que contém informações usadas por
um ou mais aplicativos. Muitos usuários (especialmente os novos no Linux) acham
isso um pouco estranho e inútil. Mas isso é errado: as variáveis de ambiente
permitem modificar a configuração de um ou mais aplicativos facilmente.
Exemplos importantes
A tabela a seguir lista diversas variáveis usadas por um sistema Linux e
descreve seu uso. Valores de exemplo são apresentados após a tabela.
| Variável |
Descrição |
| PATH |
Esta variável contém uma lista de diretórios separados por dois-pontos nos
quais o seu sistema procurará arquivos executáveis. Se você entrar com o
nome de um executável (como por exemplo ls, rc-update ou
emerge), mas esse executável não estiver localizado num diretório
listado, o seu sistema não o executará (a menos que você entre o caminho
completo no comando, como /bin/ls).
|
| ROOTPATH |
Esta variável tem a mesma função de PATH, porém só lista os
diretórios que devem ser verificados quando o superusuário digitar um
comando.
|
| LDPATH |
Esta variável contém uma lista de diretórios separados por dois-pontos nos
quais o linkador dinâmico procura bibliotecas.
|
| MANPATH |
Esta variável contém uma lista de diretórios separados por dois-pontos nos
quais o comando man deve procurar as páginas de manual.
|
| INFODIR |
Esta variável contém uma lista de diretórios separados por dois-pontos nos
quais o comando info procura as páginas de info.
|
| PAGER |
Esta variável contém o caminho para o programa usado para listar os conteúdos
dos arquivos (como less ou more, por exemplo).
|
| EDITOR |
Esta variável contém o caminho para o programa usado para modificar o
conteúdo de arquivos (como nano ou vi).
|
| KDEDIRS |
Esta variável contém uma lista de diretórios separados por dois-pontos que
contém material específico do KDE.
|
| CLASSPATH |
Esta variável contém uma lista de diretórios separados por dois-pontos que
contêm as classes de Java.
|
| CONFIG_PROTECT |
Esta variável contém uma lista delimitada por espaçosde diretórios
que devem ser protegidos pelo Portage durante atualizações.
|
| CONFIG_PROTECT_MASK |
Esta variável contém uma lista de diretórios separados por espaços
que devem ser protegidos pelo Portage durante as atualizações.
|
Abaixo você encontra um exemplo de definição de todas essas variáveis:
Listagem de código 1.1: Exemplos de definições |
PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin"
ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
MANPATH="/usr/share/man:/usr/local/share/man"
INFODIR="/usr/share/info:/usr/local/share/info"
PAGER="/usr/bin/less"
EDITOR="/usr/bin/vim"
KDEDIRS="/usr"
CLASSPATH="/opt/blackdown-jre-1.4.1/lib/rt.jar:."
CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb /opt/tomcat/conf \
/usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ \
/usr/share/texmf/tex/platex/config/ /usr/share/config"
CONFIG_PROTECT_MASK="/etc/gconf
|
5.b. Definindo variáveis globalmente
O diretório /etc/env.d
Para centralizar as definições dessas variáveis, o Gentoo introduziu o diretório
/etc/env.d. Dentro deste diretório você encontrará diversos
arquivos, como por exemplo 00basic, 05gcc, etc... que
contêm as variáveis necessárias para o aplicativo mencionado no nome.
Por exemplo, quando você instalou o gcc, um arquivo chamado
05gcc foi criado pelo ebuild, contendo as definições das seguintes
variáveis:
Listagem de código 2.1: /etc/env.d/05gcc |
PATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
MANPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/man"
INFOPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/info"
CC="gcc"
CXX="g++"
LDPATH="/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
|
Outras distribuições dizem para você alterar ou adicionar essas variáveis de
ambiente em /etc/profile ou outros locais. O Gentoo, por outro
lado, torna fácil para você (e para o Portage) manter e gerenciar as variáveis
de ambiente sem ter que prestar atenção aos inúmeros arquivos que podem
contê-las.
Por exemplo, quando o gcc é atualizado, o arquivo
/etc/env.d/05gcc também é atualizado sem precisar de interação com
o usuário.
Isto beneficia não só o Portage, mas você também, como usuário. Eventualmente
pode ser pedido a você que determine uma certa variável de ambiente de sistema.
Como exemplo, vejamos a variável http_proxy. Em vez de mexer em
/etc/profile, você agora pode simplesmente criar um arquivo
(/etc/env.d/99local) e entrar as suas definições nele:
Listagem de código 2.2: /etc/env.d/99local |
http_proxy="proxy.server.com:8080"
|
Usar o mesmo arquivo para todas as suas variáveis é uma forma de ter uma rápida
visão das variáveis que você definiu pessoalmente.
O script env-update
Vários arquivos em /etc/env.d definem a variável PATH. Isto
não está errado: quando você executa env-update, as várias definições são
adicionadas antes de atualizar as variáveis de ambiente, desta forma tornando
fácil para os pacotes (ou usuários) adicionarem suas próprias definições de
variáveis de ambiente sem interferir com os valores já existentes.
O script env-update acrescentará os valores em ordem alfabética dos
arquivos em /etc/env.d. Os nomes de arquivos devem começar com dois
dígitos decimais.
Listagem de código 2.3: Ordem de atualização usada pelo env-update |
00basic 99kde-env 99local
+-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"
|
A concatenação de variáveis nem sempre acontece, só com as seguintes variáveis:
KDEDIRS, PATH, CLASSPATH, LDPATH, MANPATH,
INFODIR, INFOPATH, ROOTPATH, CONFIG_PROTECT,
CONFIG_PROTECT_MASK, PRELINK_PATH e PRELINK_PATH_MASK. Para
todas outras variáveis, o último valor definido (em ordem alfabética dos
arquivos em /etc/env.d) é usado.
Quando você executa env-update, o script cria todas as variáveis de
ambiente e as coloca em /etc/profile.env (que é usado pelo
/etc/profile). Ele também extrai as informações da variável
LDPATH e as usa para criar o /etc/ld.so.conf. Em seguida,
ele roda o ldconfig para recriar o arquivo /etc/ld.so.cache
usado pelo linkador dinâmico.
Se você quiser ter uma idéia do efeito do env-update, imediatamente após
rodá-lo execute o seguinte comando para atualizar seu ambiente. Os usuários que
instalaram eles próprios o Gentoo provavelmente se lembrarão disso das
instruções de instalação:
Listagem de código 2.4: Atualizando o ambiente |
# env-update && source /etc/profile
|
Nota:
O comando acima só atualiza as variáveis em seu terminal atual, novos
consoles e seus derivados. Portanto, se você estiver trabalhando no X11, você
precisará ou digitar source /etc/profile em cada novo terminal que você
abrir ou reiniciar o X para que todos novos terminais herdem as novas variáveis.
Se você usar um gerenciador de log-in, torne-se administrador (root) e digite
/etc/init.d/xdm restart. Se não, você precisará fazer log-out e log-in
para que o X abra novos terminais com os novos valores de variáveis.
|
5.c. Definindo variáveis localmente
Especificas do usuário
Nem sempre você deve definir uma variável de ambiente globalmente. Por exemplo,
você pode querer adicionar o diretório /home/usuario/bin e o
diretório de trabalho atual (o diretório em que você está) à variável
PATH, sem que todos os outros usuários do sistema a tenham em seus
PATHs. Se você quiser definir uma variável de ambiente localmente, deve
usar o ~/.bashrc ou o ~/.bash_profile:
Listagem de código 3.1: Estendendo o PATH para uso local no ~/.bashrc |
PATH="${PATH}:/home/usuario/bin"
|
Quando você re-logar, a sua variável PATH será atualizada.
Específico para a sessão
Às vezes definições ainda mais estritas são necessárias. Você pode querer usar
binários de um diretório temporário que você criou sem usar o caminho até os
binários nem editar o ~/.bashrc para o pouco tempo que você
precisará dele.
Neste caso, você pode simplesmente definir a variável PATH na sua sessão
atual usando o comando export. Enquanto você não se deslogar, a variável
PATH usará as definições temporárias.
Listagem de código 3.2: Definindo uma variável de ambiente específica a uma sessão |
# export PATH="${PATH}:/home/meu_usuário/tmp/usr/bin"
|
[ << ]
[ < ]
[ Início ]
[ > ]
[ >> ]
O conteúdo deste documento está licenciado pela licença Creative Commons -
Attribution / Share Alike.
|