LINUX.ORG.RU

Перегружайся, если не хочешь проблем!

 , , ,


1

1

Интересная статья вышла в Fedora Magazine, рекомендую.

https://fedoramagazine.org/offline-updates-and-fedora-35/

Для Ъ

В интернете часто встречается вопрос, почему Fedora Linux необходимо перезагружать, чтобы обновить систему. Действительно, чтобы обновить дистрибутив, перезагрузка не требуется, однако всё не так просто. В этой статье рассмотрим, почему же Fedora Linux просит вас перезагрузить систему и устанавливает обновления автономно.

Автономные обновления

Это такой процесс, когда ваш компьютер перезагружается в особый безопасный режим работы, применяет обновления и снова перезагружается в нормальный режим.

Почему существуют автономные обновления

За последние двадцать лет операционные системы стали гораздо сложнее, чем в те далёкие времена, когда многозадачность была в зачаточном состоянии и фактически не было ситуаций, чтобы пользователи в системе работали и одновременно обновляли её, поэтому обновления не представляли особых проблем.

Да, ядро Linux умеет изменять файлы без перезагрузки, но службы и приложения, использующие эти файлы, так делать не умеют. Если файл изменяется во время работы программы, то программа ничего об этом не знает, что может стать причиной некорректной работы программы. Так что утверждение типа «Linux не надо перезагружать, чтобы обновиться» больше не работает, все дистрибутивы Linux надо перезагружать!

Как работают автономные обновления

В системе есть пара совместно работающих компонентов, чтобы реализовать такие обновления. Первый — пакетный менеджер, который лишь скачивает обновления и сообщает следующему компоненту о наличии этих самых обновлений.

Второй компонент — это systemd. Во время загрузки системы, systemd проверяет пакетный менеджер на наличие скачанных обновлений, и если таковые имеются, systemd вместо нормальной загрузки стартует пакетный менеджер, применяет обновления и перезагружает систему в нормальный режим.

[полагаю, под ПМ автор имеет здесь в виду PackageKit]

Откуда ноги растут

Проблему впервые осознали в 2009 году (об этом можно почитать здесь). Как только возможное решение проблемы было спроектировано, его сразу же запустили в разработку.

Однако требовалось несколько компонентов заставить работать вместе. Надо было внести изменения в systemd для поддержки особого способа загрузки системы, а также заставить пакетные менеджеры «понимать» этот процесс. Кроме того было важно, чтобы у пользователей появился соответствующий графический интерфейс, который и был включён в GNOME Software Center в 2012 году, а в KDE Discover в 2021.

Наконец, эта новая функция была реализована в Fedora 18, что сделало Fedora первым дистрибутивом, который делает всё возможное, чтобы ваша система была надёжна и стабильна. Да, это был долгий путь, но вот мы здесь, и эта технология с нами уже почти 10 лет!

Если обновить систему по старинке через DNF

Скорее всего ничего плохого не произойдёт, так как это могут быть небольшие обновления или программа, которую вы обновили, была выключена. Например, не страшно обновить SDL, если вы не играете в этот момент.

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

Опытные пользователи Linux, например администраторы, часто инстинктивно знают, какие программы можно обновлять без проблем. Также можно устанавливать только обновления безопасности (обсуждается здесь). А вот для масштабных обновлений даже профессионалам рекомендуется использовать автономные обновления через DNF.

Firefox — хороший пример

Когда Firefox (во время работы) обнаружит, что был обновлён, он заставит вас перезагрузить браузер, а всё потому, что он не умеет надёжно работать в такой ситуации без полного перезапуска программы.

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

Аварийные ситуации

Дело в том, что Firefox скорее приятное исключение из правила, ведь остальные программы просто тихо падают, если их обновить во время работы. Например в случае X Window Server или GNOME Shell вы можете получить чёрный экран. Однако это ещё не значит, что процесс обновления системы прервался, но чтобы наверняка понять что же происходит, придется переключиться в виртуальную консоль и проверить закончил ли свою работу пакетный менеджер.

Нажмите <Ctrl + Alt + F3>, чтобы перейти в консоль, залогиньтесь, запустите программу top, в ней нажмите O и напишите COMMAND=dnf. Дождитесь, когда пакетный менеджер закончит обновление системы и перезагрузите компьютер.

Выключили электричество во время обновления системы

На данный момент надежда ещё есть. Включите компьютер и посмотрите загрузилась ли система. Если удалось загрузиться в графический режим, то скорее всего всё будет хорошо. Если нет, то придётся зайти в виртуальную консоль и посмотреть историю DNF, чтобы понять на какой стадии произошёл обрыв и повторить попытку обновления.

$ dnf history list
$ dnf history info {номер последнего события}
$ dnf history redo {номер последнего события}

