Як перевірити лише оновлення безпеки з командного рядка?


16

Чи є спосіб швидко перевірити наявність оновлень безпеки з командного рядка?

У моїй системі 12.04 під керуванням apt-get update20,0 МБ даних про доступні пакети кожного разу, коли я запускаю її, потрапляючи на багато сховищ по дорозі. Тоді я можу використовувати будь-який із описаних тут методів, щоб фактично виконати оновлення.

Моє запитання стосується лише виявлення доступності оновлень безпеки (тобто не виконання фактичного оновлення за допомогою apt-get / aptitude / тощо): чи є швидка перевірка, яку можна зробити з командного рядка, який забезпечує відповідь "так-ні" питання "чи доступні оновлення безпеки?". Я хотів би виконати це перед запуском тривалого apt-get update+ фактичного оновлення.

Я вважаю, що мені не потрібно завантажувати 20 Мб даних, щоб знати відповідь на це щодня.



Ви маєте на увазі apt-get updateотримання 20 МБ метаданих пакета?
Джеремі Керр

@JeremyKerr: так, це відбувається, якщо ви перебуваєте на головному (архів / us.archive) сервері, оскільки списки пакетів оновлюються кожні півгодини ... Є одна-дві довгі нитки про це в AU з міжнародних / низькошвидкісних користувачів, які дуже розчаровані з цього приводу.
Останній

@izx: цікаво, щойно пройшов тест за apt-get updateдопомогою австралійського дзеркала (я в .au); всього завантажено 1,3 Мб.
Джеремі Керр

Відповіді:


11

Моє запитання полягає лише у виявленні доступності оновлень безпеки

Так, це можливо зробити з застереженням, що нормальний apt-get updateвиконає повне оновлення під час наступного запуску (20 Мб означає, що це все одно робиться).

  • sudo sh -c 'grep precise-security /etc/apt/sources.list > /etc/apt/secsrc.list

  • І якщо потім виконати наступне, ви побачите, чи доступні оновлення безпеки ( зразок виводу ):

    sudo sh -c 'apt-get -o Dir :: Etc :: sourcelist = "secsrc.list" \
    -o Dir :: Etc :: sourceparts = "-" оновлення && \
    apt-get - не потребує оновлення "
    
  • Це повідомляє apt-getпро тимчасове використання спеціального списку джерел лише для безпеки, а потім запускається upgrade, автоматично відповідаючи ні.

  • Якщо такі є, запустіть належну apt-get updateверсію (що дозволить повністю оновити), а потім оновіть.

  • Ви можете зробити описаний вище скрипт bash, за допомогою простої перевірки коду grep / exit в кінці, якщо вам не здасться розбирати результат apt-get :)


це саме те, що я шукав, велике спасибі! :) одне швидке запитання: мій файл /etc/apt/secsrc.list не містить посилання на сховище партнерів (просто на "основне обмеження", "всесвіт" та " multiverse '), чи все одно мені буде повідомлено про оновлення безпеки пакетів у цьому сховищі?
laramichaels

@laramichaels, сховище партнерів містить всього п’ятнадцять пакунків , і це, в основному, власні бінарні файли, загорнуті в .deb. Поступові оновлення "безпеки" для них не випускаються, і я думаю, навіть регулярні оновлення нечасті (думаю, Adobe Reader). Я б просто додати власне сховище ( deb http://archive.canonical.com/ubuntu precise partner) до secsrc.listзаданого мініатюрного розміру (5 кб) файла партнера оновлення.
Останній

@laramichaels, я також додав більш детальну відповідь на ваше попереднє запитання щодо аспекту оновлень безпеки партнера. Прийнята відповідь була помилковою ІМО, тому, будь ласка, подивіться, коли у вас є вільний момент, і прийміть замість мене, якщо ви вважаєте, що це краще.
Останній

1
Для чого це біт? -o Dir::Etc::sourceparts="-"
ChocoDeveloper

2

Це може бути не саме запитання, але якщо ви вже запущені apt update, ви можете побачити, які оновлення безпеки доступні за допомогою:

sudo apt list --upgradable | grep -e "-security"

що дасть вам щось на кшталт:

libssl1.0.0/xenial-updates,xenial-security 1.0.2g-1ubuntu4.9 i386 [upgradable from: 1.0.2g-1ubuntu4.8]
openssl/xenial-updates,xenial-security 1.0.2g-1ubuntu4.9 i386 [upgradable from: 1.0.2g-1ubuntu4.8]
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.