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.124 ]

Por: Luiz Santos em 07/07/2016


USE FLAGS - PARTE III



É notável que tudo está ligado pelas flags USE. Lembram-se dos inúmeros arquivos que listei na parte 2 desta série? Pois bem, eles também influenciam aqui. Por este motivo é preciso saber o que fazemos no sistema, ou iremos compilar um software todo quebrado. Logicamente o Portage irá nos avisar de dependências quebradas e tudo o mais, porém, para que ter dor de cabeça à toa se podemos evitar? Basta ler um pouquinho mais e procurar entender como o sistema funciona. Acredite: tudo ficará mais fácil.

Todos estes pontos conectados estão sob a supervisão do Portage que fará a verificação conforme definido em cada ebuild de cada software. Continuando com o exemplo do conky, vamos dar uma olhada em seu ebuild e as instruções do IUSE para o Portage:
Na linha 16 temos a variável IUSE, que serve para declarar as flags para compilação do pacote. Dentre elas estão flags globais e locais. Não entrarei em detalhes sobre a construção do ebuild, isto é tema para outro artigo.

As flags globais estão descritas nos arquivos, já citados, use.desc, ou em um arquivo chamado de Metadata.xml, disponível no diretório de cada ebuild. Tudo isto também estará nos nossos diretórios locais, que serve como snapshot da árvore do Portage. Caso queira uma visão mais abrangente de todas as flags disponíveis, vá direto à fonte: https://www.gentoo.org/support/use-flags/.

O arquivo use.desc contém todas as flags globais com informações sobre as mesmas e/ou o que elas fazem. Quem altera estes arquivos são os mantenedores do Gentoo, após uma votação para introdução de novas flags globais. As flags locais, como já informado, estão listadas no arquivo use.local.desc e também em um arquivo Metadata.xml.

O arquivo use.local.desc não é editado diretamente pelos desenvolvedores, pois ele é gerado a partir do Metadata.xml. Isto está documentado na GLEP56, que propõem a adição de flags e sua descrição, pacote a pacote, para cada Metadata de pacote. Isto tudo é informação para os desenvolvedores, aos usuários, cabe decidir quais flags usar. Em casos mais extremos, reportamos bugs sobre elas. Em outros casos, ajudamos na construção de novas flags globais. Eis aqui o arquivo Metadata do conky:
Como um ponto está ligado à outro no Gentoo, é possível (e bem provável), que tenhamos conflitos entre as USE flags. Na verdade isto é até mais comum do que se parece. Isto acontece pois nos ebuilds os desenvolvedores podem especificar uma ou mais dependências para compilar um pacote.

Estas dependências se traduzem em características ou recursos. Algumas flags podem ter funcionalidades similares, o que difere é que a flag Y pode conter melhores características do que a flag X. O Portage pode decidir utilizar a flag Y ao invés da flag X, por possuir mais recursos. Porém, você setou no make.conf que quer habilitado globalmente a flag X, porém tem instalado o pacote.foo que necessita da flag Y.

Ao tentar instalar o pacote.foo_bar o Portage deverá decidir qual utilizar com base no ebuild deste pacote, entretanto, ambas as flags não podem ser instaladas ao mesmo tempo no mesmo sistema. Aí pode acontecer um conflito, pois o pacote selecionado para instalar, não pode ser instalado/compilado com ambas as flags ativas.

É preciso escolher uma e apenas uma delas. Para evitar este problema ao máximo (acredite, é um problema bem chato), os desenvolvedores, ao construir o ebuild, podem especificar a variável REQUIRED_USE para permitir combinações entre as flags. Esta variável contém uma lista de afirmações que devem ser cumpridas pelas configurações definidas nas USE flags. Por exemplo, a construção fictícia do ebuild abaixo terá conflitos:
É aqui que entra a variável REQUIRED_USE, definida no EAPI4. Vejamos:
Mas este é apenas um exemplo superficial. Com o tanto de possibilidades que o sistema nos oferece, ele é uma caixinha de boas surpresas, mas mal configurado pode tornar-se um pesadelo. Lembre-se: a dificuldade é na administração do sistema. Vou lembrá-los disto até o último artigo da série.

Para além das flags globais e locais, há mais algumas que foram convencionadas como USE flags, também. São elas: VIDEO_CARDS, INPUT_DEVICES e LINGUAS. Esta última é assim mesmo, chama-se LINGUAS. Seu propósito é autoexplicativo, não? Pois bem, estas flags são comumente chamadas de USE_EXPAND e ARCH USE. Isto está definido no arquivo padrão do Portage: make.defaults. Assim como as flags globais, estas também são setadas no arquivo make.conf. A sintaxe que devemos utilizar neste arquivo é o seguinte:

#setando algumas flags globais
USE="X bindist alsa ..."

#placa de vídeo
VIDEO_CARDS="intel"

#dispositivos de entrada: mouse(usb etc), dispositivos bluetooth etc.
INPUT_DEVICES="evdev keyboard"

#setando a linguagem que os pacotes devem ser instalados
LINGUAS="pt_BR"

É bem simples não é? O Portage buscará todas estas informações antes de compilar qualquer pacote. Ah, e se tiver qualquer coisa errada, logicamente ele informará e não continuará o processo.

Veremos agora como funciona o make.conf do Gentoo. Vamos nessa!

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 II

Um olhar sobre o Portage-tools - Parte I

Leitura recomendada

Desktop em 3D - customizando seu GNU/Linux

Instalação do Ambiente .NET (#C) no Slackware 15.0

Vyatta, o concorrente livre dos roteadores Cisco

FeniX Green 3D/HD

Implementando um Linux Terminal Service (LTS) no Debian

  
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