Дополнительную информацию можно найти здесь. К сожалению, невозможно гарантировать, что повторная попытка обновления всё исправит, но это лучшее, что можно сделать в такой ситуации. Кстати, не помешает удалить сторонние драйверы типа Nvidia, они также могут создавать проблемы при обновлении системы.

Всё сломалось

Если во время неудачного обновления вышел из строя DNF или systemd, то продолжить обновление вряд ли получится и перезагрузка компьютера тоже ничего не даст.

Не существует однозначного ответа, что делать в таких обстоятельствах. Прежде всего у вас должна быть флешка с Fedora Linux! Вы могли бы попробовать восстановить систему с помощью systemd-nspawn, но это слишком сложно. Для обычных пользователей будет проще систему переустановить.

Помните, пока ещё вы не потеряли ваши персональные данные. Загрузка с флешки их никак не повредит и вам всего лишь надо проследить, чтобы существующий раздел /home не был отформатирован во время переустановки системы.

Заключительное слово

Обновление работающей системы — настоящая лотерея. Мы верим в удачу и склонны переоценивать свои шансы. Многие из нас никогда не сталкивались с выходом системы из строя из-за обновлений, но такие истории далеко не редкость на просторах интернета. Поэтому очень важно распространять информацию о том, как следует безопасно обновлять Linux. Призывайте пользователей использовать автономные обновления, а сами будьте крайне осторожны, когда обновляете работающую систему!

В будущем подобные проблему исчезнут совершенно, благодаря таким технологиям как Flatpak и Fedora Silverblue. Десктопный Linux постепенно движется в этом направлении, а пока нам приходится иметь дело со всякими индикаторами прогресса обновления системы, как в других операционных системах.

★★★★★

Последнее исправление: papin-aziat (всего исправлений: 2)
Ответ на: комментарий от tiinn

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

papin-aziat ★★★★★
() автор топика

Десктопный Linux постепенно движется

… по кругу.

Поэтому очень важно распространять информацию о том, как следует безопасно обновлять Linux.

Что еще надо? Может флаеры раздавать в переходе?

Призывайте пользователей использовать автономные обновления

Добрый день, у вас есть минутка поговорить об автономных обновлениях?

chenbr0
()
Ответ на: комментарий от anonymous

Не сталкивался с тем, чтобы винда после обновления падала,

Я сталкивался.

tiinn ★★★★★
()
Ответ на: комментарий от papin-aziat

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

На десяточке у меня это и было. Правда, давно, 5 лет назад.

tiinn ★★★★★
()
Ответ на: комментарий от ya-betmen

Дык Федора гордится своим старанием по отношению к пользователю, а не идеальным решением вопроса (ящитаю, идеальные вещи вообще нежизнеспособны), хорошим решением будет Silverblue. Но что-то туго пока идёт процесс, а ведь фантазировали, что 30-ка займет место Workstation, но на дворе 35, а воз и ныне там :-(

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от papin-aziat

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

И внезапно выходит плохо.

🌰

anonymous
()
Ответ на: комментарий от Legioner

Облом, в rhel не завезли эти плагины, так что по старинке пока :-)

Есть python3-tracer, и то хлеб, буду юзать его, если будет лень перегрузиться, делает то же самое, но независимо от DNF, просто вбиваешь sudo tracer и всё.

Прикольную pdf-ку нашёл, может кому пригодится: https://people.redhat.com/pladd/tracer.pdf

papin-aziat ★★★★★
() автор топика

Ну ты... засЛаный казачок... Установил я этот серебряный пуль с кде... С тебя три часа моего потраченого времени и три километра испорченных нервов. Это бред. Это бред сивой кобылы, а не дистрибутив. Тьфу. Пришёл сюда чтобы ты передал этим редхато-федоровцам мой плевок.

R_He_Po6oT ★★★★★
()
Ответ на: комментарий от leave

Зачем шапка старательно превращает линакс в винду?

Комментарий из 2002 года? Ох уж эта машина времени глючная.

bread
()
Ответ на: комментарий от R_He_Po6oT

А где аргументы? Что не работает?

Это бред сивой кобылы, а не дистрибутив.

Я же предупреждал в том треде

Про саму Kinoite особо сказать нечего, тот же Silverblue, только в профиль. Новичкам в линукс даже смотреть в ту сторону не рекомендую, хотя интеграция фатпаков уже почти идеальна, и может показаться, что поставил систему, навалил флатпаков и наслаждайся жизнью, но нет, если что-то надо будет особенное, то без знания как устроена федора-классик (линукс вообще) и общих принципов ostree и фишек rpm-ostree может показаться, что куда ни ткнись, везде что-то не работает :-)

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от R_He_Po6oT

