Como listar as atualizações backport disponíveis

12

Acabei de seguir Backports do Ubuntu para ativar backports manuais e tenho algumas perguntas. Como posso, na linha de comando (por exemplo, apt-cacher ou aptitude ):

  1. lista os pacotes instalados que possuem atualizações de backport disponíveis? (Antes, eu usava apt-show-versions -u para pacotes atualizáveis)
  2. lista todos os pacotes backport disponíveis (instalados ou não)?
por ricab 28.06.2013 / 13:11

3 respostas

13
  1. lista de pacotes instalados que possuem atualizações backport disponíveis

    aptitude search '?and(~i, ~Araring-backports)'
    
  2. lista todos os pacotes backport disponíveis (instalados ou não)

    aptitude search '~Abackports ?not(~S ~i ~Abackports)'
    
por ricab 25.07.2013 / 23:36
6

Esta informação está disponível no Synaptic, que não é instalado por padrão, mas pode ser obtido com

sudo apt-get install synaptic

Selecionar Origin na barra lateral esquerda permitirá que os pacotes sejam pesquisados de onde eles vêm, como raring-backports / universe, bem como pacotes instalados localmente.

Se você estiver interessado em uma solução de linha de comando, eu hackeei um script python rápido e sujo para listar os pacotes nos backports, embora infelizmente seja um pouco lento.

from __future__ import print_function

import apt

def backport_version(package):
  if package.versions is None:
    return False
  for version in package.versions:
    for origin in version.origins:
      if origin.archive.endswith("backports"):
        return version.version
  return None

with apt.Cache() as cache:
  for package in cache:
    version = backport_version(package)
    if version is not None:
      print(package.fullname, version)
      if package.is_installed:
        print("    Installed:", package.installed.version)

Ele lista todos os pacotes backport disponíveis e a versão instalada, se estiver instalada.

    
por Jason Conti 28.06.2013 / 20:34
2

EDIT: Após algumas experiências, encontrei uma solução que funciona perfeitamente para mim! Ele lista apenas os pacotes que têm uma versão mais nova no repositório -backports e nada mais (as outras soluções listaram pacotes adicionais.

Para listar as atualizações de backports disponíveis, execute este comando:

aptitude search -t $(lsb_release -sc)-backports '~U ~Abackports'

Se você quiser que a lista também exiba a versão atual e mais recente, execute este comando:

aptitude search -t $(lsb_release -sc)-backports -F '%p %v -> %V' '~U ~Abackports'

Isso exibirá algo assim:

nvidia-settings               331.20-0ubuntu -> 346.59-0ubuntu
screen                        4.1.0~20120320 -> 4.2.1-2~ubuntu
yelp-xsl                      3.10.1-1       -> 3.12.0-1~ubunt

Se você não quiser memorizar este comando, adicione isso ao seu ~/.bashrc :

alias apt-list-backports="aptitude search -t $(lsb_release -sc)-backports -F '%p %v -> %V' '~U ~Abackports'"

Agora você só precisa escrever apt-list-backports !

Resposta original

Acabou de encontrar outro jeito:

apt-get upgrade -s -t $(lsb_release -sc)-backports

Isso simulará uma atualização e listará quais pacotes serão atualizados. Mas as atualizações para backports também estão incluídas (acho que atualizações normais também são mostradas).

Você também pode adicionar a opção -V para mostrar as versões para as quais os pacotes serão atualizados.

Para visualizar o changelog de um pacote nos backports, use:

apt-get changelog -t $(lsb_release -sc)-backports PACKAGE_NAME
    
por user180409 23.09.2014 / 11:56