Linux - отображать или обновлять обновления безопасности только с помощью apt

11

Есть ли способ перечислить или установить обновления безопасности только с помощью apt?

если я перечислю обновления с:

apt list --upgradable

Могу ли я также увидеть, не зная пакетов и библиотек, какие обновления являются соответствующими обновлениями безопасности .

и, кроме того, есть ли возможность применить их, пропуская любые другие, так что обновления, не относящиеся к безопасности , будут снова запрашиваться при следующем запуске apt upgrade?

натх
источник
1
Итак, у вас есть два вопроса: 1. печать обновлений безопасности, 2. обновление только выбранных пакетов, хорошо, я знаю, что есть 6 ссылок в sources.list, и два из них являются связанными с безопасностью ссылками репо, вы можете увидеть, какие обновляемые пакеты будут загружены из каждой ссылки с помощью следующей команды: sudo apt upgrade --no-upgrade --assume-no --print-uris
Brian SP2
1
но о втором вопросе, очевидно, вы можете выбрать один пакет для обновления с помощью следующей команды sudo apt upgrade --upgrade-only <имя пакета>, но это не работает для меня, извините
Brian SP2

Ответы:

7

aptне может (пока) предоставить информацию, которую вы ищете. aptitudeможет, хотя, хотя и несколько запутанно

aptitude search '~U ~ODebian' -F "%p %O"|awk '/Debian-Security/ {print $1}'

Он ищет все ~Uпакеты upgradedable ( ) в официальных репозиториях Debian ( ~ODebian) и отображает их имена пакетов ( %p) и «origin» ( %O). Последний фактически отображает метку репозитория , которая является «Debian-Security: 9 / stable» для репозиториев безопасности Debian 9. Вы получите список имен обновляемых пакетов из репозиториев безопасности.

Существует множество способов установки только обновлений безопасности, но ни один из них не идеален.

  • aptitudeТекстовый интерфейс позволяет применять только обновления безопасности, просто прокручивая заголовок «Обновления безопасности» (который должен быть первым) и нажимая +.

  • Вы можете подать список пакетов, извлеченных выше, aptчтобы установить обновления:

    aptitude search '~U ~ODebian' -F "%p %O" |
    awk '/Debian-Security/ {print $1}' |
    xargs apt-get install --only-upgrade
    

    Это имеет неприятный побочный эффект очистки маркера «автоматически установленного» на обновленных пакетах.

  • Вы можете использовать unattended-upgrades, чье действие по умолчанию - применять только обновления безопасности:

    unattended-upgrades -v
    

    Если вы не хотите, чтобы обновления устанавливались автоматически, вам нужно отключить unattended-upgradesежедневную работу cron.

Стивен Китт
источник
TUI в Aptitude, похоже, больше не представляет обновления безопасности отдельно - по состоянию на год назад или 16 апреля, а в настоящее время на 18.04. Кто-нибудь еще видел это?
Грег Белл
@ Грег, это все еще для меня (в Debian 10), и я не вижу каких-либо изменений в Ubuntu, которые могли бы повлиять на это. Возможно, обновления безопасности будут применены автоматически до того, как вы их увидите aptitude, например , unattended-upgrades...
Стивен Китт,
Нет, мои автоматические обновления ограничены только thunderbird, sshd и firefox. Что странно, так это то, что поиск способностей '~ U' находит много. Я вижу, что он все еще работает на aptitude 0.7.4; aptitude 0.8.10 - это то, с чем поставляется Ubuntu 18.04. Какая у вас версия?
Грег Белл
@Greg У меня 0.8.11, и он показывает обновления безопасности в своем собственном разделе . Дисплей настраивается, что может быть проблемой - когда вы нажимаете G, какой механизм группировки пакетов отображается? По умолчанию это task,status,section(subdirs,passthrough),section(topdir).
Стивен Китт
Тот же механизм группировки здесь. И я хочу, чтобы у меня не было ничего глупого.
Грег Белл,
5

Для отображения обновления безопасности вы можете использовать:

apt-get --just-print upgrade | grep -i security | awk '{print $2}' | awk '!seen[$0]++'

Чтобы применить только обновления безопасности для 1 пакета:

apt-get install --only-upgrade pckg_name

Чтобы применить только обновления безопасности из списка:

list=$(apt-get --just-print upgrade | grep -i security | awk '{print $2}' | awk '!seen[$0]++')
apt-get install --only-upgrade $list
GAD3R
источник