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 2: Portage - o coração do Gentoo
O Portage é escrito, parte em Python, parte em Bash Script. Isto quer dizer que para que o Portage e suas ferramentas possam trabalhar, é necessário termos algum interpretador do Python e do Bash no sistema. Assim como a maioria dos pacotes/softwares, não apenas do Gentoo, mas de todas as distros, o Portage também possui dependências necessárias. São apenas duas, porém, são definidas como Hard Dependency pois são de vital importância para o funcionamento desta ferramenta. Estas duas dependências são o Python e o Bash. As versões estáveis destes já vem no tarball do Portage para facilitar nossa vida.
Assim como todos os outros pacotes do Gentoo, o Portage também possui o seu próprio ebuild. Vamos dar uma olhada no conteúdo: Aqui podemos verificar a versão do EAPI (explicação nas próximas páginas sobre EAPI), compatibilidade entre as versões do Python, arquiteturas suportadas, USE flags etc.
Vejamos as versões estáveis do Python, no Gentoo: Das versões do Python listadas acima, temos o seguinte status:
Apenas as versões 2.7 e 3.4 estão habilitadas por default para as variáveis PYTHON_TARGETS e PYTHON_SINGLE_TARGETS. Sendo que a versão 2.7 do Python é a menor requerida.
Além do código fonte e do ebuild, o Portage consiste em um aglomerado de arquivos que formam o todo, que ajudam a gerenciar o sistema, pacotes, compilações, dependências, preferências dos usuários etc. Incluso na configuração de cada arquivo, há variáveis de ambiente, constantes, diversas otimizações, entre tantas outras possibilidades.
A árvore de diretórios do Portage é definida da seguinte forma:
Cada arquivo que veremos a seguir, constrói um ponto do Portage, mescla configurações etc. Vamos dar uma olhada nestes arquivos e em suas configurações.
Assim como todos os outros pacotes do Gentoo, o Portage também possui o seu próprio ebuild. Vamos dar uma olhada no conteúdo: Aqui podemos verificar a versão do EAPI (explicação nas próximas páginas sobre EAPI), compatibilidade entre as versões do Python, arquiteturas suportadas, USE flags etc.
Vejamos as versões estáveis do Python, no Gentoo: Das versões do Python listadas acima, temos o seguinte status:
- Current stable - 2.7 e 3.4: ambas as versões do Python, estáveis atualmente, tem suporte para todas as implementações e são liberadas para todos os usuários por default.
- Supported - 3.3: esta versão é suportada atualmente porém não está entre as versões para ser utilizada nas variáveis PYTHON_TARGETS e PYTHON_SINGLE_TARGETS. Além da versão 3.3 do Python, atualmente há suporte (supported) para a versão 3.5 também.
Apenas as versões 2.7 e 3.4 estão habilitadas por default para as variáveis PYTHON_TARGETS e PYTHON_SINGLE_TARGETS. Sendo que a versão 2.7 do Python é a menor requerida.
Além do código fonte e do ebuild, o Portage consiste em um aglomerado de arquivos que formam o todo, que ajudam a gerenciar o sistema, pacotes, compilações, dependências, preferências dos usuários etc. Incluso na configuração de cada arquivo, há variáveis de ambiente, constantes, diversas otimizações, entre tantas outras possibilidades.
A árvore de diretórios do Portage é definida da seguinte forma:
- Categoria, como por exemplo: app-portage, www-client;
- Categoria metadata, por exemplo: app-admin/metadata.xml
- Diretórios de pacotes, por exemplo: sys-apps/busybox
- Pacotes metadata, por exemplo: sys-apps/busybox/metadata.xml
- Pacotes Manifest, por exemplo: sys-apps/busybox/Manifest
- Ebuilds, por exemplo: app-eselect/eselect-ctags/eselect-awk-0.2.ebuild
- Diretórios de arquivos de pacotes, ex: app-editors/vim/files
- Pequenos pactches e outros arquivos, ex: app-editors/vim/files/vim-completion
- Diretórios Eclasses, ex: eclass/
- Diretórios de licensas, ex: licenses/
- Diretórios de perfis, ex: profiles/
- Vários arquivos de configuração e controle, ex: categories, info_pkgs, info_vars, package.mask, use.desc
- Diretório de atualizações, ex: profiles/updates/
- Arquivos de atualizações, ex: profiles/updates/1Q-2016
- Perfil principal em cascata
- Diretório de scripts, ex: scripts/
- Diretório de Distfiles, ex: distfiles/
- Diretório de pacotes, ex: packages/
Cada arquivo que veremos a seguir, constrói um ponto do Portage, mescla configurações etc. Vamos dar uma olhada nestes arquivos e em suas configurações.
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