Стратегия борьбы со все более и более плохим QA от Canonical?

13

Моя installed (local or obsolete)категория пополняется, потому что в последнее время Canonical выпускает обновления, а затем возвращает их обратно. Это произошло с двумя ядрами в недавнем прошлом, и это случилось снова cupsэтим утром. Я использую Ubuntu около трех лет, и я не помню, чтобы это происходило так часто, как в этом году.

Итак, как с этим рационально бороться?

Я думал об установке обновлений только один раз в неделю, но это не защитило бы от установки того плохого обновления, которое они выпустили прямо перед тем, как я проверил эту неделю.

Хорошая стратегия - устанавливать обновления только на выходных? Похоже, что системные обновления не часто выходят по выходным. Я полагаю, что они могут опубликовать плохое обновление в пятницу днем ​​и вытащить его в понедельник утром.

Или как-то не устанавливать обновления, пока они не будут вытеснены в течение определенного периода времени - например, двух дней? Есть ли автоматизированный способ сделать это?

Редактировать: Одна из уязвимых систем работает с linux-genericядром Lubuntu 16.04 , другая - с linux-generic-hwe-16.04ядром Lubuntu 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, которая затем была осиротевшей.

Органический мрамор
источник
2
Спасибо за уточнение версии. Мне было интересно, имели ли вы дело с версией LTS, тогда как промежуточные версии (для меня) в основном предназначены для тестирования с большим количеством изменений, которые могут внести его в LTS. Что касается версий LTS, на которых я сосредоточен, я недостаточно наблюдателен, чтобы замечать выдающиеся ошибки. Я регулярно обновляюсь. Время от времени я замечаю небольшие проблемы, с которыми, видимо, постоянно сталкиваются разработчики. Вы можете сосредоточиться на обновлениях безопасности для защищенной системы и позволить более смелым решать ежедневные изменения.
Л.Д. Джеймс
1
@fkraiem да, я видел, как два последних выпуска ядра были отменены вскоре после того, как мне сообщили, что они доступны. Достаточно забавно, я решил сделать обновления позже, и когда я вернулся, они исчезли!
Хейннема
Я использовал отключение автоматических обновлений Windows частично из-за вашего недавнего опыта работы с Ubuntu. Я заметил, что в последнее время обновления кажутся ежедневными. Может быть, я должен закрыть свой, потому что у меня сейчас нет ошибок.
WinEunuuchs2Unix
Пропускают ли они основные порталы StableReleaseUpdates чаще, особенно для основных пакетов? AFAIK, который не был объявлен, и обсуждение вопроса в списке рассылки ubuntu-devel было бы правильной мерой.
Гуннар

Ответы:

2

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

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

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

tiger99
источник
1
Это хорошая информация. Я закончил с этим, установив собственное локальное зеркало, которое ежедневно загружает все обновления. Мои домашние ПК получают обновления с локального зеркала, но только по команде, а не автоматически. Так что, если что-то выглядит страшно, я могу сидеть на нем несколько дней, если захочу.
Органический мрамор
Это очень хорошее решение проблемы. По аналогичным причинам многие деловые сети настроены на то же самое с обновлениями Windows!
tiger99
0

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

Если у вас есть номер версии или целевой выпуск, 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
Карел
источник
1
Хм, это большая боль, если у вас есть несколько систем для обслуживания, а затем нужно вернуться и настроить их все для загрузки с хорошего ядра. И сделайте перезапуск для плохого ядра, и еще один перезапуск, чтобы получить хорошее ядро.
Органический мрамор
1
Члены моей семьи должны запускать свои компьютеры без необходимости думать о том, какое ядро ​​использовать. И я знаю, как решить эту проблему, как только это произойдет. Я ищу стратегию, чтобы избежать проблемы в первую очередь. Я не понизил ваш ответ, но он не отвечает на мой вопрос.
Органический мрамор
2
@OrganicMarble Для ваших детей, которые, возможно, не слишком разбираются в компьютерах или не хотят задумываться о ядре и вопросах, тестировали ли вы настройку своих компьютеров только для обновлений безопасности ? Такая же проблема возникает с этой конфигурацией? Я не могу представить себе обстоятельства, когда общие обновления были бы идеальными до тех пор, пока не появилось огромное количество компьютеров и сред, протестированных после выпуска, когда оно работало без проблем в лаборатории. По крайней мере, ваш вопрос показывает быстрые решения, когда возникают проблемы.
Л.Д. Джеймс
1
@LDJames, это хорошее предложение. Однако я подозреваю, что эти обновления ядра были обновлениями безопасности. Я не уверен, как вернуться и проверить это.
Органический мрамор
1
@OrganicMarble Вы можете вернуться и проверить, изучив unattendedфайлы журналов ( /var/log/unattended-upgrades). Я считаю, что unattended-upgradesпакет предназначен для обновлений безопасности.
Л.Д. Джеймс
-1

Ваша лучшая стратегия, как и любая другая ОС, - проверять наличие обновлений как минимум раз в день.

С точки зрения безопасности, нереально для одного пользователя запускать отложенные обновления, пока они проходят индивидуальное тестирование и расставляют приоритеты. А срочное обновление всегда важнее выдернутого.

Поэтому, если у вас нет времени для изучения каждого обновления, лучшая стратегия - применять обновления по мере их выпуска, даже если это приводит к многочисленным извлеченным обновлениям. Их всегда можно почистить позже.

В качестве стратегии резервного копирования вы всегда должны ... делать резервные копии! Бекап часто, бекап всё. Плохие обновления - одна из причин этого. Это особенно удобно, если вы храните важные документы в облаке.

РЕДАКТИРОВАТЬ: Мой ответ основан на предположении, что вы один человек с домашними компьютерами.

Дориан
источник
1
Стратегия «улыбаться и терпеть» - это не то, что я ищу.
Органический мрамор
@ OrganicMarble Я никогда этого не говорил. Но я предполагаю, что вы один пользователь, и вы говорите о личной системе. В противном случае, пожалуйста, расширьте свой вопрос. Есть только так много, что вы можете сделать как один человек, когда дело доходит до управления обновлениями. Я управляю большими сайтами с десятками серверов и сотнями рабочих станций в организации, которая в сотни раз больше, чем мои сайты. Все мы имеем дело с обновлениями очень сложным способом, который никогда не мог сделать единственный человек.
Дориан,
Да, я нахожусь в углу дела, я думаю, где мы - семья, использующая Ubuntu с 5 компьютерами, плюс я использую несколько виртуальных машин. Так ок. 10 систем, которыми я должен управлять. Слишком мало, чтобы получить автоматизированную систему управления, но достаточно, чтобы сделать такие вещи очень раздражающими.
Органический мрамор
@OrganicMarble Да, это мешает одному человеку управлять. И, честно говоря, лучшее, что вы можете сделать, это просто продолжать обновляться как можно чаще. Быстрая демонстрация для членов вашей семьи, вероятно, поможет, когда появится несколько опций ядра. Вы должны показать их только один или два раза. Рассматривали ли вы простой сценарий, который запускается из cronзадания для проверки нескольких ядер? Многократные ядра - главное беспокойство?
Дориан,