Як перелічити доступні оновлення для порту


12

Я щойно слідкував за Ubuntu Backports, щоб активувати ручні спинки, і у мене є кілька питань. Як я можу в командному рядку (наприклад, apt-cacherабо aptitude):

  1. перелічити встановлені пакети, які мають доступні оновлення для порту? (Раніше я використовував apt-show-versions -uдля оновлених пакетів)
  2. перелічити всі доступні пакети резервного пакета (встановлені чи ні)?

Відповіді:


14
  1. перелічити встановлені пакети, які мають доступні оновлення порту

    aptitude search '?and(~i, ~Araring-backports)'
    
  2. перелічити всі доступні пакети для репортажу (встановлено чи ні)

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

6

Ця інформація доступна в Synaptic, який не встановлений за замовчуванням, але його можна отримати,

sudo apt-get install synaptic

Вибір Origin на лівій бічній панелі дозволить переглядати пакунки від того, звідки вони беруться, наприклад, raring-backports / universe, а також локально встановлені пакети.

Якщо вас замість цього цікавить рішення командного рядка, я зламав швидкий і брудний сценарій python, щоб перелічити пакунки в спинах, хоча, на жаль, це досить повільно.

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)

У ньому перераховані всі наявні резервні пакети та встановлена ​​версія, якщо вона встановлена.


Дякую, ти підняв мою обізнаність щодо вміння пітона, що, безумовно, дуже корисно. За це я би проголосував за вас, якби мій представник дозволив це ... Але я швидше шукав щось вбудоване. Коли в офіційній лінійці є
резервні копії

синаптичний метод відповів би на питання, але я більше шукав рішення на основі apt-cache /
fitness

1
Або: пошук можливостей '? І (~ i, ~ Araring-backports)'; щоб встановити пакети для посилань
Jason Conti

3
дякую за всі відповіді. Ваші схильності вирішує рішення 2. Для 1, я повинен був дослідити трохи більше , щоб дістатися до: aptitude search '~i ~Abackports ?not(~S ~i ~Abackports)'. Це вирішує 1 (якщо припустити, що версії спинів завжди вище). Я б не отримав це без вашої допомоги, тому, якщо ви хочете зробити це відповідь, і я виберу її
ricab

1
Ви можете додати свою відповідь і вибрати її. Я здебільшого лише вказував на документацію щодо придатності.
Джейсон Конті

4

EDIT: Після деяких експериментів я знайшов рішення, яке ідеально працює для мене! У ньому перераховані лише ті пакунки, які мають нову версію в сховищі -backports, і більше нічого (в інших рішеннях вказані додаткові пакети.

Щоб переглянути список доступних оновлень спинок, виконайте цю команду:

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

Якщо ви хочете, щоб у списку також відображалася поточна та новіша версія, замість цього запустіть цю команду:

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

Це відобразить щось подібне:

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

Якщо ви не хочете запам'ятовувати цю команду, додайте її до свого ~/.bashrc:

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

Тепер вам залишається лише писати apt-list-backports!


Оригінальна відповідь

Щойно знайшов інший спосіб:

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

Це імітуватиме оновлення та перелічить, які пакунки будуть оновлені. Але також включені оновлення за спинками (я думаю, що показано і звичайні оновлення).

Ви також можете додати опцію -Vпоказу версій, до яких пакунки будуть оновлені.


Для перегляду журналу змін пакету в спинках використовуйте:

apt-get changelog -t $(lsb_release -sc)-backports PACKAGE_NAME
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.