Come elencare gli aggiornamenti del backport disponibili


12

Ho appena seguito Ubuntu Backports per attivare i backport manuali e ho un paio di domande. Come posso, nella riga di comando (es. apt-cacherO aptitude):

  1. elencare i pacchetti installati con aggiornamenti di backport disponibili? (Prima, ho usato apt-show-versions -uper pacchetti aggiornabili)
  2. elencare tutti i pacchetti di backport disponibili (installati o meno)?

Risposte:


14
  1. elenca i pacchetti installati con aggiornamenti di backport disponibili

    aptitude search '?and(~i, ~Araring-backports)'
    
  2. elenca tutti i pacchetti di backport disponibili (installati o meno)

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

6

Queste informazioni sono disponibili in Synaptic, che non è installato per impostazione predefinita ma può essere ottenuto con,

sudo apt-get install synaptic

Selezionando Origin nella barra laterale di sinistra, i pacchetti verranno sfogliati da dove provengono, come raring-backport / universo, così come i pacchetti installati localmente.

Se invece sei interessato a una soluzione a riga di comando, ho hackerato insieme uno script Python rapido e sporco per elencare i pacchetti nei backport, anche se purtroppo è piuttosto 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)

Elenca tutti i pacchetti di backport disponibili e, se installata, la versione installata.


Grazie, hai aumentato la mia consapevolezza ad apt in Python, che è sicuramente molto utile. Per questo ti voterei se il mio rappresentante lo permettesse ... Ma stavo piuttosto cercando qualcosa di integrato. Quando la linea ufficiale deve avere backport manuali, suppongo ci debbano essere alcuni modi più naturali per ottenere queste informazioni
ricab

il metodo sinaptico avrebbe risposto alla domanda, ma stavo cercando di più su una soluzione basata su apt-cache / aptitude (linea cmd)
ricab

1
Oppure: ricerca attitudinale '? E (~ i, ~ Araring-backports)'; per ottenere i pacchetti di backport installati
Jason Conti,

3
Grazie per tutte le risposte. I suoi risolve soluzione attitudinali 2. Per 1, ho avuto alla ricerca di un po 'di più per arrivare a: aptitude search '~i ~Abackports ?not(~S ~i ~Abackports)'. Questo risolve 1 (supponendo che le versioni dei backport siano sempre più alte). Non l'avrei ottenuto senza il tuo aiuto però, quindi se vuoi farne una risposta e la selezionerò
ricab

1
Potrebbe voler aggiungere la tua risposta e selezionarla. Principalmente ho appena sottolineato la documentazione attitudinale.
Jason Conti,

4

EDIT: Dopo alcuni esperimenti, ho trovato una soluzione che funziona perfettamente per me! Elenca solo i pacchetti che hanno una versione più recente nel repository -port e niente di più (le altre soluzioni hanno elencato pacchetti aggiuntivi.

Per elencare gli aggiornamenti dei backport disponibili, eseguire questo comando:

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

Se si desidera che l'elenco visualizzi anche la versione corrente e più recente, eseguire invece questo comando:

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

Questo mostrerà qualcosa del genere:

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 non vuoi memorizzare questo comando, aggiungi questo al tuo ~/.bashrc:

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

Ora devi solo scrivere apt-list-backports!


Risposta originale

Ho appena trovato un altro modo:

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

Questo simulerà un aggiornamento ed elencherà quali pacchetti verrebbero aggiornati. Ma sono inclusi anche gli aggiornamenti ai backport (penso che vengano mostrati anche gli aggiornamenti normali).

È inoltre possibile aggiungere l'opzione -Vper mostrare le versioni a cui i pacchetti verrebbero aggiornati.


Per visualizzare il log delle modifiche di un pacchetto nei backport, utilizzare:

apt-get changelog -t $(lsb_release -sc)-backports PACKAGE_NAME
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.