Warning: Invalid argument supplied for foreach() in /home/hugodoria/hdoria.archlinux-br.org/blog/wp-includes/classes.php on line 255
Habilitando os repositórios [testing] e [unstable] sem comprometer o seu ArchLinux | Hugo Doria

Habilitando os repositórios [testing] e [unstable] sem comprometer o seu ArchLinux

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:

  • O pacote firefox esteja no repositório [extra]
  • O pacote thunderbird esteja no [testing]
  • O pacote mypackage esteja no [core] e possua, também, uma versão mais atual no [testing]

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.



Leave a Reply