Continuando com as flags USE, podemos controlar o sistema de forma mais direta e eficaz através dos seguintes métodos:
/etc/portage/package.use: neste diretório podemos ter um único arquivo contendo vários pacotes e suas flags, ou um arquivo para cada pacote. Desta forma conseguimos um maior refinamento no sistema, maior ainda do que no make.conf, pois este último é um arquivo global. As configurações contidas aqui irão se sobrepor às configurações do make.conf. Um exemplo de um arquivo neste diretório:
Fonte:
gentoo.org
A primeira declaração equivale a mesma configuração do make.conf, mas para fim de explicação vou comentar sobre ela: os pacotes do Gentoo seguem o template categoria/pacote. Desta forma estamos informando ao Portage que em todas as categorias e todos os pacotes (*/*) estamos desabilitando ( o - na frente da flag) as flags especificadas. Caso fosse para habilitar bastaria colocar o nome da flag sem nenhum sinal. Ainda é possível declarar, neste mesmo arquivo, a variável para a versão do interpretador do Python, mas falarei desta variável mais pra frente. Caso seja um único arquivo para o package.use é importante declarar um pacote ATOM por linha (expliquei sobre ATOM na parte I). A especificação de cada pacote pode ser conforme declarado abaixo:
- básico: x11-libs/gtk+ (casa com qualquer versão do GTK)
- por versão:
~sys-devel/gdb-7.3 (casa com qualquer versão e revisão do pacote, por ex: gdb-7.3 e gdb-7.3-r1 (r1: revisão 1).
=categoria/pacote-1.23* (casa com o range da versão, por ex: =app-portage/portage-utils-0.6*, que produzirá a seguinte saída: portage-utils-0.60, portage-utils-0.61 e portage-utils-0.62 (ver demais formatos de ATOM na parte I).
- por SLOT: categoria/pacote:2 (casa pacotes com o SLOT específico, é válido notar que não há prefixo de pacote informado, por ex: dev-db/sqlite:0, que produzirá a seguinte saída: sqlite-2.8.16-r5).
Breve explicação: SLOT's são muito úteis no Gentoo. Podemos instalar diferentes versões de um pacote simultaneamente no mesmo sistema. No caso o SLOT será: categoria/pacote-versão:slot. Explicarei melhor sobre os SLOT's em outro artigo.
- por Overlay: categoria/pacote::overlay (casa os pacotes do overlay específico, por ex.: =media-libs/mesa-9999::x11 que produzirá a seguinte saída: mesa version 9999 from the x11 overlay).
Breve explicação: Overlays são repositórios fora da árvore padrão do Gentoo. Também pode ser um repositório construído localmente pelo próprio usuário. O Overlay padrão do gentoo é ::gentoo, que equivale ao Portage Tree.
arquivo make.conf: uma outra forma de declarar as flags desejadas e não desejadas é no arquivo make.conf, o qual explicarei melhor mais adiante. Para declarar as flags neste arquivo usamos uma variável chamada USE. Este é um arquivo global dentro do Gentoo, portanto, não abuse demais destas declarações ou seu sistema ficará praticamente inutilizado. Um exemplo de declaração das flags neste arquivo pode ser:
USE= "X bindist bash-completion gtk -systemd -pulseaudio"
declarando flags temporárias: podemos declarar flags temporárias antes da compilação do pacote desejado como se fosse parte das variáveis de ambiente. Este tipo de declaração é muito útil, entretanto, valerá apenas para a compilação atual. No caso de uma atualização de pacote ou reinstalação, será necessário declarar novamente as flags. Ex:
Precedência
É importante destacar que há precedências entre as formas destacadas acima e precisamos ter este conhecimento pois o Portage fará a verificação conforme as precedências. As precedências para as configurações das USE flags estão descritas a seguir, ordenadas por prioridade (do menor para o maior):
- Configuração padrão declarada no arquivo make.defaults (arquivo gerado pelo eselect profile - não coberto aqui).
- Definições do usuário na variável USE no arquivo /etc/portage/make.conf.
- Definições do usuário pacote a pacote em /etc/portage/package.use.
- Variável USE declarada como variável de ambiente, antes da compilação.