it-roy-ru.com

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

12
Organic Marble

Радикальная альтернатива - переключиться на Debian Stable, а не на * buntu или его производную, потому что Debian Stable прошел полный процесс обеспечения качества, тогда как Ubuntu является производным от Debian Testing, который должен пройти некоторый путь, прежде чем он станет стабильным.

Почти все знания могут быть переданы напрямую, но Debian не предоставит вам все последние косметические "навороты". Тем не менее, он имеет больше пакетов в своем хранилище ...

Я перешел на Debian, в моем случае с KDE, из Kubuntu, около 5 лет назад, когда у меня были похожие проблемы. Но все сводится к личному выбору.

1
tiger99

Откатить обновление пакета до более старой версии

Если у вас есть номер версии или целевой выпуск, apt-get поддерживает выбор конкретной версии или целевого выпуска.

  1. Установить aptitude

    Sudo apt-get install aptitude
    
  2. Показать старые версии пакета.

    aptitude versions <package-name> | less # use less to display only the top of the list of versions
    
  3. Откатить выбранный пакет до более старой версии.

    Sudo apt-get -t=<target release> install <package-name>  # target release is old version
    
  4. Удалите неверное обновление выбранного пакета.

    Sudo apt-get -t=<target release> remove <package-name> # target release is new version
    
  5. Запретить автоматическое обновление версии откатанного пакета с помощью 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
0
karel