Usando backports da forma certa
Colaboração: Conrado Pinto Rebessi
Data de Publicação: 14 de Março de 2006
Como sabemos, a versão stable
do Debian (atual sarge), é a que deve ser usada
em um servidor, e é a que deve ser considerada fortemente para um desktop.
Apesar disto, muitas vezes precisamos, ou simplesmente queremos, versões
mais novas dos programas, que não estão disponíveis na versão stable.
Para isto, temos o repositório de backports
, que contém programas disponíveis
apenas para testing ou sid, compilados para stable.
Para usar o backports, normalmente fazemos:
Adicionamos ao /etc/apt/sources.list a linha:
deb http://www.backports.org/debian/ sarge-backports main
e fazemos:
apt-get update
apt-get install programa
Tudo funciona perfeitamente, e ficamos muito felizes por estar usando o
programa que queríamos.
Depois de algum tempo, começamos a perceber que alguns programas não conseguem
ser instalados, algumas dependências não-resolvidas começam a aparecer e etc...
O que aconteceu?
Como não fizemos especificação nenhuma e como o backports contém versões mais
atuais dos programas, cada vez q fizermos um apt-get upgrade
as versões
do backports acabam sendo instaladas, quebrando a consistência do sistema.
Como resolver isso?
Para este tipo de problemas existe o arquivo pouco conhecido
/etc/apt/preferences
. Primeiro, colocamos neste arquivo uma regra para
que o apt ignore o repositório backports, da seguinte forma:
Package: *
Pin: release a=sarge-backports
Pin-Priority: 200
Pronto, agora o seu sistema não vai instalar programas da release sarge-backports.
Aí vem a pergunta: Se eu não vou poder instalar nenhum programa, não seria
mais fácil simplesmente retirar a linha do sources.list?
Na verdade, podemos instalar pacotes da backports, mas precisaremos dizer
isso explicitamente. Para isto, existem 2 modos:
1) Incluir no /etc/apt/preferences quais pacotes queremos que sejam buscados
da backports.
Por exemplo, digamos que queremos instalar o pacote mutt da
backports. Incluímos então as seguintes linhas ao /etc/apt/preferences:
Package: mutt
Pin: release a=sarge-backports
Pin-Priority: 999
E depois, simplesmente executamos:
apt-get install mutt
Este processo é chamado de "pinar" (do inglês, to pin) um pacote.
O interessante é que a partir deste ponto, toda vez que instalarmos ou
atualizarmos o pacote "pinado", este virá da backports, transparentemente.
O problema é que, se o pacote "pinado" tiver dependências dentro da backports,
estas não serão instaladas, impossibilitando a instalação do pacote "pinado".
2) Instalar o pacote diretamente pelo apt-get, especificando qual distibuição
você quer usar:
apt-get install -t sarge-backports mutt
Desta forma, o pacote solicitado e todas as dependências que ele tiver dentro
da backports serão instados. Como nem tudo são flores, neste tipo de uso,
toda vez que quisermos um pacote vindo da backports, precisamos dizer
especificamente, passando a opção -t sarge-backports
para o apt-get.
Informações retiradas de http://www.backports.org/instructions.html