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

Por: Luiz Santos em 07/07/2016


O arquivo make.conf



Agora que fomos apresentados às USE flags, podemos continuar com os arquivos configuráveis.

O arquivo make.conf, incluso no diretório /etc/portage (atualmente), é um arquivo que nos possibilita customizar todo o ambiente global do Portage. O que definirmos aqui será aplicado para todos os pacotes que instalarmos e para todas as modificações no sistema.

Para citar algumas possibilidades, podemos definir as USE flags, flags do processador, arquitetura, linguagem dos pacotes, entre uma infinidade de opções. Apesar de toda esta gama de configurações que veremos a seguir, as configurações do Portage não se resumem à apenas este arquivo, mas sim através da junção dos arquivos que vimos, alguns destes precedem o make.conf.

Entretanto o make.conf merece um bom conteúdo e espero trazer um pouco deste conteúdo para aqueles que não conhecem, mas enfatizo que, em caso de maiores curiosidades, sempre leia a man page. Inclusive aqui no VOL tem alguns arquivos make.conf. Sem mais delongas, vamos ao make.conf.

VARIÁVEIS

No make.conf trabalhamos com variáveis para definirmos as configurações que queremos de modo global. A declaração segue o mesmo esquema da maioria dos arquivos de configuração do GNU/Linux: variavel="valor", entretanto, no make.conf, o nome das variáveis deve ser declarado em letras maiúsculas. É possível ainda fazer as declarações em formato shell-like: var="${var}".

Assim sendo podemos ainda referenciar o valor de uma variável A através de outra variável B. Veremos isto mais para frente. Vou escrever apenas as opções mais comumente usadas, pois o objetivo aqui não é ser uma man page. As opções de variáveis são:

- ACCEPT_CHOSTS: indica uma ou mais arquiteturas aceitas para compilação e instalação dos pacotes, o valor padrão desta variável é o mesmo que $CHOST. Esta variável será lida a partir do ebuild do pacote escolhido para instalação, na fase de configuração do pacote. Esta fase de configuração chama o arquivo de autoconfiguração (geralmente .configure) através de uma série de declarações no ebuild, assim o código será configurado corretamente antes da compilação do mesmo. Um exemplo do trecho de código relacionado ao passo de configuração pode ser:

src_configure() {
   if [[ -x ${ECONF_SOURCE:-.}/configure ]] ; then
      econf
   fi
}

O código acima é um trecho padrão que será aplicado caso o próprio ebuild não defina o passo a passo de configuração. Isto está previsto e documentado no EAPI2 (comentei brevemente sobre EAPI na parte 2 desta série). A função econf() faz parte dos scripts ebuild e serve para moldar o processo de configuração no estágio acima. No caso da variável accept_chosts, a função irá verificar o valor de --host=${CHOST}.

- ACCEPT_KEYWORDS: keywords são arquiteturas suportadas por cada pacote, definida na variável de mesmo nome em cada script ebuild. Neste caso, ao declararmos esta variável no make.conf, estaremos habilitando a instalação de pacotes que ainda estejam em fase de teste em determinada arquitetura. Ex.:

ACCEPT_KEYWORDS="~amd64"

O prefixo ~ na frente da arquitetura informa ao Portage a aceitação de pacotes testing. Em alguns casos isto é necessário pois pacotes podem possuir dependências que podem estar em fase de teste em determinada arquitetura. Um exemplo fictício pode ser:
No caso acima precisamos habilitar a instalação testing do pacote =dev-perl/Term-Screen-1.30.0. A variável no make.conf tomará conta disto, mas o ideal é definir esta opção pacote a pacote para ganharmos um maior refinamento. Fazemos isto com o simples comando abaixo referenciando o arquivo ou diretório /etc/portage/package.accept_keywords:

No caso de um único arquivo de nome package.accept_keywords:

# echo "=dev-perl/Term-Screen-1.30.0 ~amd64" >> /etc/portage/package.accept_keywords

No caso de um diretório com vários arquivos:

# echo "=dev-perl/Term-Screen-1.30.0 ~amd64" >> /etc/portage/package.accept_keywords/Term-ScreenColor

Para efeito de conhecimento, a maioria dos ebuilds contém a variável KEYWORD, que serve para indicar a estabilidade e adaptação de ebuild e seu pacote em determinada arquitetura. Atualmente o Gentoo suporta as seguintes arquiteturas: Alpha, AMD64, ARM, ARM64, HPPA, IA64, MIPS, PPC, PPC64, SPARC e X86. Para o ebuild e seu respectivo pacote, um exemplo da variável Keyword poderia ser:

KEYWORDS="x86 sparc ~mips ~ppc ~ppc-macos -ia64"

- ACCEPT_LICENSE: nesta variável nós declaramos as licenças que serão aceitas automaticamente para instalação dos pacotes. Assim como a variável keyword, cada ebuild declara igualmente a licença do pacote em questão. Caso um pacote apresente uma licença que não esteja configurada no make.conf, o Portage apresentará esta licença para que seja aceita antes da compilação do pacote. Esta funcionalidade do Portage foi implementada na GLEP23. Tomemos como exemplo o pacote dev-lua/lua-openssl-0.4.1-r1:
Um exemplo de declaração desta variável no make.conf pode ser:

ACCEPT_LICENSE="@EULA @GPL-COMPATIBLE"

Ou ainda:

ACCEPT_LICENSE=" * " #aceitando todas as licenças disponíveis no Gentoo

No primeiro caso, o caractere @ indica que trata-se de um grupo que contém licenças. Assim como no caso da variável keyword, temos a opção de refinar esta configuração pacote a pacote no arquivo ou diretório /etc/portage/package.license. Por ex.:

#aceitar a licença para o pacote google-chrome igual à versão 42.0.2311.90_p1
=www-client/google-chrome-42.0.2311.90_p1 google-chrome #esta é a licença

- ACCEPT_PROPERTIES: esta variável é usada para mascarar pacotes com base em suas propriedades. Atualmente o único valor disponível aqui é: interactive. Ex.:

ACCEPT_PROPERTIES="-interactive"

Caso a opção do emerge --accept-properties seja definida antes da compilação, esta variável será sobreposta.

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

Slapt-get, prático e eficiente para atualizar o sistema e baixar programas novos

LAMP no Fedora 17

PacmanXG, excelente frontend para o Pacman

Instalando OpenWrt no TP-LINK WR740N(BR)

Childsplay - Suite completa de jogos para a educação infantil

  
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