UPDATE: Atualizei o post para refletir a remoção do repositório [unstable] do Arch.
Resolvi instalar alguns pacotes que estavam nos repositórios [testing] do Arch, mas não queria comprometer o meu sistema e nem queria que as novas atualizações fossem feitas a partir destes repositórios. Como ter que ficar comentando e descomentando os repositórios no pacman.conf daria muito trabalho, fui atrás de uma solução mais eficiente (e bonita).
Depois de um pouco de pesquisa descobri que evitar que o sistema seja comprometido ao usar tais repositórios não só é possível, como é bem fácil de se fazer. Basta você adicionar o [testing] no final do pacman.conf. Veja como funciona:
O Pacman consegue definir prioridades aos repositórios. Os repositórios que aparecem antes no arquivo de configuração do pacman têm maior prioridade, enquanto os que aparecem depois têm menor prioridade. Exemplo:
Suponha que no seu pacman.conf estejam habilitados, nesta ordem, os repositórios [core],[extra] e [testing] e você queira fazer uma atualização completa do sistema. Ao rodar o comando `pacman -Syu` de onde os pacotes serão baixados? Simples. Do [core] ou [extra]. Se o [testing] aparecesse primeiro no pacman.conf, os pacotes seriam baixados a partir dele.
Vamos a outro exemplo, desta vez mais prático:
Suponha que:
Ao tentar instalar o firefox o que vai acontecer é o seguinte:
O pacman pergunta ao [extra]:
- Ei [current], você tem o pacote o pacote firefox?
- Tenho sim.
- Legal. Me passa que vou instalá-lo.
Ao tentar instalar o thunderbird isso acontece:
O pacman pergunta ao [extra]:
- Ei [extra], você tem o pacote thunderbird?
- Não tenho.
- Sem problemas. Perguntarei ao próximo repositório então. Ei [testing], você tem o pacote thunderbird?
- Tenho sim, quer?
- Claro. Me passa ele que vou instalá-lo.
Ao tentar instalar o mypackage:
O pacman pergunta ao [core]:
- Ei [core], você tem o pacote mypackage?
- Tenho.
- Oba. Me passa que vou instalá-lo.
Agora você pode estar se perguntando: "Mas e se eu quiser instalar a versão mais atual do mypackage (a que está no [testing])?". Neste caso basta você executar o pacman da seguinte forma:
pacman -S testing/mypackage
De forma geral o comando é o seguinte:
pacman -S nome-do-repositorio/nome-do-pacote
Bem legal, não? Acho até que todos os gerenciadores de pacotes deveriam possuir um sistema de prioridades parecido com este. Isso nos poupa do trabalho de ficar comentando e descomentando repositórios no arquivo de configuração do gerenciador.