чтобы ты передал этим редхато-федоровцам мой плевок

Кастуй альфу, я энтузиаст :-)

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от R_He_Po6oT

С тебя три часа моего потраченого времени

Фига ты быстрый, я вот на киноит выделил сутки, отключился от всего, даже на лор не заходил. Красноглазие же, ну! Правда для меня красноглазие — это были кеды :-D

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от papin-aziat

Ну, один плюс в этом эксперименте всё же был. Я захотел снести систему и начать заново, с нуля. Но теперь в раздумьях, надо ли мне Манджару, или установить Дебьян, успокоиться, перестать компилять всякий шлак и засирать систему? Где бы взять такую систему, где помойку со всякими зависимостями для компиляния и накомпиленным софтом можно было бы держать отдельным, опциональным слоем? Чтобы все настройки всяких надстроек хранились бы там же, не в основном хомяке. (Нет, флатпак это совсем не то)

R_He_Po6oT ★★★★★
()
Ответ на: комментарий от papin-aziat

Ну, ты, видимо, прошёл все ступени из детской шутки про «ляп, ляп,... нюх, нюх... ням, ням, говно» Я сразу понял, что это «оно» и теперь не хочу включать :)

Сам процесс установки - это издевательство. Если хотите из-за плеча установщика смотреть что он делает и подпрыгивать, чтобы он обратил внимание на то что вы хотите, то это правильный установщик. Ещё более «я лучше знаю что вам нужно» только установщик виндыхп - «Вы хотите установить винду согласившись со всеми условиями?» и поехали, не спрашивая ни о чём. Блин, а где я хочу держать хомяк? Я ему выделил раздел в 50 гигов, ладно он автоматом создал раздел для загрузки, но я больше ничего не мог сделать, только смотреть как он что-то сам себе ставит. Хорошо, что я сообразил создать юзера, чую он и его бы не создавал. А при загрузке он сообщил, что не имеет прав на запись в хомяк. Кто «он»? зачем ему права на хомяк ДО того как я подключился под этим юзером? В Дисковере ошибки... да ну его нахрен.

R_He_Po6oT ★★★★★
()
Ответ на: комментарий от R_He_Po6oT

Где бы взять такую систему, где помойку со всякими зависимостями для компиляния и накомпиленным софтом можно было бы держать отдельным, опциональным слоем?

(Fedora, RHEL, Centos Stream) + mock. Я даже bootstrap отключаю, все равно собираю только себе, ну и вообще настроил работать его в RAM, так что на диске какие-то ~500 мегов.

papin-aziat ★★★★★
() автор топика
Последнее исправление: papin-aziat (всего исправлений: 2)
Ответ на: комментарий от papin-aziat

Не, ты немного не понял. Мне бы что-то вроде докера, но для гуёвых и звуковых приложений. Докер, наверное, самая удобная форма, ближе чем создание виртуалки, также легко выкидывается, можно навалить туда и закрыть дверь, чтобы не воняло, но в докере обычно всякие сервера, а мне юзерские приложения.

R_He_Po6oT ★★★★★
()
Ответ на: комментарий от R_He_Po6oT

A, да, это для переборки из Федоры или типа того, а если вообще, то контейнеры, — тогда самое простое Fedora + toolbox.

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от R_He_Po6oT

Ну, да, toolbox в самый как раз, специально для этого придумали.

Кстати, в киноите он уже настроен идеально.

papin-aziat ★★★★★
() автор топика
Последнее исправление: papin-aziat (всего исправлений: 1)
Ответ на: комментарий от R_He_Po6oT

Ну, ты, видимо, прошёл все ступени из детской шутки про «ляп, ляп,… нюх, нюх… ням, ням, говно» Я сразу понял, что это «оно» и теперь не хочу включать :)

Ты про кеды? Согласен!

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от papin-aziat

Вот гаццкий гад, он ещё и с кед издевается!!! :)

Кстати, твоё ндовольство необходимостью кликать в окно, чтобы передать фокус тоже ощутил. Может это особенности работы в вейлянде? Не очень понял, он там работает чисто в вейлянде, или ещё и через иксовую прослойку? в логах видны следы иксов. Вобщем, вопросы к сборщику этого кинотова.

R_He_Po6oT ★★★★★
()
Ответ на: комментарий от R_He_Po6oT

Блин, а где я хочу держать хомяк?

Где хочешь, там и держи. Надо было выбрать ручную разбивку диска.

он автоматом создал раздел для загрузки

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

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от R_He_Po6oT

А при загрузке он сообщил, что не имеет прав на запись в хомяк. Кто «он»? зачем ему права на хомяк ДО того как я подключился под этим юзером?

