Стратегия борьбы со все более и более плохим QA от Canonical?
Мой installed (local or obsolete)
категория пополняется, потому что в последнее время Canonical выпускает обновления, а затем возвращает их обратно. Это произошло с двумя ядрами в недавнем прошлом, и это случилось снова с cups
этим утром. Я использую Ubuntu около трех лет, и я не помню, чтобы это происходило так часто, как в этом году.
Итак, как с этим рационально бороться?
Я думал об установке обновлений только один раз в неделю, но это не защитило бы от установки того плохого обновления, которое они выпустили прямо перед тем, как я проверил эту неделю.
Хорошая стратегия - устанавливать обновления только на выходных? Похоже, что системные обновления не часто выходят по выходным. Я полагаю, что они могут опубликовать плохое обновление в пятницу днем и вытащить его в понедельник утром.
Или как-то не устанавливать обновления, пока они не будут вытеснены в течение определенного периода времени - например, двух дней? Есть ли автоматизированный способ сделать это?
Редактировать: одна из затронутых систем работает Lubuntu 16.04 с linux-generic
ядро, другой работает Lubuntu 16.04 с linux-generic-hwe-16.04
ядро. Оба были затронуты cups
обновление версии 2.13-4ubuntu0.2, которое было удалено, а затем отозвано 27 марта 2017 года. linux-generic
машина получила обновление ядра версии 4.4.0.67.12, которое впоследствии было отозвано. Это обновление также осиротело snapd
версия 2.23.1 linux-generic-hwe-16.04
машина получила версию ядра 4.8.0.42.14, которая была тогда осиротела.
3 ответа
Радикальная альтернатива - перейти на Debian Stable, а не на любую *buntu или ее производную, потому что Debian Stable прошел полный процесс обеспечения качества, тогда как Ubuntu является производным от Debian Testing, который должен пройти некоторый путь, прежде чем он станет стабильным.
Почти все знания могут быть переданы напрямую, но Debian не предоставит вам все последние косметические "навороты". Тем не менее, он имеет больше пакетов в своем хранилище...
Я перешел на Debian, в моем случае с KDE, из Kubuntu, около 5 лет назад, когда у меня были похожие проблемы. Но все сводится к личному выбору.
Откатить обновление пакета до более старой версии
Если у вас есть номер версии или целевой выпуск, apt-get поддерживает выбор конкретной версии или целевого выпуска.
Установить aptitude
sudo apt-get install aptitude
Показать старые версии пакета.
aptitude versions <package-name> | less # use less to display only the top of the list of versions
Откатить выбранный пакет до старой версии.
sudo apt-get -t=<target release> install <package-name> # target release is old version
Удалите неверное обновление выбранного пакета.
sudo apt-get -t=<target release> remove <package-name> # target release is new version
Запретить автоматическое обновление версии откатанного пакета с помощью
apt-mark hold
,apt-mark hold
используется, чтобы пометить пакет как задержанный, что предотвратит автоматическую установку, обновление или удаление пакета.sudo apt-mark hold <package-name>
Откатить обновление ядра до более старой версии
Выполните те же шаги, что и в предыдущем разделе, за исключением того, что вы должны выполнить дополнительные шаги тестирования, чтобы у вас все еще была установлена версия ядра, которая работает перед удалением поврежденного пакета ядра. К сожалению, это требует перезагрузки системы. Я сожалею о перезагрузке, потому что я знаю, что это может быть утомительно и отнимает много времени, когда вы поддерживаете несколько систем.
aptitude versions <package-name>
не показывает все установленные на данный момент версии ядра, однако вы можете показать все установленные на данный момент версии ядра с помощью этой команды:
dpkg-query -W -f='${Package}\n' | grep -f <(ls -1 /boot/vmlinuz* | cut -d- -f2,3)
Результаты этой команды приведут список имен всех нерабочих пакетов ядра, которые должны быть удалены.
После удаления пакетов, которые относятся к нерабочей версии ядра, вы получите следующее сообщение:
The link /vmlinuz.old is a damaged link
Removing symbolic link vmlinuz.old
you may need to re-run your boot loader[grub]
Это сообщение отображается потому, что vmlinuz.old связан с удаленными файлами, поэтому вам нужно обновить grub, выполнив следующую команду:
sudo update-grub
Ваша лучшая стратегия, как и любая другая ОС, - проверять наличие обновлений как минимум раз в день.
С точки зрения безопасности, нереально для одного пользователя запускать отложенные обновления, пока они проходят индивидуальное тестирование и расставляют приоритеты. А срочное обновление всегда важнее выдернутого.
Поэтому, если у вас нет времени для изучения каждого обновления, лучшая стратегия - применять обновления по мере их выпуска, даже если это приводит к многочисленным извлеченным обновлениям. Их всегда можно почистить позже.
В качестве стратегии резервного копирования вы всегда должны... делать резервные копии! Бекап часто, бекап всё. Плохие обновления - одна из причин этого. Это особенно удобно, если вы храните ваши важные документы в облаке.
РЕДАКТИРОВАТЬ: Мой ответ основан на предположении, что вы один человек с домашними компьютерами.