Existem basicamente três tipos de classificação de programas no Gentoo, que são: programas estáveis (+ stable) –passaram por uma bateria de testes e estão aptos a serem colocados em produção–, programas instáveis (~ unstable) –são considerados estáveis pelos seus desenvolvedores, mas não foram excessivamente testados pela equipe do Gentoo para serem liberados em produção– e por fim os programas “super instáveis” (M hardmask) –são pacotes que ou foram colocados no portage recentemente e não passaram para a fase de teste ou são pacotes que ainda estão em desenvolvimento e não existe previsão de sair uma versão final ou dezenas de outras possibilidades–. O interessante é entender que programas instáveis estão disponíveis para instalação, mas a equipe do Gentoo não recomenda a instalação dos mesmos, a não ser que você saiba o que está fazendo e entenda os riscos que está correndo.
Os programas que possuem versões que estão na fase de teste, são conhecidos com um til (~) na frente da versão, este til indica que o programa para o seu produtor foi considerado estável, mas para a equipe do Gentoo ainda está em teste e aguardando para que seja liberado na base de programas estáveis.
(Exemplo de um programa que possui versões instáveis(~), em fase de teste)
[I] kde-base/kdebase-meta
Available versions:
(4.3) 4.3.3 (~)4.3.4 4.3.5
(4.4) (~)4.4.0
{aqua kdeprefix policykit semantic-desktop}
Installed versions: 4.4.0(4.4)(21:30:36 10-02-2010)(-aqua -kdeprefix -policykit)
Homepage: http://www.kde.org/
Description: Merge this to pull in all kdebase-derived packagesOs programas que são considerados como super instáveis, são conhecidos com um [M] de mascarado, localizado na frente da versão. Os que apresentam 9999 são considerados mais instáveis.
(Exemplo de um programa que possui versão hardmask[M]~, super instáveis)
* www-client/chromium
Available versions: [M]~5.0.307.5 ~5.0.307.7 ~5.0.307.9 [M]~5.0.322.2 **9999 {ffmpeg plugins-symlink}
Homepage: http://chromium.org/
Description: Open-source version of Google Chrome web browserAmbos os programas, (~)unstable e [M]~hardmask, não podem ser instalados se você estiver construído e ou utilizando o seu Gentoo em uma base estável. Esses programas possuem uma máscara que deverá ser removida para que a instalação do programa alvo possa ser concretizada. Existem várias maneiras de se fazer isso, manualmente ou utilizando ferramentas para auxílio. Estarei mostrando a ferramenta autounmask que faz praticamente todo o trabalho braçal para você.
Por que utilizar o autounmask?
Posso citar alguns motivos como, suprir dependências, organização dos arquivos, facilidade de uso etc.
Comece criando o diretório que irá armazenar os arquivos do autounmask e mais 3 arquivos que o autounmask irá utilizar para gravar algumas configurações, caso precise.
mkdir /etc/portage/package.keywords
(Todos os arquivos principais mascarados serão jogados para esse diretório criado, com o nome de autounmask-[nome do programa])
cd /etc/portage/ && touch package.mask; touch package.unmask; touch package.use
(Instalação do autounmask)
emerge -av autounmask
Tudo pronto e “configurado”, pois de configuração mesmo não teve nada. Agora o autounmask já pode ser utilizado. Veja um exemplo de como instalar um programa mascarado. Eu particularmente utilizo apenas de dois jeitos, com a opção -n(mantem sempre a última versão do programa, não precisando utilizar o autounmask quando sair uma nova versão) e sem opção, caso queira desmascarar apenas uma versão do programa e não as futuras. Um exemplo de utilizar sem a opção ‘-n’, seria a instalação de uma determinada versão do kernel.
Exemplo de instalação de um programa:
Primeiro, com o comando eix(o mesmo deve estar instalado), verifico se o programa está todo mascarado e se possui alguma versão que não esteja:
eix emesene
* net-im/emesene [1]
Available versions: ~1.6.0 {video}
Homepage: http://www.emesene.org
Description: Platform independent MSN Messenger client written in Python+GTK
[1] /usr/local/portageNota-se que o programa, emesene, só possui uma versão e está mascarada. Caso tente instalar esse programa, será avisado que o mesmo encontra-se mascarado e não poderá ser instalado até que sua máscara seja retirada.
emerge -av emesene These are the packages that would be merged, in order: Calculating dependencies... done! !!! All ebuilds that could satisfy "net-im/emesene" have been masked. !!! One of the following masked packages is required to complete your request: - net-im/emesene-1.6.0 (masked by: ~amd64 keyword)
Como pode-se notar, o portage não deixou o programa ser instalado porque está mascarado, “dizendo” que todos os pacotes que poderiam satisfazem a dependência do programa que estamos tentando instalar, foi mascarado e “diz” que um dos programas mascarados(neste caso o próprio emesene) é necessário para completar a instalação. Basta então remover a mascara deste programa para prosseguir ou conseguir instalar tal programa mascarado. Para isso será utilizado o autounmask.
Utilização do autounmask:
autounmask [referência do programa]/programa-versão
(Sempre indique a versão que deseja desmascarar, como indicado abaixo)
autounmask -n net-im/emesene-1.6.0
autounmask version 0.27 (using PortageXS-0.02.09 and portage-2.1.7.17)
* Using repositories:
/usr/portage
/usr/local/portage
* Using package.keywords file: /etc/portage/package.keywords/autounmask-emesene
* Using package.unmask file: /etc/portage/package.unmask
* Using package.use file: /etc/portage/package.use
* Unmasking net-im/emesene-1.6.0 and its dependencies.. this might take a while..
* Added 'net-im/emesene ~amd64' to /etc/portage/package.keywords/autounmask-emesene
* done!Como pode notar, o emesene foi adicionado com sucesso no diretório package.keyword, o qual foi criado anteriormente e adicionou as configurações de retirar a mascara do emesene, no arquivo “autounmask-emesene”. Se rodarmos novamente o comando emerge para a instalação do emesene, veja o que acontece!
emerge -av emesene These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] net-im/emesene-1.6.0 USE="video" 0 kB [1] Total: 1 package (1 new), Size of downloads: 0 kB Portage tree and overlays: [0] /usr/portage [1] /usr/local/portage Would you like to merge these packages? [Yes/No]
O programa encontra desmascarado e pronto para ser instalado.