Hibridizando o APT
De Fórum Debian Wiki
Se você usa o Debian Testing ou ainda o Stable, você provavelmente já se deparou com um dilema: como instalar programas de outra versão do Debian sem bagunçar o sistema de pacotes? Ou talvez você nem tenha se perguntado isso, mas instalou um pacote de uma versão diferente e quando deu aquele "apt-get upgrade" o sistema ruiu. O problema é que o Debian trabalha com um sistema de prioridades para os pacotes de cada versão. Se você mistura repositórios no seu sources.list sem se preocupar com isso, tentativas de upgrade sempre baixarão os pacotes mais recentes disponíveis, o que pode bagunçar seu sistema todo (afinal, se você usa Stable você não está usando os pacotes mais novos disponíveis, e sim os mais estáveis).
O que tentarei fazer aqui é dar uma breve descrição de como o próprio APT, sem muita complicação, pode resolver esse problema. Vou exemplificar para uma distribuição híbrida Testing/Unstable (o meu caso). Isso significa que estou usando uma instalação da Testing mas alguns pacotes que tenho instalados são da Unstable.
Índice de conteúdo |
Configurando o APT
Três arquivos devem ser editados para que o desejado possa funcionar: '/etc/apt/sources.list', para a adição de repositórios das distribuições que se deseja usar, '/etc/apt/preferences', para se configurar as prioridades de pacotes, e '/etc/apt/apt.conf', para selecionar a sua versão default.
Só o lembrete de sempre: fazer todas as operações abaixo como root!
/etc/apt/sources.list
Você já deve ter adicionados os repositórios da sua versão aqui. Então, basta acrescentar os repositórios da versão que deseja "hibridizar". No meu caso, eu tinha os repositórios da Testing e meu sources.list estava assim:
# Debian main distribution deb http://www.sft.if.usp.br/debian/ testing main non-free contrib deb-src http://www.sft.if.usp.br/debian/ testing main non-free contrib # Security updates deb http://security.debian.org/ testing/updates main contrib non-free deb http://secure-testing.debian.net/debian-secure-testing etch/security-updates main contrib non-free deb-src http://secure-testing.debian.net/debian-secure-testing etch/security-upd ates main contrib non-free # MPlayer deb http://www.debian-multimedia.org etch main
Só o que fiz foi acrescentar o repositório da Unstable, e ficou assim:
# Debian main distribution deb http://www.sft.if.usp.br/debian/ testing main non-free contrib deb-src http://www.sft.if.usp.br/debian/ testing main non-free contrib deb http://www.sft.if.usp.br/debian/ unstable main non-free contrib #acrescentei aqui! # Security updates deb http://security.debian.org/ testing/updates main contrib non-free deb http://secure-testing.debian.net/debian-secure-testing etch/security-updates main contrib non-free deb-src http://secure-testing.debian.net/debian-secure-testing etch/security-upd ates main contrib non-free # MPlayer deb http://www.debian-multimedia.org etch main
/etc/apt/apt.conf
Esse arquivo indica para o APT qual é a versão do Debian que você está usando. No meu caso, eu quero deixar a distribuição padrão como sendo Testing. Assim, o arquivo ficou da seguinte maneira:
APT::Default-Release "testing";
Somente essa linha é necessária para o processo funcionar. Caso você queira usar o stable, basta substituir "testing" por "stable" ali.
/etc/apt/preferences
Talvez esse arquivo ainda não exista na sua pasta /etc/apt. Nesse caso, crie o arquivo no seu editor de texto favorito e salve com o nome 'preferences' na pasta /etc/apt. No meu caso, eu quero fazer com que o APT só faça upgrade de um pacote caso apareça uma versão nova dele nos repositórios do Testing. Assim, deve-se dar uma prioridade menor para os pacotes da Unstable, a distribuição da qual só vou instalar uns poucos pacotes. Meu preferences ficou assim:
Package: *
Pin: release a=testing
Pin-Priority: 500
Package: *
Pin: release a=unstable
Pin-Priority: 50
Isso significa que todos os pacotes do release unstable terão sua prioridade igual a 50 e os do testing igual a 500. Quando o APT for atualizar ou instalar um pacote, ele sempre instalará os de maior prioridade. Assim, ele só instalará pacotes da unstable quando for explicitamente solicitado.
Instalando um pacote do release "híbrido"
O comando 'apt-get install' continuará funcionando como funcionava antes. Para que você possa instalar pacotes da versão que foi adicionada através desse processo, é preciso passar para ele um parâmetro que indica de qual release você está querendo instalar. Isso é feito através do parâmetro -t, como segue:
Para instalar o pacote gaim do release testing, você faria normalmente: $ apt-get install gaim Já para o mesmo pacote do release unstable: $ apt-get install -t unstable gaim
E é isso. É possível adicionar mais repositórios de outras versões, mas preferi fazer esse tutorial apenas com duas. Mais detalhes podem ser encontrados no tutorial Using APT with more than 2 sources.
