Как перечислить доступные обновления бэкпорта

Я только что следовал Backbuts Ubuntu , чтобы активировать ручные порты, и у меня есть пара вопросов. Как я могу в командной строке (например, apt-cacher или aptitude):

  1. перечислить установленные пакеты, которые имеют доступные обновления бэкпорта? (Ранее я использовал apt-show-versions -u для обновляемых пакетов)
  2. перечислите все доступные пакеты бэкпорта (установлены или нет)?
12
задан 1 July 2013 в 17:07

3 ответа

  1. перечислите установленные пакеты, которые имеют доступные обновления бэкпорта

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

    aptitude search '~Abackports ?not(~S ~i ~Abackports)'
    
14
ответ дан 1 July 2013 в 17:07

Эта информация доступна в 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)

В нем перечислены все доступные пакеты бэкпорта и установленная версия, если она установлена.

0
ответ дан 1 July 2013 в 17:07

Править: После некоторого экспериментирования я нашел решение, которое работает отлично на меня! Это перечисляет только пакеты, которые имеют более новую версию в - репозиторий бэкпортов, и ничто больше (другие решения перечислили дополнительные пакеты.

Для списка доступных обновлений бэкпортов выполните эту команду:

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
4
ответ дан 1 July 2013 в 17:07

Другие вопросы по тегам:

Похожие вопросы: