Um olhar sobre o Portage Tools - Parte II
Na primeira parte deste artigo vimos alguns conceitos sobre as ferramentas que o Portage utiliza para trabalhar. Apresentei superficialmente o emerge e suas próprias ferramentas: ebuilds, atoms, set e tbz2. Pois bem, é hora de continuarmos nossa jornada por dentro do Portage Tools, através de seus arquivos de configuração.
Parte 5: Arquivos do diretório /usr/portage/profile - continuação
Continuando com os arquivos do diretório /etc/portage/profiles, temos em seguida o arquivo packages.
packages: este arquivo prove a lista de pacotes que compõem os arquivos SET @system e @profile. Este é um arquivo de configuração como todos os outros.
Por exemplo, se quisermos adicionar o pacote app-portage/eix/eix-0.30.4 ao @system, faremos desta forma:
packages.build: este arquivo é uma lista de pacotes (um por linha), que são utilizados para construir o tarball do stage1.
package.bashrc: contém lista de arquivos bashrc por pacote. Cada arquivo será processado antes de instalar (emergir) um pacote (atom).
package.provided: lista de pacotes que o Portage deve assumir que foi provisionado. Os pacotes aqui listados serão assumidos pelo Portage que não deverão ser instalados e nem atualizados, salvo se outro pacote explicitar que precisa de determinado (que estiver listado aqui) pacote atualizado.
package.use.force e package.use.stable.force: aqui forçamos determinados pacotes a serem instalados com determinadas USE flags habilitadas ou desabilitadas. Por ex.:
É importante notar que as flags devem ser separadas por um espaço após o pacote ser informado.
package.use.mask e package.use.stable.mask: neste arquivo especificamos determinados pacotes a serem mascarados com determinadas USE flags. O formato para inserir pacotes aqui, é o mesmo do arquivo anterior.
parent: este arquivo contém caminhos (paths), absolutos ou relativos, para os perfis.
profile.bashrc: caso necessário, este arquivo será usado para configurar ambientes especiais para os ebuilds de forma diferente da utilizada pelo ambiente root.
soname.provided: lista de bibliotecas compartilhadas (soname) que o Portage deverá assumir que já foi provisionado pelo usuário. Por ex.:
use.force e use.stable.force: força a instalação de pacotes com as USE flags listadas aqui.
use.mask e use.stable.mask: algumas USE flags que não fazem sentido serem habilitadas em determinadas arquiteturas, ou que ainda não foram exaustivamente testadas. Por exemplo: habilitar USE flags da arquitetura sparc em um x86.
virtuals: este arquivo controla preferências padronizadas que são definidas através da variável PROVIDE dos ebuilds, porém este tipo de arquivo não é mais suportado no Gentoo.
O fato acima se deve através de um projeto do Gentoo chamado de GLEP.
GLEP (Gentoo Linux Enhancement Proposal, ou, Proposta de Aprimoramento do Gentoo Linux) consiste em manter, solicitar e coletar propostas para melhorar o Gentoo. Qualquer usuário ou desenvolvedor pode enviar uma GLEP sugestionando possíveis melhorias para o sistema. Este é um dos caminhos que temos para interagir com os mantenedores do Gentoo.
Através da GLEP37 foi definido que o arquivo virtuals (e pacotes que entram nesta categoria) não seriam mais suportados pelo Gentoo. Segundo os autores desta GLEP - Thomas de Grenier de Latour, Ciaran McCreesh, Brian Harring and Stephen Bennett - este tipo de sistema é descentralizado e não há maneiras do Portage encontrar um pacote, de categoria virtual, específico. Assim o Portage precisaria verificar em todos os pacotes por esta categoria específica. Isto, claramente, provoca uma diminuição significativa de desempenho. Sendo assim, foi criada a GLEP37 que aboliu o sistema/pacotes virtuals.
Este projeto não é parte exclusiva do Portage, porém achei melhor explicar um pouquinho mais sobre o que envolve o Gentoo e suas ferramentas. Neste caso específico, esta GLEP está ligada diretamente ao Portage, sendo assim, creio que coube sua explicação.
packages: este arquivo prove a lista de pacotes que compõem os arquivos SET @system e @profile. Este é um arquivo de configuração como todos os outros.
- Comentários começam com (#).
- Deve ser informado apenas um ATOM como dependência (DEPEND) por linha.
- Pacotes que deverão ser adicionados ao @system, devem começar com *.
- Pacotes que deverão ser adicionados ao @profile, não necessitam de prefixo.
Por exemplo, se quisermos adicionar o pacote app-portage/eix/eix-0.30.4 ao @system, faremos desta forma:
#colocar o pacote eix, versão 0.30.4 no @system
*app-portage/eix-0.30.4
#colocar o pacote sys-apps/attr/attr-2.4.47-r2, no @profile
sys-apps/attr-2.4.47-r2
*app-portage/eix-0.30.4
#colocar o pacote sys-apps/attr/attr-2.4.47-r2, no @profile
sys-apps/attr-2.4.47-r2
packages.build: este arquivo é uma lista de pacotes (um por linha), que são utilizados para construir o tarball do stage1.
package.bashrc: contém lista de arquivos bashrc por pacote. Cada arquivo será processado antes de instalar (emergir) um pacote (atom).
package.provided: lista de pacotes que o Portage deve assumir que foi provisionado. Os pacotes aqui listados serão assumidos pelo Portage que não deverão ser instalados e nem atualizados, salvo se outro pacote explicitar que precisa de determinado (que estiver listado aqui) pacote atualizado.
package.use.force e package.use.stable.force: aqui forçamos determinados pacotes a serem instalados com determinadas USE flags habilitadas ou desabilitadas. Por ex.:
#força a instalação do pacote sys-apps/attr-2.4.47-r2 com a USE flag doc
=sys-apps/attr-2.4.47-r2 doc
#força desabilitar a USE flag doc para o pacote attr-2.4.47-r2
=sys-apps/attr-2.4.47-r2 -doc
=sys-apps/attr-2.4.47-r2 doc
#força desabilitar a USE flag doc para o pacote attr-2.4.47-r2
=sys-apps/attr-2.4.47-r2 -doc
É importante notar que as flags devem ser separadas por um espaço após o pacote ser informado.
package.use.mask e package.use.stable.mask: neste arquivo especificamos determinados pacotes a serem mascarados com determinadas USE flags. O formato para inserir pacotes aqui, é o mesmo do arquivo anterior.
parent: este arquivo contém caminhos (paths), absolutos ou relativos, para os perfis.
profile.bashrc: caso necessário, este arquivo será usado para configurar ambientes especiais para os ebuilds de forma diferente da utilizada pelo ambiente root.
soname.provided: lista de bibliotecas compartilhadas (soname) que o Portage deverá assumir que já foi provisionado pelo usuário. Por ex.:
x86_32 ld-linux.so.2 libc.so.6
x86_64 ld-linux-x86-64.so.2 libc.so.6
x86_64 ld-linux-x86-64.so.2 libc.so.6
use.force e use.stable.force: força a instalação de pacotes com as USE flags listadas aqui.
use.mask e use.stable.mask: algumas USE flags que não fazem sentido serem habilitadas em determinadas arquiteturas, ou que ainda não foram exaustivamente testadas. Por exemplo: habilitar USE flags da arquitetura sparc em um x86.
virtuals: este arquivo controla preferências padronizadas que são definidas através da variável PROVIDE dos ebuilds, porém este tipo de arquivo não é mais suportado no Gentoo.
O fato acima se deve através de um projeto do Gentoo chamado de GLEP.
GLEP (Gentoo Linux Enhancement Proposal, ou, Proposta de Aprimoramento do Gentoo Linux) consiste em manter, solicitar e coletar propostas para melhorar o Gentoo. Qualquer usuário ou desenvolvedor pode enviar uma GLEP sugestionando possíveis melhorias para o sistema. Este é um dos caminhos que temos para interagir com os mantenedores do Gentoo.
Através da GLEP37 foi definido que o arquivo virtuals (e pacotes que entram nesta categoria) não seriam mais suportados pelo Gentoo. Segundo os autores desta GLEP - Thomas de Grenier de Latour, Ciaran McCreesh, Brian Harring and Stephen Bennett - este tipo de sistema é descentralizado e não há maneiras do Portage encontrar um pacote, de categoria virtual, específico. Assim o Portage precisaria verificar em todos os pacotes por esta categoria específica. Isto, claramente, provoca uma diminuição significativa de desempenho. Sendo assim, foi criada a GLEP37 que aboliu o sistema/pacotes virtuals.
Este projeto não é parte exclusiva do Portage, porém achei melhor explicar um pouquinho mais sobre o que envolve o Gentoo e suas ferramentas. Neste caso específico, esta GLEP está ligada diretamente ao Portage, sendo assim, creio que coube sua explicação.
Simples e direto.
Parabéns.
----------------------------------------------------------------------------------------------------------------
http://24.media.tumblr.com/tumblr_m62bwpSi291qdlh1io1_250.gif
Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden