Gentoo Logo

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 ] [ > ] [ >> ]


Imprimir

View all

Atualizado 19 de dezembro de 2005

A versão original deste documento foi atualizada em 18 de dezembro de 2013

Resumo: Com o Gentoo você pode facilmente gerenciar as variáveis de ambiente para o seu sistema. Este capítulo explica como fazer isto, e também descreve as variáveis que são usadas com mais freqüência.

Sven Vermeulen
Autor

Roy Marples
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Desenvolvedor do Gentoo x86

Tavis Ormandy
Desenvolvedor do Gentoo Alpha

Jason Huebel
Desenvolvedor do Gentoo AMD64

Guy Martin
Desenvolvedor do Gentoo HPPA

Pieter Van den Abeele
Desenvolvedor do Gentoo PPC

Joe Kallar
Desenvolvedor do Gentoo SPARC

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Tobias Scherbaum
Editor

Xavier Neys
Editor

Grant Goodyear
Revisor

Gerald J. Normandin Jr.
Revisor

Donnie Berkholz
Revisor

Ken Nowack
Revisor

Lars Weiler
Colaborador

Enderson Maia
Tradutor Responsável

Marcelo Góes
Tradutor

Eduardo Magalhães
Tradutor

Marcelo Azambuja
Tradutor

Marcos Vinicius Buzo
Tradutor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.