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

10

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

  1. список установленных пакетов с имеющимися обновлениями backport? (До этого я использовал apt-show-versions -u для обновляемых пакетов)
  2. список всех доступных пакетов backport (установленных или нет)
задан ricab 28.06.2013 в 11:11
источник

3 ответа

11
  1. список установленных пакетов с имеющимися обновлениями backport

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

    aptitude search '~Abackports ?not(~S ~i ~Abackports)'
    
ответ дан ricab 25.07.2013 в 21:36
источник
7

Эта информация доступна в Synaptic, которая не установлена ​​по умолчанию, но может быть получена с помощью

sudo apt-get install synaptic

Выбор Происхождение на левой боковой панели позволит просматривать пакеты по их месту, например, raring-backports / universe, а также локально установленные пакеты.

Если вы заинтересованы в решении командной строки, я взломал быстрый и грязный скрипт python для отображения пакетов в backports, но, к сожалению, он довольно медленный.

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)

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

    
ответ дан Jason Conti 28.06.2013 в 18:34
2

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

Чтобы просмотреть доступные обновления 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

Это будет имитировать обновление и перечислить, какие пакеты будут обновлены. Но обновления для backports также включены (я думаю, нормальные обновления также показаны).

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

Чтобы просмотреть список изменений пакета в backports, используйте:

apt-get changelog -t $(lsb_release -sc)-backports PACKAGE_NAME
    
ответ дан user180409 23.09.2014 в 09:56