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).
Existem três arquivos
que devem ser editados para que o APT possa funcionar do modo
desejado: '/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.
SOURCES.LIST
O primeiro passo é configurar o
/etc/apt/sources.list para incluir além do seu típico repositório
stable, adicionar também o repositório testing e fontes do
repositório unstable que você deseja.
$ su
# sudo nano /etc/apt/sources.list
Adicione o seguinte conteúdo:
#Stable
deb
http://ftp.debian.org/debian/ stable main contrib non-free
deb-src
http://ftp.debian.org/debian/ stable main contrib non-free
#Testing
deb
http://ftp.debian.org/debian/ testing main contrib non-free
deb-src
http://ftp.debian.org/debian/ testing main contrib non-free
#Unstable
deb
http://ftp.debian.org/debian/ unstable main contrib non-free
deb-src
http://ftp.debian.org/debian/ unstable main contrib non-free
Para salvar no
nano, pressione Ctrl + O e depois Enter. E para sair, pressione Ctrl +
X.
PREFERENCES
O segundo passo é criar
e editar o arquivo /etc/apt/preferences.
Preferences é onde o apt
híbrido ocorre. Normalmente, a versão mais recente de um pacote
disponível ganha, mas vamos ignorar isso adicionando a prioridade do
repositório que nós desejamos que o apt busque determinado pacote
.
# sudo nano /etc/apt/preferences
No arquivo vazio recém-criado,
adicione o seguinte conteúdo:
Package: *
Pin: release
a=stable
Pin-Priority:
700
Package: *
Pin: release
a=testing
Pin-Priority:
650
Package: *
Pin: release
a=unstable
Pin-Priority:
600
Para salvar no
nano, pressione Ctrl + O e depois Enter. E para sair, pressione Ctrl +
X.
Observe os valores em
ordem decrescente. Veja que neste esquema híbrido, o repositório
estável (stable) tem maior prioridade de instalação de pacotes a
ser instalado preferencialmente, e em seguida, a ordem de prioridade
vai para o repositório testing e em seguida para o repositório
unstable.
Meu arquivo /etc/apt/preferences
é o que você vê acima.
APT.CONF
O terceiro e último passo, é a edição
do /etc/apt/apt.conf.
# sudo nano /etc/apt/apt.conf
Como o cache do apt é
pequeno demais para lidar com todos os pacotes que estão incluídos
no stable, testing e unstable. Devemos corrigir isso adicionando as
seguintes linhas no /etc/apt/apt.conf
APT::Default-Release
"stable";
APT::Cache-Limit
"10000000000";
Para
salvar no nano, pressione Ctrl + O e depois Enter. E para sair, pressione Ctrl + X.
Agora estamos prontos para atualizar
todas as listas com apt-get update. Isto irá adicionar os novos
repositórios à lista do apt.
# sudo apt-get update
# sudo apt-get clean
Aumentamos o cache do apt com um valor bem mais elevado, para evitar possíveis problemas:
# sudo apt-get update -o APT::Cache-Limit=10000000000
# sudo apt-get clean
Aumentamos o cache do apt com um valor bem mais elevado, para evitar possíveis problemas:
# sudo apt-get update -o APT::Cache-Limit=10000000000
INSTALAÇÃO
DE NOVOS PACOTES
# apt-get install
nome_do_pacote
Se o pacote estiver
presente no repositório stable, então este será o pacote que seu
sistema irá baixar e instalar. E se tal pacote existir apenas no
repositório unstable, então a é partir daí, do unstable que o pacote
será obtido.
E se o pacote existe em stable e unstable, mas queremos a partir da versão instável? Há
duas maneiras que nós podemos fazer isso, cada um com uma sintaxe um
pouco diferente, e cada um com um efeito ligeiramente diferente.
# apt-get -t unstable
install nome_do_pacote
Desta forma a versão
instável do pacote será instalado, onde o sistema tentará
satisfazer todas as dependências do repositório unstable. E caso
você queira instalar um pacote do repositóro testing, basta:
# apt-get -t testing
install nome_do_pacote
É isso aí!
Armado uma completa
sources.list e um mínimo de preferências, você pode ir em frente e
misturar e combinar entre as várias versões do Debian.
Considerações
Debian
com o APT híbrido configurado corretamente, o seu sistema estará
mais poderoso do que de costume, pois você poderá manter a
estabilidade de um Debian Stable e ainda por cima, instalar os
pacotes mais recentes através dos repositórios testing ou unstable
de forma segura, sem medo de quebrar o seu sistema, pois apesar de
seu sistema estar com repositórios de versões misturados, estes se
apresentam bem organizados com prioridades determinadas pelo
"/etc/apt/preferences", e é esse sistema de prioridades
que evita o seu sistema de quebrar, possibilitando assim, que você
tenha os repositórios: stable, testing e unstable na mesma
sources.list.
Referências
Apt-Pinning for Beginners; Disponível em: <>http://jaqque.sbih.org/kplug/apt-pinning.html>. Acessado em: 12 de Setembro de 2013.
Build-0.8-target-on-debian.txt; Disponível em: <>https://www.switch.ch/aai/docs/shibboleth/SWITCH/0.8/build-0.8-target-on-debian.txt>. Acessado em: 12 de Setembro de 2013.
Debian apt-get and cache limit; Disponível em: <>http://atmail.com/kb/2008/debian-apt-get-and-cache-limit/>. Acessado em: 12 de Setembro de 2013.
Hibridizando o APT; Forum Debian; Disponível em: <>http://wiki.forumdebian.com.br/index.php/Hibridizando_o_APT>. Acessado em: 12 de Setembro de 2013.
Excelente dica... precisei instalar uma versão antiga do PHP e só consegui alterando/criando o /etc/apt/preferences
ResponderExcluirexplorando sua sabedoria mestre, como poderia fazer para instalaro cinnamon mais recente (1.9) , usado o apt hibrido?
ResponderExcluirEssa versão do cinnamon ainda não chegou aos repositórios do debian, porém você pode usar o repositório do Linux Mint Debian Edition para instalar a versão mais recente e compatível possível do cinnamon para debian:
Excluir## Repositorio Linux Mint Debian Edition
# aptitude install linuxmint-keyring
deb http://packages.linuxmint.com/ debian main import backport upstream romeo
700, 650 e 600 poderiam ser trocados por qualquer número?
ResponderExcluircomo 3, 2 e 1?