Gentoo Logo

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

(Este exemplo é a soma de todos ajustes em base, default-linux,
 default-linux/x86 e default-linux/x86/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):

  1. Configurações padrões declarada nos arquivos do make.defaults, parte de seu profile
  2. Configurações de USE herdadas se um pacote do profile use.defaults for instalado
  3. Configurações de USE definidas pelo usuário em /etc/make.conf
  4. Configurações de USE definidas pelo usuário em /etc/portage/package.use
  5. 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 unset ]
[ 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 ]
 - - libgda  : Adds GNU Data Access (CORBA wrapper) support for gnumeric
 - - gnomedb : unknown
 + + python  : Adds support/bindings for the Python language
 + + bonobo  : Adds support for gnome-base/bonobo (Gnome CORBA interfaces)

[ << ] [ < ] [ Início ] [ > ] [ >> ]


Imprimir

View all

Atualizado 13 de janeiro de 2006

A versão original deste documento foi atualizada em 1 de junho de 2014

Resumo: As variáveis de USE são um aspecto muito importante do Gentoo. Neste capítulo você irá aprender a trabalhar com variáveis de USE e entender como elas interagem com seu sistema.

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.