Подозреваю, номер не совпадает, в Федоре 1000 вроде для первого юзера.

papin-aziat ★★★★★
() автор топика

Хм... Федорчане изобрели венду... *задумался*

targitaj ★★★★★
()
Ответ на: комментарий от R_He_Po6oT

Кстати, твоё ндовольство необходимостью кликать в окно, чтобы передать фокус тоже ощутил. Может это особенности работы в вейлянде? Не очень понял, он там работает чисто в вейлянде, или ещё и через иксовую прослойку? в логах видны следы иксов.

Фиг знает, я отстал от жизни в плане вяленого — сижу на rhel + иксы, хз как оно сейчас и вообще. Меня впечатлило, что в целом на вяленом в кедах особых косяков не заметил, хотя я повыключал всё что можно из разряда нелепого функционала, типа пытался классику замутить.

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от leave

Зачем шапка старательно превращает линакс в винду?

В смысле в десктоп. Ну я бы не сказал про старательно, но как могут.

fornlr ★★★★★
()
Ответ на: комментарий от altwazar

Когда кто-нибудь сделает аналог Nix без заигрывания с функциональщиной, тогда эта проблема исчезнет.

Именно заигрывание с функциональщиной и позволило делать nix то, что он делает. RTFM

anonymous
()

Автономные обновления

Это такой процесс, когда ваш компьютер перезагружается в особый безопасный режим работы, применяет обновления и снова перезагружается в нормальный режим.

Привет Винда.

X512 ★★★★★
()
Ответ на: комментарий от papin-aziat

Обычные программы обновляются без перезагрузки. Система обновляется с одной перезагрузкой. До перезагрузки системное обновление не применяется и тействует старое состояние пакетов.

Две перезагрузки – это какой-то маразм и демонстрация кривой архитектуры.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)

В опенсюсе такого нет, не сталкивался никогда с подобными поломками…

cetjs2 ★★★★★
()
Ответ на: комментарий от X512

Обычные программы обновляются без перезагрузки.

Ну да, здесь решили не заморачиваться, для десктопа не критично же.

До перезагрузки системное обновление не применяется и тействует старое состояние пакетов.

Ну вот теперь ostree так тоже умеет, но для хомяков это пока ещё будущее.

Две перезагрузки – это какой-то маразм и демонстрация кривой архитектуры.

Дык никто ж и не утверждает, что это идеальный вариант, утверждается, что это лучше чем ничего и, кстати, работает исправно и уже давно.

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от X512

Нормально вполне. В линуксах аналогом существует невозможность обновления сразу через одну Ubuntu.

Тоже самое и с какими-то серверными продуктами, типа gitlab

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 1)
Ответ на: комментарий от X512

Две перезагрузки – это какой-то маразм и демонстрация кривой архитектуры.

Две перезагрузки это единственный правильный способ установки обновлений в общем случае. Все, кто это делают иначе - кривы по определению.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Две перезагрузки это единственный правильный способ установки обновлений в общем случае.

Зачем две? Переключить состояние пакетов перед выключением и нет проблем. Haiku примерно так и делает.

Есть ещё всякие снапшоты ФС. Можно установить обновления в снапшот и указать его использование после перезагрузки.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от X512

Я про традиционные системы говорю, где нет снапшотов и состояний пакетов.

Со снапшотами можно и за одну перезагрузку управиться, согласен. Ещё и откат хороший можно сделать.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Legioner

Я про традиционные системы говорю, где нет снапшотов и состояний пакетов.

Зачем держаться за устаревшие концепции?

X512 ★★★★★
()
Ответ на: комментарий от X512

Стабильно, традиционно. Да и почему они устаревшие. Устареют они, когда большинство перейдёт на альтернативу.

Legioner ★★★★★
()
Ответ на: комментарий от X512

Потому что это процесс эволюционный?

Это в идеальном мире приятно созерцать красивые архитектуры, а в реальном новое может быть поставлено только поверх старого, ибо нельзя взять и перезагрузить всё, в том числе человеческий опыт.

Поэтому эклектизм, а иногда уродство, просто неизбежны в этом процессе. А критиковать и блистать задним умом, дело нехитрое.

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от X512

В смысле держаться?

Ты с глупым фанатизмом привёл весьма сложную штуку в реализации, которая как—то работает на калькуляторе, и рад.

Это смешно, не более.

А задачи решаются из соотношения профит/выгода. Вот перезагрузится Windows два раза, если не будет ставить обновления три года. Кого это волнует кроме возильщика сверху, у которого линукс дуалбутом — никого. А разработчиком возиться, чтобы этого не было надо много и в итоге бестолку.

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 1)

Имею аптайм больше года, ставлю апдейты раз в месяц и брат жив

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.