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

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

указать установленные пакеты с имеющимися обновлениями backport? (До этого я использовал apt-show-versions -u для обновляемых пакетов) список всех доступных пакетов backport (установленных или нет)?
1
задан 1 July 2013 в 18:07

7 ответов

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

sudo apt-get install synaptic

. Выбор Origin на левой боковой панели позволит просматривать пакеты, откуда они берутся, таких как 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 и установленная версия, если она установлена.

7
ответ дан 24 May 2018 в 20:33
  • 1
    Спасибо, вы подняли мое осознание в apt в python, что, безусловно, очень полезно. Для этого я бы проголосовал за вас, если бы мой представитель допустил это ... Но я скорее искал что-то встроенное. Когда официальная линия будет иметь ручные backports, я предполагаю, что должны быть некоторые более естественные способы получить эту информацию – ricab 1 July 2013 в 15:18
  • 2
    синаптический метод ответил бы на этот вопрос, но я больше искал apt-cache / aptitude based solution (cmd line) – ricab 1 July 2013 в 16:59
  • 3
    Или: aptitude search '? И (~ i, ~ Araring-backports)'; для установки пакетов backport – Jason Conti 1 July 2013 в 21:34
  • 4
    Спасибо за все отклики. Решение вашей способности разрешает 2. Для 1 мне пришлось исследовать немного больше, чтобы добраться до: aptitude search '~i ~Abackports ?not(~S ~i ~Abackports)'. Это решает 1 (при условии, что версии backports всегда выше). Я бы не получил его без вашей помощи, поэтому, если вы хотите сделать ответ, и я его выберу – ricab 2 July 2013 в 15:23
  • 5
    Можете добавить свой собственный ответ и выбрать его. Я в основном просто указывал документацию о пригодности. – Jason Conti 25 July 2013 в 00:00

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

Чтобы просмотреть доступные обновления backports, выполните следующую команду:

Если вы хотите, чтобы в списке также отображалась текущая и более новая версия, запустите эту команду:

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 (I думаю, что нормальные апгрейды тоже показаны).

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

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

apt-get changelog -t $(lsb_release -sc)-backports PACKAGE_NAME
2
ответ дан 24 May 2018 в 20:33

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

Чтобы просмотреть доступные обновления backports, выполните следующую команду:

Если вы хотите, чтобы в списке также отображалась текущая и более новая версия, запустите эту команду:

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 (I думаю, что нормальные апгрейды тоже показаны).

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

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

apt-get changelog -t $(lsb_release -sc)-backports PACKAGE_NAME
2
ответ дан 24 May 2018 в 20:33

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

Чтобы просмотреть доступные обновления backports, выполните следующую команду:

Если вы хотите, чтобы в списке также отображалась текущая и более новая версия, запустите эту команду:

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 (I думаю, что нормальные апгрейды тоже показаны).

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

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

apt-get changelog -t $(lsb_release -sc)-backports PACKAGE_NAME
2
ответ дан 24 May 2018 в 20:33

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

Чтобы просмотреть доступные обновления backports, выполните следующую команду:

Если вы хотите, чтобы в списке также отображалась текущая и более новая версия, запустите эту команду:

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 (I думаю, что нормальные апгрейды тоже показаны).

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

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

apt-get changelog -t $(lsb_release -sc)-backports PACKAGE_NAME
2
ответ дан 24 May 2018 в 20:33

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

Чтобы просмотреть доступные обновления backports, выполните следующую команду:

Если вы хотите, чтобы в списке также отображалась текущая и более новая версия, запустите эту команду:

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 (I думаю, что нормальные апгрейды тоже показаны).

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

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

apt-get changelog -t $(lsb_release -sc)-backports PACKAGE_NAME
2
ответ дан 24 May 2018 в 20:33

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

Чтобы просмотреть доступные обновления backports, выполните следующую команду:

Если вы хотите, чтобы в списке также отображалась текущая и более новая версия, запустите эту команду:

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 (I думаю, что нормальные апгрейды тоже показаны).

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

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

apt-get changelog -t $(lsb_release -sc)-backports PACKAGE_NAME
2
ответ дан 24 May 2018 в 20:33

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

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