Um post prático e rápido

Eu estou no processo de escrever um post longo e chato em celebração aos meus 10 anos de Software Livre, mas enquanto ele não fica pronto, uma dica debiânica que pode ser útil!

Se você é como eu que mantém um sistema com Debian unstable e alguns pacotes da Debian experimental e está sempre chateado porque tem que ficar atualizando os pacotes na mão, e às vezes se esquece, aqui está a solução:

* instale o pacote apt-show-versions
* rode o script abaixo
* profit!

O script, versão fish:


for package in (apt-show-versions | grep /experimental | cut -d / -f 1); echo -e "Package: $package\nPin: release a=experimental\nPin-Priority: 500\n" >> /etc/apt/preferences; end

O script, versão bash:


for package in $(apt-show-versions | grep /experimental | cut -d / -f 1); do echo -e "Package: $package\nPin: release a=experimental\nPin-Priority: 500\n" >> /etc/apt/preferences; done

Nota: o script só adiciona a nova configuração ao final do arquivo de configuração; adapte para fazer o que você quer, e lembre de apagar as entradas antigas se for rodar de novo =)

O repositório experimental tem uma prioridade menor que um repositório normal, por padrão, e é por isso (e não por tratamento especial) que o APT prefere não atualizar para os pacotes que estão lá automaticamente. O que esse script faz é criar um arquivo de configuração de políticas do APT para que os pacotes que você tem instalados da experimental tenham uma prioridade igual a de um repositório comum, levando à atualização automática. Verifique com o comando apt-cache policy:

kov@abacate ~> apt-cache policy xserver-xorg-video-intel
xserver-xorg-video-intel:
  Installed: 2:2.5.1-1
  Candidate: 2:2.5.1-1
  Package pin: 2:2.5.1-1
  Version table:
 *** 2:2.5.1-1 500
          1 http://http.us.debian.org experimental/main Packages
          1 http://ftp.br.debian.org experimental/main Packages
        100 /var/lib/dpkg/status
     2:2.3.2-2+lenny5 500
        500 http://http.us.debian.org lenny/main Packages
        500 http://http.us.debian.org sid/main Packages
        500 http://ftp.br.debian.org lenny/main Packages
        500 http://ftp.br.debian.org sid/main Packages

4 thoughts on “Um post prático e rápido”

  1. Olá!

    Estou pensando em mudar da testing para a unstable e alguns pacotes da experimental, gostei muito do post, mas estou com uma dúvida que queria saber antes de testar.
    Pelo que percebi, apenas os pacotes (experimental) já instalados no meu sistema serão atualizados automaticamente, correto?
    Se sim, então a minha dúvida é a seguinte, se uma nova versão de um pacote experiemental já instalado em meu sistema é lançada, ele a atualizará automaticamente, mas e se esta nova versão do pacote já instalado depender de outro pacote que só tenha na experiemental e não esteja previamente instalado! Ele também instalará esta dependência da experiemental ou quebrará o sistema?

    Obrigado desde já!
    Abraços!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>