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

Por: Luiz Santos em 07/07/2016


O arquivo make.conf - PARTE II



- ACCEPT_RESTRICT: [strip,mirror,fetch,userpriv,test,binchecks,bindist,installsources,preserve-libs,primaryuri,splitdebug] - nesta variável mascaramos pacotes com base nestas restrições. A saber:

binchecks: desabilita a checagem de QA (Quality Assurance) para pacotes binários e apenas para estes que esta checagem se faça desnecessária, por exemplo para pacotes que não tenham partes binárias. Para pacotes que contenham binários proprietários, será necessário utilizar variáveis especiais de QA (vide man page).

bindist: restringe pacotes pré compilados (binários).

fetch: assim como mirror, porém os pacotes não serão buscados através da variável SRC_URI.

installsources: desabilita a instalação de pacotes fontes para pacotes específicos cujos binários não são compatíveis com o pacote debugedit (RPM).

mirror: arquivos na variável SRC_URI não serão baixados através do GENTOO_MIRRORS.

preserve-libs: desabilita a característica de preservar bibliotecas (preserv-libs) para pacotes específicos.

primaryuri: busca por URI's através da variável SRC_URI, antes da variável GENTOO_MIRRORS.

splitdebug: desabilita informações de debug para pacotes específicos, estas informações são providenciadas pelo pacote splitdebug. Esta característica pode ser aplicada para pacotes que tenham problemas com debug, colisões de arquivos etc.

strip: por padrão, ao instalar pacotes binários, o Portage fará uma varredura nestes arquivos em busca de seções desnecessárias, reduzindo assim, o tamanho do arquivo a ser instalado e consequentemente ocupando menos espaço em disco, além de retirar informações de debug (geradas pela flag -g*, do GCC). Ao definirmos esta restrição (strip) o Portage não fará esta busca e deixará estes arquivos exatamente da forma como foram construídos, incluindo informações de debug e símbolos para debugging.

É possível ainda conseguir o mesmo procedimento com a restrição anterior, a splitdebug. Entretanto com esta opção, além do Portage fazer a varredura no arquivo, ele também fará o backup das informações de debug e copiará estas para um arquivo default ".debug", que será instalado no diretório /usr/lib/debug. O nome completo do arquivo será o mesmo dado pelo mesmo nome do pacote/programa instalado.

test: com esta restrição definida, o Portage não rodará a função src_test() presente nos ebuilds. Esta função testa a pré instalação de scripts, entretanto, talvez seja necessário restringir isto caso ocorra problemas se determinados testes não possam ser utilizados no ambiente do Portage. Algumas razões para isto pode ser:
  • Necessidade de usar o ambiente X;
  • Necessidade para trabalhar com arquivos que são desabilitados pelo sandbox¹;
  • Requer uma ação do usuário - a função src_test() não deve ser interativa;
  • Requer privilégios root.

Caso o usuário defina esta restrição aqui, o Portage dará preferência à esta ao invés da FEATURES="test", que veremos mais adiante.

userpriv: durante determinadas fases de compilação de um pacote o Portage pode decidir escalar privilégios do usuário, do root para usuário comum (caso este esteja no grupo "portage"). Habilitando esta restrição o Portage não tomará nenhuma ação caso uma destas fases requeira isto.

É importante enfatizar que a maioria destas restrições são mais interessantes para desenvolvedores. Isto inclui uma série de fatores, começando pelo stage baixado e passando pelo perfil de desenvolvedor definido pelo utilitário eselect. Então, salvo o contrário, um usuário comum dificilmente precisará utilizar tais restrições.

- CCACHE_DIR = [caminho]: define o diretório de onde o programa ccache irá trabalhar, o valor default é /var/tmp/ccache. Este programa é, ou era, muito utilizado, porém devido à inúmeros problemas e bugs é importante frisar que seu uso é mais recomendado para desenvolvedores. O que este programa faz é criar um cache de programas compilados. Quando o mesmo programa for atualizado ou reinstalado, o ccache buscará esta informação tornando a (re)compilação mais rápida. Este programa é útil apenas nestes casos: quando precisamos (re)compilar um programa muitas vezes ou quando há muitas atualizações para o mesmo programa. Atualmente suporta as linguagens C, C++, Objective-C e Objective-C++.

- CCACHE_SIZE = "tamanho[G, M ou K]": define o tamanho do espaço que será usado pelo ccache. O valor default é de 2G.

- CFLAGS CXXFLAGS: são variáveis de ambiente que controlam os compiladores de C (CFLAGS, usualmente o gcc) e de C++ (CXXFLAGS, g++), durante as fases de compilação dos pacotes. Servem para otimizar a compilação e os pacotes para o sistema. Estas variáveis são comumente setadas da seguinte forma:
Muitas pessoas param no meio do caminho por conta destas variáveis, encontrando dificuldades para entender seu funcionamento. Entretanto seu uso é bem simples e pretendo explicar brevemente como devemos utilizar tais variáveis. Veremos isto na próxima página e já peço desculpas antecipadas por conta da próxima página gigante.

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

Usando o Guitar Pro no Linux

Utilizando o VNC Server no Linux

Nagios e Cacti no CentOS 6.x - Instalação, configuração e integração das ferramentas

WebTorrent - Interface WEB + cliente torrent

Zenwalk - Uma distro e tanto

  
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