web-dev-qa-db-fra.com

Comment lister les mises à jour de backport disponibles

Je viens de suivre Backports Ubunt pour activer les backports manuels et j'ai quelques questions. Comment puis-je, dans la ligne de commande (par exemple, apt-cacher ou aptitude):

  1. liste les paquets installés qui ont des mises à jour de backport disponibles? (Avant, j’utilisais apt-show-versions -u pour les paquets pouvant être mis à jour)
  2. lister tous les paquets de backport disponibles (installés ou non)?
12
ricab
  1. liste les paquets installés ayant des mises à jour de backport disponibles

    aptitude search '?and(~i, ~Araring-backports)'
    
  2. lister tous les paquets de backport disponibles (installés ou non)

    aptitude search '~Abackports ?not(~S ~i ~Abackports)'
    
13
ricab

Cette information est disponible dans Synaptic, qui n’est pas installé par défaut mais peut être obtenu avec,

Sudo apt-get install synaptic

En sélectionnant Origin dans la barre latérale gauche, vous pourrez parcourir les paquetages d’où ils viennent, tels que raring-backports/universe, ainsi que les paquetages installés localement.

Si vous êtes plutôt intéressé par une solution en ligne de commande, j'ai piraté un script python rapide et sale pour répertorier les packages dans les backports, bien que ce soit malheureusement assez lent.

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)

Il répertorie tous les packages de backport disponibles, ainsi que la version installée, le cas échéant.

6
Jason Conti

EDIT: Après quelques expériences, j'ai trouvé une solution qui me convient parfaitement! Il répertorie uniquement les packages qui ont une version plus récente dans le référentiel -backports, et rien de plus (les autres solutions ont répertorié des packages supplémentaires.

Pour répertorier les mises à jour de backports disponibles, exécutez cette commande:

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

Si vous souhaitez que la liste affiche également la version actuelle et la version la plus récente, exécutez cette commande à la place:

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

Cela affichera quelque chose comme ceci:

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

Si vous ne voulez pas mémoriser cette commande, ajoutez ceci à votre ~/.bashrc:

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

Il ne vous reste plus qu'à écrire apt-list-backports!


Réponse originale

Je viens de trouver un autre moyen:

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

Cela simulera une mise à jour et listera les paquets qui seraient mis à jour. Mais les mises à niveau des backports sont également incluses (je pense que les mises à niveau normales sont également présentées).

Vous pouvez également ajouter l'option -V pour afficher les versions vers lesquelles les packages seront mis à niveau.


Pour afficher le journal des modifications d'un paquet dans les backports, utilisez:

apt-get changelog -t $(lsb_release -sc)-backports PACKAGE_NAME
3
user180409