Блокування оновлень ядра за допомогою dpkg


16

Я хотів би заблокувати всі оновлення ядра, що постачаються через дивовижну річ, що трапилася зі мною. (Я на похідному Ubuntu 12.04 amd64.)

Я хотів би, щоб блокувати всі оновлення встановлених ядер мінорній версії 3.2 до linux-headers, linux-headers-generic, linux-imageі linux-image-extraпакети. Проблема Я стикаюся, що всі вони мають версію , і якщо заблокувати певну версію, нічого не отримала , тому що нова версія буде встановлена (наприклад: якщо я блокую linux-image-3.2.0-35, linux-image-3.2.0-36не блокується , і все одно може бути встановлений з dist-upgradeз apt.)


Зауважте, що це більше не працює в Ubuntu 16.04. Потрібно отримати чорний список пакетів за допомогою цього посібника: help.ubuntu.com/lts/serverguide/automatic-updates.html
user199618

Відповіді:


17

Те, що вам потрібно використовувати, - це функція apt-get call холдингом

Ви можете це зробити за допомогою Synaptic або Dpkg. Ось як я би тримав своє ядро ​​за допомогою методу dpkg.

Спочатку перевірте своє ім’я зображення ядра

dpkg -l | grep linux-image

вихід для мене:

ii  linux-image-3.2.0-4-amd64              3.2.35-2                           amd64        Linux 3.2 for 64-bit PCs
ii  linux-image-amd64                      3.2+46                             amd64        Linux for 64-bit PCs (meta-package)

потім скажіть dpkg, щоб він утримував метапакет (загальна версія без будь-яких номерів версій)

echo linux-image-amd64 hold | sudo dpkg --set-selections

Потім ви можете перевірити це, за допомогою якого dpkg -l linux-image-amd64

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                       Version            Architecture       Description
+++-==========================-==================-==================-==========================================================
hi  linux-image-amd64          3.2+46             amd64              Linux for 64-bit PCs (meta-package)

Помітьте "привіт" внизу, h означає, що тримається, і я означає, що зараз встановлено. Цей пакет встановлений, але не оновлюватиметься.

Ви можете змінити це через

echo linux-image-amd64 install | sudo dpkg --set-selections

і знову можна перевірити через dpkg -l linux-image-amd64

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                       Version            Architecture       Description
+++-==========================-==================-==================-==========================================================
ii  linux-image-amd64          3.2+46             amd64              Linux for 64-bit PCs (meta-package)

Зауважте "ii", перший я означає, що цей пакет встановлений для встановлення, а другий, означає, що він зараз встановлений. Цей пакет встановлений і буде оновлений.

Більш детальну інформацію про ці прапори див. У man dpkgрозділі "Стани вибору пакунків".


1
Мої імена зображень тут . Чи хочу я заборонити "linux-image-generic"?
Naftuli Kay

1
@TKKocheran так; ви хочете затримати метапакет, а не конкретну версію.
cjh

Не працює - dpkg: попередження: пакет не знаходиться у статусі, ані наявна база даних у рядку 1: linux-image-amd64 dpkg: попередження: знайдені невідомі пакети; це може означати, що наявна база даних застаріла, і її потрібно оновлювати за допомогою методу інтерфейсу; див. FAQ < wiki.debian.org/Teams/Dpkg/FAQ >
M
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.