So listen Sie verfügbare Backport-Upgrades auf

12

Ich bin gerade Ubuntu Backports gefolgt , um manuelle Backports zu aktivieren, und ich habe ein paar Fragen. Wie kann ich in der Kommandozeile (zB apt-cacheroder aptitude):

  1. Liste installierter Pakete mit verfügbaren Backport-Upgrades? (Vorher habe ich apt-show-versions -ufür aufrüstbare Pakete verwendet)
  2. Alle verfügbaren Backport-Pakete auflisten (installiert oder nicht)?
Ricab
quelle

Antworten:

14
  1. Liste installierter Pakete mit verfügbaren Backport-Upgrades

    aptitude search '?and(~i, ~Araring-backports)'
    
  2. liste alle verfügbaren Backport-Pakete auf (installiert oder nicht)

    aptitude search '~Abackports ?not(~S ~i ~Abackports)'
    
Ricab
quelle
6

Diese Informationen sind in Synaptic verfügbar, das nicht standardmäßig installiert ist, sondern mit

sudo apt-get install synaptic

Durch Auswahl von Origin in der linken Seitenleiste können Pakete nach ihrem Ursprung durchsucht werden, z. B. nach Raring-Backports / Universum sowie nach lokal installierten Paketen.

Wenn Sie stattdessen an einer Befehlszeilenlösung interessiert sind, habe ich ein schnelles und unsauberes Python-Skript gehackt, um Pakete in Backports aufzulisten, obwohl dies leider ziemlich langsam ist.

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)

Es listet alle verfügbaren Backport-Pakete und die installierte Version auf, falls diese installiert ist.

Jason Conti
quelle
Danke, Sie haben mich auf Python aufmerksam gemacht, was auf jeden Fall sehr nützlich ist. Dafür würde ich dich wählen, wenn mein Repräsentant es zulässt ... Aber ich habe eher nach etwas Eingebautem gesucht. Wenn die offizielle Leitung manuelle Backports haben soll, muss es natürlichere Wege geben, um diese Information zu erhalten
Ricab
Die synaptische Methode würde die Frage beantworten, aber ich suchte mehr nach Apt-Cache /
Aptitude-
1
Oder: Eignungssuche '? Und (~ i, ~ Araring-backports)'; Backport-Pakete installiert bekommen
Jason Conti
3
danke für alle antworten. Ihre Eignung Lösung löst 2. Für 1, ich hatte ein bisschen mehr Forschung , um zu erhalten: aptitude search '~i ~Abackports ?not(~S ~i ~Abackports)'. Dies löst 1 (vorausgesetzt, die Backports-Versionen sind immer höher). Ich hätte es aber nicht ohne deine Hilfe bekommen. Wenn du also eine Antwort haben willst, werde ich es auswählen
Ricab
1
Vielleicht möchten Sie Ihre eigene Antwort hinzufügen und auswählen. Ich habe meistens nur auf die Eignungsdokumentation hingewiesen.
Jason Conti
4

EDIT: Nach einigem Experimentieren habe ich eine Lösung gefunden, die perfekt für mich funktioniert! Es werden nur die Pakete aufgelistet, die eine neuere Version im -backports-Repository haben, und nicht mehr (die anderen Lösungen haben zusätzliche Pakete aufgelistet.

Führen Sie den folgenden Befehl aus, um die verfügbaren Backports-Updates aufzulisten:

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

Wenn die Liste auch die aktuelle und neuere Version anzeigen soll, führen Sie stattdessen diesen Befehl aus:

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

Dies wird ungefähr so ​​aussehen:

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

Wenn Sie diesen Befehl nicht auswendig lernen möchten, fügen Sie Folgendes hinzu ~/.bashrc:

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

Jetzt musst du nur noch schreiben apt-list-backports!


Ursprüngliche Antwort

Gerade einen anderen Weg gefunden:

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

Dies simuliert ein Upgrade und listet die zu aktualisierenden Pakete auf. Aber die Upgrades für Backports sind auch enthalten (ich denke, normale Upgrades werden auch angezeigt).

Sie können auch die Option hinzufügen -V, um die Versionen anzuzeigen, auf die die Pakete aktualisiert werden.


Verwenden Sie zum Anzeigen des Änderungsprotokolls eines Pakets in den Backports Folgendes:

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

quelle