Além das formas anteriores, há algumas outras criadas para, na palavra dos desenvolvedores, "ficar mais extravagante". São elas:
~ (til)
Significa casar qualquer pacote em revisão da versão base especificada. Assim, ainda pegando como exemplo o eix, temos as seguintes versões em teste atualmente:
~0.30.10 ~0.31.4 ~0.31.6 ~0.31.7 ~0.31.7-r1
Então nosso comando casaria com estas versões:
- ~app-portage/eix-0.31.4
- ~app-portage/eix-0.31.6
- ~app-portage/eix-0.31.7
- ~app-portage/eix-0.31.7-r1
! (ponto de exclamação)
Significa bloquear determinado pacote para não ser instalado ao mesmo tempo.
Ex:
!=app-portage/eix-0.31.4
Isto é muito útil quando tentamos instalar algum pacote e, por algum motivo, a instalação não ocorra por conta de pacotes bloqueados. Ou até mesmo durante uma atualização dos pacotes já instalados. Isto é normal acontecer pois as novas dependências podem se desencontrar, ou, um determinado pacote (entenda-se também dependência) não pode ser instalado ao mesmo tempo e no mesmo sistema. Mas estes casos, há o arquivo package.mask, que será falado em outro artigo.
!! (ponto de exclamação duplo)
Significa bloquear (mesmo) que um determinado pacote seja instalado e declarar, de forma explícita, que você não o quer por perto durante um bom tempo. Isto quer dizer que durante muitas atualizações, este pacote não aparecerá para ser instalado. Ex.:
!!=app-portage/eix-0.31.4
* (asterisco)
Casa qualquer versão disponível após o *. Ex.:
>=app-portage/eix-0.3*
O que poderá resultar nas seguintes versões: 0.30.4 / 0.30.10 / 0.30.11 / 0.31.4 / 0.31.6 / 0.31.7 / 0.31.7-r1
É possível casar pacotes específicos com SLOTS específicos. Falarei sobre SLOTS em outro artigo pois é tema extenso e muito legal.
O atom é muito útil para os arquivos de configuração do Portage. Por exemplo, caso eu não queira, de forma alguma, que uma versão específica do eix seja instalada, eu colocaria esta versão no arquivo package.mask exatamente da mesma forma que usaria para instalar.
Possivelmente farei um artigo sobre estes arquivos especiais para o Portage.