Aviso :
Este documento não é válido e não é mais mantido.
|
[ << ]
[ < ]
[ Início ]
[ > ]
[ >> ]
2. Variáveis de USE
Conteúdo:
2.a. O que são as opções de USE?
As idéias por trás das opções de USE
Quando você está instalando o Gentoo (ou qualquer outra distribuição, até mesmo
sistema operacional) você faz escolhas que dependem do ambiente com que você
está trabalhando. Uma configuração para servidores difere de uma configuração de
uma estação de trabalho. Uma estação de jogos difere de uma estação de gráficos
3D.
Isso não somente é verdade para os pacotes que você quer instalar, mas também
que funções um pacote deve suportar. Se você não precisa de OpenGL, por que se
preocupar em instalar o OpenGL e construir suporte para OpenGL na maior parte de
seus pacotes? Se você não quer usar o KDE, por que compilar pacotes com suporte
a KDE se eles irão funcionar perfeitamente sem suporte a KDE?
Para ajudar os usuários na decisão sobre o que instalar/ativar e o que não, nós
quisemos que o usuário especificasse seu ambiente de uma maneira fácil. Isto
força o usuário a decidir sobre o que eles realmente querem e facilita o
processo para o Portage, nosso sistema de gerenciamento de pacotes, tornando as
decisões úteis.
Definição de uma opção de USE
Entre com as opções de USE. Tal opção é uma palavra-chave que junta suporte e
informações de dependências com um certo conceito. Se você define uma certa
opção de USE, o Portage saberá que você quer suporte para a palavra-chave
escolhida. Claro que isso também altera as informações de dependências de um
pacote.
Vamos ver um exemplo específico: a palavra-chave kde. Se você não tiver
esta palavra-chave na sua variável de USE, todos pacotes que tem suporte
opcional ao KDE serão compilados sem suporte ao KDE. Todos pacotes
que tem uma dependência opcional do KDE serão instalados sem
instalar as bibliotecas do KDE (como dependência). Se você definiu a
palavra-chave kde, então estes pacotes serão compilados com
suporte a KDE, e as bibliotecas do KDE serão instaladas como dependência.
Ao definir as palavras-chave corretamente você recebe um sistema feito
especificamente para suas necessidades.
Que opções de USE existem?
Existem dois tipos de opções de USE: variáveis globais e locais.
-
Uma opção de USE global é usada por vários pacotes, pelo sistema
inteiro. Isto é o que a maior parte das pessoas entende como opções de USE.
-
Uma opção de USE local é usada só por um único pacote para decisões
específicas a ele.
Uma lista das opções de USE disponíveis globalmente pode ser encontrada online ou localmente em
/usr/portage/profiles/use.desc.
Uma lista de opções de USE locais pode ser encontrada localmente em
/usr/portage/profiles/use.local.desc.
2.b. Usando as opções de USE
Declarando opções de USE permanentes
Esperando ter convencido você da importância das opções de USE, nós iremos
informá-lo sobre como declarar as opções de USE.
Como mencionado anteriormente, todas opções de USE são declaradas dentro da
variável de USE. Para facilitar ao usuários a busca e escolha de opções
de USE, nós já fornecemos uma configuração de USE padrão. Esta
configuração é uma coleção de opções de USE que achamos ser usada comumente
pelos usuários do Gentoo. A configuração padrão é declarada na parte dos
arquivos make.defaults de seu profile (perfil).
O profile que seu sistema escuta é apontado pelo link simbólico
/etc/make.profile. Cada profile funciona em cima de outro profile
maior, e o resultado final é a soma de todos profiles. O profile de topo
é o profile base (/usr/portage/profiles/base).
Vamos ver a configuração padrão para o profile 2004.3:
Listagem de código 2.1: Variável de USE cumulativa para o profile 2004.3 |
USE="x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77
foomaticdb gdbm gif gpm gtk imlib jpeg kde gnome libg++ libwww mad
mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt
quicktime readline sdl spell ssl svga tcpd truetype X xml2 xmms xv zlib"
|
Como você pode ver, esta variável já contém várias palavras-chave. Não
altere nada no arquivo make.defaults para ajustar as variáveis de
USE às suas necessidades: mudanças nesse arquivo serão desfeitas quando
você atualizar o Portage!
Para mudar este ajuste padrão, você precisa adicionar ou remover palavras-chave
à variável USE. Isto é feito globalmente ao definir a variável USE
no arquivo /etc/make.conf. Nesta variável você pode adicionar
opções de USE adicionais de que você precisa, ou remover as opções de USE que
você não quer. Para remover opções, coloque a palavra-chave prefixada do sinal
de menos ("-").
Por exemplo, para remover suporte para KDE e QT e adicionar suporte para ldap,
as seguintes opções de USE podem ser definidas no
/etc/make.conf:
Listagem de código 2.2: Um exemplo de configuração de USE no /etc/make.conf |
USE="-kde -qt ldap"
|
Declarando opções de USE para pacotes individuais
Às vezes você quer declarar uma opção de USE para umas (ou algumas) aplicações,
mas não para todo o sistema. Para fazê-lo, você precisará criar o diretório
/etc/portage (se ainda não existir) e editar o arquivo
/etc/portage/package.use.
Por exemplo, se você não quiser suporte de berkdb global, mas você quer
ele para o mysql, você deve adicionar:
Listagem de código 2.3: exemplo de /etc/portage/package.use |
dev-db/mysql berkdb
|
Você pode, lógico, também desligar opções de USE para uma certa
aplicação. Por exemplo, se você não quer suporte de java no PHP:
Listagem de código 2.4: segundo exemplo de /etc/portage/package.use |
dev-php/php -java
|
Declarando opções de USE temporárias
Às vezes você quer que um certa opção de USE só uma vez. Ao invés de editar o
/etc/make.conf duas vezes (para fazer e desfazer mudanças à
variável de USE) você pode simplesmente declarar a variável de USE como uma
variável de ambiente. Lembre-se disso, quando você fizer emerge novamente ou
atualizar a aplicação (tanto explicitamente como parte de uma atualização de
sistema) suas mudanças serão perdidas!
Como um exemplo nós iremos remover o java temporariamente das opções de USE
durante a instalação do mozilla.
Listagem de código 2.5: Usando a USE como variável de ambiente |
# USE="-java" emerge mozilla
|
Opções de USE automáticas
Depois de certos pacotes terem sido instalados, opções adicionais de USE serão
automaticamente ativadas para você se você não desativá-las explicitamente. Para
ver a lista de pacotes que ligam opções de USE automáticas, por favor veja os
arquivos /etc/make.profile/use.defaults e use.defaults
dos profiles pais.
Listagem de código 2.6: Um trecho de /etc/make.profile/use.defaults |
gnome gnome-base/gnome
gtk x11-libs/gtk+
qt x11-libs/qt
kde kde-base/kdebase
motif x11-libs/openmotif
|
Precedência
Lógico que há uma certa precedência sobre qual configuração tem prioridade sobre
a variável de USE. Você não deve querer declarar USE="-java" só para
descobrir que java é ainda usado devido a um ajuste que tem maior
prioridade. A precedência para o ajuste de USE é, em ordem de prioridade (o
primeiro tem menor prioridade):
-
Configurações padrões declarada nos arquivos do make.defaults,
parte de seu profile
-
Configurações de USE herdadas se um pacote do profile
use.defaults for instalado
-
Configurações de USE definidas pelo usuário em /etc/make.conf
-
Configurações de USE definidas pelo usuário em
/etc/portage/package.use
-
Configurações definidas pelo usuário como uma variável de ambiente
Para ver a configuração de USE final como o Portage enxerga ela, rode
emerge --info. Isto irá listar todas variáveis relevantes (incluindo a
variável de USE) com o conteúdo usado pelo Portage.
Listagem de código 2.7: Rodando emerge --info |
# emerge info
|
Adaptando seu sistema inteiro a novas opções de USE
Se você alterou suas opções de USE e quiser atualizar seu sistema inteiro para
que ele use as novas flags de USE, use a opção --newuse do emerge:
Listagem de código 2.8: Reconstruindo seu sistema inteiro |
# emerge --update --deep --newuse world
|
A seguir, rode o depclean do Portage para remover quaisquer dependências
condicionais que foram instaladas em seu sistema "antigo", mas que viraram
obsoletas com as novas opções de USE.
Aviso:
Rodar emerge --depclean é uma operação perigosa e deve ser feita com
cuidado. Verifique a lista de pacotes "obsoletos" dada para ter certeza que
nenhum pacote de que você precisa seja removido. No exemplo seguinte nós
adicionamos a opção -p para que o depclean só liste os pacotes sem
removê-los.
|
Listagem de código 2.9: Removendo pacotes obsoletos |
# emerge -p --depclean
|
Quando o depclean terminar, rode revdep-rebuild para reconstruir as
aplicações que são linkadas dinamicamente contra objetos compartilhados
fornecidos por pacotes possivelmente removidos. O revdep-rebuild é parte
do pacote gentoolkit; não se esqueça de fazer emerge dele primeiro:
Listagem de código 2.10: Rodando revdep-rebuild |
# revdep-rebuild
|
Quando tudo isso for feito, seu sistema estará usando as novas opções de USE.
2.c. Opções de USE específicas a pacotes
Vendo opções de USE disponíveis
Vamos tomar o exemplo do mozilla: que opções de USE ele escuta? Para
descobrir, nós usamos o emerge com as opções --pretend e
--verbose:
Listagem de código 3.1: Vendo todas opções de USE |
# emerge --pretend --verbose mozilla
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild R ] www-client/mozilla-1.7.12-r2 USE="crypt gnome java mozsvg ssl
truetype xprint -debug -ipv6 -ldap -mozcalendar -mozdevelop -moznocompose
-moznoirc -moznomail -moznoxft -postgres -xinerama" 0 kB
|
O emerge não é a única ferramenta para esta tarefa. Na verdade, temos uma
ferramenta dedicada a informações de pacotes chamada equery que reside
no pacote gentoolkit. Primeiro, instale o gentoolkit:
Listagem de código 3.2: Instalando o gentoolkit |
# emerge gentoolkit
|
Agora rode equery com o argumento uses para ver as opções de USE
de um certo pacote. Por exemplo, para o pacote gnumeric:
Listagem de código 3.3: Usando o equery para ver opções de USE |
# equery uses gnumeric
[ Colour Code : set ]
[ Legend : (U) Col 1 - Current USE flags ]
[ : (I) Col 2 - Installed With USE flags ]
U I [ Found these USE variables in : app-office/gnumeric-1.2.0 ]
- - : Adds GNU Data Access (CORBA wrapper) support for gnumeric
- - : unknown
+ + python : Adds support/bindings for the Python language
+ + bonobo : Adds support for gnome-base/bonobo (Gnome CORBA interfaces)
|
[ << ]
[ < ]
[ Início ]
[ > ]
[ >> ]
O conteúdo deste documento está licenciado pela licença Creative Commons -
Attribution / Share Alike.
|