Um olhar sobre o Portage-Tools - Parte III

Nesta terceira parte, pretendo introduzir os conceitos de USE flags e sua utilização. Como podemos construir um sistema moderno e estável definindo as flags necessárias. Vou expor também o arquivo de configurações que, talvez, seja o mais conhecido e utilizado no Gentoo: o make.conf. Vou apresentar também outros arquivos de configuração muito úteis para a dupla dinâmica: Portage/Emerge. Vamos nessa!

[ Hits: 12.154 ]

Por: Luiz Santos em 07/07/2016


USE FLAGS - PARTE II



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):
  1. Configuração padrão declarada no arquivo make.defaults (arquivo gerado pelo eselect profile - não coberto aqui).
  2. Definições do usuário na variável USE no arquivo /etc/portage/make.conf.
  3. Definições do usuário pacote a pacote em /etc/portage/package.use.
  4. Variável USE declarada como variável de ambiente, antes da compilação.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. USE FLAGS
   3. USE FLAGS - PARTE II
   4. USE FLAGS - PARTE III
   5. O arquivo make.conf
   6. O arquivo make.conf - PARTE II
   7. O arquivo make.conf - PARTE II - variáveis cflags / cxxflags e otimização do sistema
   8. O arquivo make.conf - PARTE III
   9. O arquivo make.conf - PARTE IV
   10. O arquivo make.conf - PARTE V
   11. Finalizando
Outros artigos deste autor

Um olhar sobre o Portage-tools - Parte I

Um olhar sobre o Portage Tools - Parte II

Leitura recomendada

K3b - Gravando CDs no Slackware

Pipelight Flash vs. Fresh Player vs. Adobe Flash nativo vs. Pepper Flash nativo

Compilador Clipper open-source, compile sem problemas os sistemas .PRG no Linux!

Instalando o plugin do Kaffeine (player de vídeo)

VirtualBox 2.1.0: Rede no VirtualBox agora é fácil!

  
Comentários
[1] Comentário enviado por luiztux em 07/07/2016 - 08:41h

Galera, uma atualização:

Sobre a variável do USE_EXPAND, a L10N, esta irá substituir a variável LINGUAS em um futuro próximo. Então, obrigatoriamente, devemos ter ambas informadas no nosso make.conf respeitando as diferenças de padrões entre elas.

É isso aí.

-----------------------------------''----------------------------------

"If it moves, compile it."


[2] Comentário enviado por albfneto em 07/07/2016 - 12:06h

muito bom isso! parabéns.
favoritado , como as outras partes.
é legal a galera conhecer Portage. Portage é uma obra prima de programação
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: [i] Sabayon, Gentoo, OpenSUSE, Mageia e OpenMandriva[/i].

[3] Comentário enviado por luiztux em 07/07/2016 - 12:20h


[2] Comentário enviado por albfneto em 07/07/2016 - 12:06h

muito bom isso! parabéns.
favoritado , como as outras partes.
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: [i] Sabayon, Gentoo, OpenSUSE, Mageia e OpenMandriva[/i].


Obrigado Alberto. Sua opinião vale muito pois, como escrevi, parte deste conhecimento obtive através de você. Então eu sinto uma relação de supervisão da sua parte, por assim dizer..rsrsr

[4] Comentário enviado por albfneto em 09/07/2016 - 19:53h

quando terminar tudo, vou fazer uma sugestão.
você junta todas as partes, com copiar e colar, e faz uma apostila ou pequeno livro, e posta no Site "Domínio Público". Cite sua autoria, lógicamente.

tem muita coisa de linux lá, de Química, de Artes, de tudo. Pa vc ver, vai no site

http://www.dominiopublico.gov.br/pesquisa/PesquisaObraForm.do

e no formulário de busca use Palavras-Chave "Ciências da Computação", "Linux".

o legal do site Domínio Público é que ele é desenvolvido usando Software Livre

No que se refere a seu Artigo, sugerí porque Portage tem pouca literatura em Português.

Eu gostaria que muita gente conhecesse Portage, porque é fenomenal, muito bem programado. Ele acha as dependências, gerencia tudo, faz o que vc quer... um GCC, mas um GCC todo automático. Portage é genial

Não sei Porque, mas alguns Gentoístas, no Mundo todo, não eu, você ou o próprio Daniel Robbins (ele é muito acessível, sempre respondeu meus emails), não gostam de ensinar a usar Gentoo ou Portage, não sei ao certo o por que.
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: [i] Sabayon, Gentoo, OpenSUSE, Mageia e OpenMandriva[/i].

[5] Comentário enviado por luiztux em 09/07/2016 - 20:20h

Gostei da ideia e agradeço. Farei isto quando terminar.

Em relação ao Daniel, realmente, o cara é muito acessível e solícito. Também tive a oportunidade de falar com ele e com outros desenvolvedores do Gentoo como: Nathan Zachary, Michal Gorny e Zack Medico e os caras sempre muito solícitos, sem problema nenhum. Mas infelizmente tem aqueles que se acham superiores aos outros e não gostam de ajudar. É uma lástima...


-----------------------------------''----------------------------------

"If it moves, compile it."


[6] Comentário enviado por Pygoscelis em 13/07/2016 - 13:51h

.

[7] Comentário enviado por Pygoscelis em 13/07/2016 - 13:52h

Muito bom e útil! Se tivesse lido esses artigos um tempo atrás, quando migrei para Gentoo, diminuiria bastante minhas leituras e buscas. Legal também reunir links do Alberto que tanto já me foram úteis. Valeu!

[8] Comentário enviado por luiztux em 14/07/2016 - 08:48h


[7] Comentário enviado por Pygoscelis em 13/07/2016 - 13:52h

Muito bom e útil! Se tivesse lido esses artigos um tempo atrás, quando migrei para Gentoo, diminuiria bastante minhas leituras e buscas. Legal também reunir links do Alberto que tanto já me foram úteis. Valeu!


Obrigado pelo comentário. Realmente precisamos de extensiva leitura para usar o Gentoo. Nestes artigos tentei passar um pouco do que aprendi, depois de muita busca e leitura, como você disse. Claro que isto não irá tornar nada mais fácil para quem chega ao sistema, mas espero que dê um "Norte" para quem precisar.
O Alberto é um cara excepcional que manja demais. Os artigos e dicas dele são referência e por este motivo eu reuni estas informações.

Um abraço.

[9] Comentário enviado por removido em 30/07/2016 - 19:16h

Ainda vou instalar o Gentoo, basta eu conseguir algum tempo livre.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts