Veja um exemplo de arquivo /etc/apt/sources.list real que disponibiliza praticamente tudo que você precisa para uso num desktop Debian 5.0 Lenny.
Você PODE misturar ORDENADAMENTE pacotes de diferentes repositórios e seções num sistema Debian e manter a gerenciabilidade.
Misturar pacotes da versão Estável, Testing, Instável, Backports, Experimental num mesmo computador é possível dentro de alguns limites e com algum cuidado.
Para poder utilizar diferentes seções e repositórios corretamente num sistema Debian, sem quebrar dependências, é preciso usar a técnica de APT PINNING.
Primeiramente, deve ser criado ou editado um arquivo /etc/apt/preferences definindo "pesos" para repositórios, ou versões, ou até pacotes individuais.
IMPORTANTE SER CRIADO ANTES DE QUALQUER COMANDO APT, para não confundir dependências.
O "peso" de um pacote já instalado na máquina é definido como 100, independentemente do repositório de onde tenha sido instalado.
O APT atribui os pesos do /etc/apt/preferences somente para pacotes que SERÃO instalados. Portanto, mesmo versões mais novas em repositórios com peso inferior a 100 não seriam atualizadas automáticamente. Só com comando explícito similar a:
apt-get -t nome_repositorio_descrito_no_preferences_e_sources_list install nome_pacote
Uma limitação importante é que repositórios Testing, Unstable, Experimental continuam sempre evoluindo versões também dos compiladores e bibliotecas. Isso pode causar dependências impossíveis de resolver satisfatóriamente um certo tempo depois de lançada uma versão Estável. Sem mencionar que mesmo que resolvidas, podem baixar uma quantidade muito grande de novas versões de pacotes dependentes que anulariam as vantagens de uma distribuição Stable.
A melhor solução é procurar usar apenas os repositórios Lenny (é o Stable na data deste artigo), Volatile e Backports quando necessário.
Outro cuidado a tomar é com o nome "Stable" ou claramente "Lenny" (na data deste artigo). O comportamento pode ser diferente do esperado também dependendo da data de um NOVO lançamento, como do Squeeze, e da consistência entre nomes no /etc/apt/sources.list e /etc/apt/preferences.
Veja um exemplo de arquivo /etc/apt/preferences
Package: * Pin: release a=lenny Pin-Priority: 800 Package: * Pin: release a=testing Pin-Priority: 90 Package: * Pin: release a=unstable Pin-Priority: 50 Package: * Pin: release a=experimental Pin-Priority: 9 Package: * Pin: release a=lenny-backports Pin-Priority: 200 Package: glusterfs-client Pin: release a=testing Pin-Priority: 95 Package: glusterfs-server Pin: release a=testing Pin-Priority: 95 Package: libglusterfs0 Pin: release a=testing Pin-Priority: 95
Leia mais no wiki do debian. Especialmente sobre como controlar precisamente o upgrade de certos pacotes, atribuindo "pesos" a eles, como no exemplo. No caso dos pacotes de glusterfs, eles seriam atualizados apenas por novas versões do backports, ou lenny, ou por comando explícito "apt-get -t testing install glusterfs-server" por exemplo.
Para ter acesso aos pacotes binários não livres (como alguns drivers de rede e placas HBA), e outros programas não completamente livres, é preciso habilitar as seções "main", "non-free" e "contrib".
Depois de ter o arquivo /etc/apt/preferences, é preciso editar o arquivo /etc/apt/sources.list
deb http://ftp.br.debian.org/debian/ lenny main contrib non-free deb-src http://ftp.br.debian.org/debian/ lenny main contrib non-free deb http://security.debian.org/ lenny/updates main contrib non-free deb-src http://security.debian.org/ lenny/updates main contrib non-free deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free deb-src http://ftp.br.debian.org/debian/ testing main contrib non-free deb http://ftp.br.debian.org/debian/ testing main contrib non-free deb http://security.debian.org/ testing/updates main contrib non-free deb-src http://security.debian.org testing/updates main contrib non-free deb http://www.backports.org/debian lenny-backports main contrib non-free
Fazer imediatamente, como root, um
apt-get update
Em seguida:
apt-get install debian-backports-keyring
E fazer NOVAMENTE, como root
apt-get update
Com estas duas configurações, será possível instalar pacotes e ou versões que não existam na estável, sem quebrar dependências.
Só então se pode fazer atualização de sistema:
apt-get upgrade
Leia os links e a página wiki do apt pinning para aprender os comandos para instalar pacotes de repositórios ou versões específicas sem quebrar dependências.