Apt Pinning

Tags: — June 13, 2007 @ 12:40 pm

Com o lançamento do Debian Etch, e as Recentes atualizações do E17,estive com um pequeno problema… Como atualizar meus pacotes do E17 sem atualizar todo meu sistema para o Debian Unstable…

Com ajuda do pessoal do canal #debian@irc.freenode.net do irc encontrei um ótima solução. Trata-se do Apt Pinning

“Pinning permite que você rode certos pacotes de uma versão (estável, teste ou instável) sem a necessidade de atualizar todo seu sistema”

O Apt Pinning consistem em definir prioridades para cada versão de cada pacote, ou de todos os pacotes. Assim aversão de maior prioridade sempre será a usada, a menos que os pacotes a serem instalados não existam nesta versão. O Pinning também funciona para manter atualizada a versão de um pacote instalado anteriormente, sem precisar atualizar os demais pacotes, a não ser sua dependências (:-| confuso? continue lendo…) .

No meu caso, minha intenção é manter todo meu sistema como o Debian Etch, atual estável, com excessão do Enlightenment DR17, instável. Segue meu sources.list:

arquivo ‘/etc/apt/sources.list’

## Debian official ##
deb http://ftp.debian.org/debian/ stable main contrib non-free
deb http://ftp.debian.org/debian/ testing main contrib non-free
deb http://ftp.debian.org/debian/ unstable main contrib non-free

## Atualizacoes de seguranca – para stable e testing, apenas ##
deb http://security.debian.org/ stable/updates main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free

##Enlightenment Window Manager 0.17 ##
deb http://edevelop.org/debian/ unstable main contrib non-free

Com esta configuração do ‘/etc/apt/sources.list’ nós estaría-mos instalando sempre a versão unstable dos pacotes, a menos que no momento da instalação fosse definida explicitamente a versão a ser usada: ‘# aptitude -t testing install <package_name>‘, pois a prioridade é sempre a última versão.

Para definir a prioridade para outra versão que não a ultima devemos configurar outro arquivo, o ‘/etc/apt/preferences’, neste arquivo podemos configurar a versão prioridade para cada pacote, ou para todo o sistema (utilizando-se um *, como no exemplo). O ‘Pin-Priority’ é um valor numérico que define a prioridade da versão, quanto maior o valor, maior a prioridade. Caso este arquivo não exista, apenas crie um novo.

Em meu ‘/etc/apt/preferences’ eu defini as prioridades na seguinte ordem: stable, testing e unstable:

arquivo ‘/etc/apt/preferences’

Package: *
Pin: release a=stable
Pin-Priority: 900

Package: *
Pin: release a=testing
Pin-Priority: 800

Package: *
Pin: release a=unstable
Pin-Priority: 700

Após configurar os arquivos corretamente atualize seu apt: ‘#aptitude update‘.

Com está configuração, todos seu pacotes serão mantidos na versão estável. Se um pacote não existe nesta versão ele será instalado na versão teste, caso também não exista na teste, será instalada a versão instável.

Assim, ao executar ‘#aptitude -t unstable install e17‘ será instalada a versão instável do Enlightenment, e suas dependências serão também atualizadas para a versão instável, conforme necessário. Ao executar ‘#aptitude upgrade‘ seus pacotes estáveis serão atualizados para última versão estável, quando necessário, e seus pacotes teste , ou instáveis, serão atualizações para suas respectivas versões.

Nota:

“Instalando pacotes de distribuições mais recentes, instalará suas bibliotecas também, o que pode acabar com você tendo as desvantagens da versão stable (programas desatualizados) assim como as desvantagens das versões testing e unstable (suporte não tão bom quanto na versão stable, bugs) sem as vantagens de ambos”

Como pode-se ver, pelo texto acima, extraído da wiki Debian, não é recomendado mesclar versões, contudo, em alguns casos, é preferível atualizar apenas os pacotes desejados do que todo seu sistema. Minha dica é: “se está funcionando bem, deixe estar, a menos que necessite da nova versão de algum programa”.

Fontes: http://wiki.debian.org/AptPinning

If you enjoyed this post, make sure you subscribe to my RSS feed!

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment