Как часто обновляется debian

Обновлено: 03.07.2024

6 июля 2019 года вышло очередное обновление популярного linux дистрибутива Debian. Это уже 10-й выпуск Debian под кодовым названием Buster. Я подробно расскажу, как выполнить обновление с предыдущего выпуска Debian 9 Stretch до Debian 10 Buster. Процесс обновления не сложный, выполняется штатными средствами с помощью apt.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Введение

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

Подготовка сервера к обновлению

Будем обновлять следующую систему:

Для нее мы проведем обновление до 10-й версии Buster.

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

Я рекомендую сделать резервную копию папок: /etc, /var/lib/dpkg, файла /var/lib/apt/extended_states. Сохраните вывод команды:

Подготовка debian 9 к обновлению

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

Теперь обновим текущую систему Stretch:

Обновляем список доступных пакетов для нового выпуска:

Обновление debian

Обновление debian с 9 до 10

Обновление системы будем делать в 2 этапа. Сначала минимальное обновление, потом полное. Если будете работать по ssh, обязательно выполняйте обновление через screen или tmux, чтобы обрыв связи не помешал обновлению. В противном случае вы можете получить неработающий сервер. Прерывать обновление очень опасно. Я сам не раз натыкался на это и потом тратил время на восстановление сервера.

Делаем минимальное обновление:

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

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

upgrade stretch to buster

После завершения минимального обновления debian, запускаем полное:

Эта команда произведёт полное обновление системы, установив последние доступные версии всех пакетов и разрешит все изменившиеся между выпусками Stretch и Buster зависимости. При необходимости будут установлены новые пакеты и удалены все вызывающие конфликты устаревшие пакеты.

Во время обновления пакетов вам могут быть заданы вопросы по поводу конфигурационных файлов. Это зависит от конкретного набора софта. Я рекомендую сохранять старые конфиги. Если с ними будут какие-то проблемы, то потом в ручном режиме их исправлять. Мне кажется так проще, чем переносить конфигурацию со старого файла в новый.

После завершения работы команды apt dist-upgrade обновление завершено. Можно перезагружаться:

Проверяем версию после загрузки:

Обновление Debian 9 Stretch до 10 Buster

Обновление stretch прошло успешно. На выходе имеем последнюю версию Debian 10.0 Buster. У меня не возникло проблем во время обновления, надеюсь у вас будет так же. Если вам нужно поставить систему с нуля, то используйте статью - Как скачать и установить Debian 10 Buster.

One of Debian's goals is to provide a consistent upgrade path and a secure upgrade process. We always do our best to make upgrading to new releases a smooth procedure. In case there's some important note to add to the upgrade process, the packages will alert the user, and often provide a solution to a possible problem.

9.1. Как поддерживать систему Debian в актуальном состоянии?

Можно просто подключиться к анонимному ftp с архивом Debian, затем внимательно просмотреть каталоги, пока не будет найден желаемый файл, а затем скачать и установить его с помощью dpkg . Учтите, что dpkg устанавливает файлы обновлений даже на работающей системе. Иногда обновляемый пакет может потребовать установки новой версии другого пакета, в этом случае установка не будет выполняться до тех пор, пока тот пакет не будет установлен.

9.1.1. aptitude

aptitude является рекомендуемым менеджером пакетов для систем Debian GNU/Linux и описывается в Раздел 8.1.3, «aptitude».

До того как вы сможете использовать aptitude для выполнения обновления, вам следует отредактировать файл /etc/apt/sources.list . Если вы хотите выполнить обновление до последней стабильной версии Debian, вам, вероятно, потребуется использовать нечто подобное в качестве источника пакетов:

More details on this can be found in the sources.list (5) manual page.

To update your system from the command line, run

После того, как вы ответите на возможные вопросы, ваша система будет обновлена.

Заметьте, что aptitude не является рекомендованным инструментом для выполнения обновлений с одного выпуска Debian GNU/Linux на другой. Для выполнения таких обновления вам следует ознакомиться с Информацией о выпуске. В этом документе описываются рекомендованные шаги для выполнения обновлений с предыдущих выпусков, а также проблемы, которые вам следует решить до выполнения обновления.

For details, see the manual page aptitude (8) , and the file /usr/share/aptitude/README .

9.1.2. apt-get и apt-cdrom

Альтернативной aptitude является apt-get , инструмент командной строки на основе APT (он был описан в Раздел 8.1.2, «APT»).

apt-get , инструмент командной строки на основе APT для работы с пакетами предоставляет простой и безопасный способ установки и обновления пакетов.

Для использования apt-get , отредактируйте файл /etc/apt/sources.list так же как и для Раздел 9.1.1, «aptitude».

Answer any questions that might come up, and your system will be upgraded. See also the apt-get (8) manual page, as well as Раздел 8.1.2, «APT».

Если для установки пакетов вы хотите использовать компакт-диски, DVD или диски BD, то можете воспользоваться программой apt-cdrom . Подробнее об этом написано в информации о выпуске, в разделе «Добавление оптического носителя в качестве источника APT».

Учтите, что когда вы получаете и устанавливаете пакеты, эти файлы так и остаются лежать в одном из подкаталогов /var. Чтобы не истратить всё свободное место раздела, не забывайте удалять лишние файлы с помощью команд apt-get clean и apt-get autoclean , или перемещать их в другое место (подсказка: воспользуйтесь apt-move ).

9.1.3. mirror

Данный сценарий на Perl и его (необязательная) программа управления, называемая mirror-master , может использоваться для выборки указанной пользователем части дерева каталога с заданного узла посредством анонимного FTP.

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

The mirror program is generally useful for updating local copies of remote directory trees. The files fetched need not be Debian files. (Since mirror is a Perl script, it can also run on non-Unix systems.) Though the mirror program provides mechanisms for excluding files with names matching user-specified strings, this program is most useful when the objective is to download whole directory trees, rather than selected packages.

9.2. Нужно ли для обновления пакета переходить в однопользовательский режим?

Нет. Пакеты можно обновлять сразу, даже на работающей системе. Если во время обновления пакета требуется остановка процесса, то на этот случай в Debian есть программа start-stop-daemon , которая останавливает, а затем перезапускает работавший ранее процесс.

9.3. Нужно ли хранить на диске все файлы-архивы .deb?

Нет. Если вы скачали файлы на диск, то после установки пакетов вы можете удалить их из системы, например с помощью команды aptitude clean .

9.4. How can I keep a log of the packages I added to the system? I'd like to know when upgrades and removals have occurred and on which packages!

Параметром --log можно заставить dpkg вести журнал изменений и выполняемых действий. Протоколируются и все вызовы dpkg (например

), и их результаты (например

) If you'd like to log all your dpkg invocations (even those done using frontends like aptitude ), you could add

to your /etc/dpkg/dpkg.cfg . Be sure the created logfile gets rotated periodically. If you're using logrotate , this can be achieved by creating a file /etc/logrotate.d/dpkg with the following lines

More details on dpkg logging can be found in the dpkg (1) manual page.

aptitude записывает те действия, которые собирается выполнить по установке, удалению или обновлению пакетов, в файл /var/log/aptitude . Учтите, что результаты этих действий в этом файле не сохраняются!

Another way to record your actions is to run your package management session within the script (1) program.

9.5. Возможно ли автоматическое обновление системы?

Да. Для этого можно использовать cron-apt ; эта программа обновляет систему через равные промежутки времени с помощью задания cron. По умолчанию она только обновляет список пакетов и скачивает новые пакеты без запуска их установки.

Замечание: НЕ рекомендуется выполнять автоматическое обновление пакетов в тестовых или нестабильных системах, так как это может привести к неожиданному поведению и удалению пакетов без уведомления.

9.6. Есть несколько машин, как скачивать для них обновления только один раз?

Если в вашей сети более одной машины Debian, то для поддержания систем Debian в актуальном состоянии полезно использовать apt-cacher .

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

Кроме того, как часто я должен обновлять Debian? Я только что понял, что не обновлялся почти месяц, потому что я запускал только обновление aptitude.

Есть запланированное задание для apt в /etc/cron.daily/apt . Означает ли это, что Debian обновляется автоматически?

4 ответа 4

Вам следует обновить систему Debian (или любую другую систему Linux/Unix), как только будут выпущены новые обновления, связанные с безопасностью.

Команды в Debian:

Эти команды обновляют список доступных пакетов и обновляют пакеты, которые в настоящее время установлены в вашей системе.

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

aptitude update будет получать только новую информацию о пакетах и обновлениях для установленных пакетов.

Команда для фактической установки обновленных пакетов - aptitude safe-upgrade (не safe-update )

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

На моем маршрутизаторе, где я запускаю стабильную версию Debian, я устанавливаю все соответствующие обновления безопасности, как только они выпускаются. Я подписываюсь на список рассылки debian-security-announce, чтобы знать о новых обновлениях безопасности. Я также подписываюсь на debian-announce, чтобы узнавать об обновлениях, не связанных с безопасностью, таких как предстоящий выпуск версии 6.0.4, запланированный на эту субботу.

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

Насколько я понимаю, задание cron для apt только очищает кеши и / или обновляет метаданные, связанные с пакетами, но не выполняет никаких обновлений пакетов.

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

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

Я отвечаю за управление как нашим рабочим сервером (почта, Интернет, база данных находятся на одном сервере), так и нашим тестовым сервером. Оба построены на Debian. Однако, поскольку я очень новичок в системном администрировании, я устанавливал обновления только потому, что сталкивался с вещами, которые необходимо обновить, чтобы иметь новые функции и получать исправления ошибок. Это довольно специальный процесс прямо сейчас, и я бы хотел, чтобы он стал меньше.

Поэтому мне интересно, как люди, которые знают, что они делают, справляются с этим? Как часто вы выполняете обновления на своих серверах? Отличается ли процесс обновления между тестированием и производством? Всегда ли вы сначала обновляете какие-либо тестовые серверы? И вы делаете полное обновление всего программного обеспечения, или вы просто устанавливаете выбранные обновления?

Я запускаю apt-get update -qq; apt-get upgrade -duyq ежедневно. Это будет проверять наличие обновлений, но не будет делать их автоматически.

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

Я всегда сначала обновляю менее важные системы. У меня также есть «план отката», если я не могу починить систему. (поскольку большинство наших серверов являются виртуальными, этот план отката обычно состоит из создания моментального снимка перед обновлением, к которому я могу вернуться в случае необходимости)

При этом, я думаю, что обновление сломало что-то только один или два раза за последние 4 года, и это было на сильно настроенной системе - так что вам не нужно быть СЛИШКОМ параноиком :)

Я очень стараюсь прикасаться к каждому серверу каждые 30 дней. На данный момент у меня более 80 серверов. Я делаю их партиями по функциональной группе или по операционной системе. У нас есть скрипт cron, который запускает эквивалент для наших блоков SLES / OpenSuSE по ночам; когда он обнаруживает, что ему нужны пакеты, он отправляет заявку в очередь системного администрирования в нашей системе регистрации неисправностей. (Он отслеживает, какие из них были отправлены ранее в файле в / tmp, чтобы не У Debian есть два пакета, apticron и cron-apt, которые делают похожую вещь и отправляют вам электронное письмо, если есть какие-либо доступные обновления. IME, apticron имеет преимущество, отправляя вам по электронной почте список изменений, чтобы вы могли увидеть, что изменилось.

Вдобавок к предыдущим ответам - пара более конкретно о Debian: вы должны подписаться на debian-security-announce и debian-announce и / или проверить страницу безопасности Debian .

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

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

Debian, как правило, является очень стабильной ОС, и вам не следует беспокоиться о ее поломках, однако всегда читайте, что будет обновляться, прежде чем обновляться, и следите за всем, что кажется странным. Я также использую VCS в моем / etc / dir, чтобы гарантировать, что любые изменения в конфигурационном файле можно увидеть с помощью команды 'git diff'.

Я делаю пробный прогон (сначала), чтобы посмотреть, что будет обновлено. Иногда библиотеки (в нашем примере назовем это libfoo) меняют свои API, что нарушает программы, которые мы написали / установили сами. Если какая-то критическая библиотека обновляется, я беру исходный код и пытаюсь восстановить его перед использованием.

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

Если вы системный администратор, вы должны получать RSS-каналы с таких сайтов, как Secunia , которые должны сообщить вам заранее, если ваш дистрибутив будет устанавливать какие-то исправления.

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

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

Если у вас есть только два сервера, процесс должен быть намного проще. Хотя я не думаю, что делать «apt-get update / upgrade» - ваш лучший выбор.

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

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

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

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

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

В идеальном случае у вас может быть следующее:

  • Средство простейшего переключения серверов (A / B или Tick Tock). Это означает, что вы обновляете один, пока он находится на стенде, а затем просто меняете трафик с текущего на новый. Это может быть более сложным для таких служб, как базы данных.
  • Возможность тестирования обновлений. У вас должны быть тестовые серверы, которые являются практически клонами производства (но без подключения к каким-либо производственным сервисам). Это позволит вам сначала протестировать обновления.
  • Хорошая стратегия резервного копирования, инкрементная идеально. Ты никогда не узнаешь. Всегда лучше быть в безопасности, чем потом сожалеть.
  • Имейте в виду, в какое время больше всего активности и какое время простоя допустимо.
  • Знать, как откатить обновление или конкретный пакет.
  • Имейте свои собственные зеркала пакета, чтобы обновления были последовательными и предсказуемыми для всех серверов. Это первый шаг к достойной автоматической системе, которой вы можете доверять. Это означает, что вы можете обновить зеркало, запустить обновление на одном или нескольких тестовых компьютерах, а затем, если это хорошо, автоматически отключить его. Я отлично провел время, удачно управляя примерно 800 машинами EPOS.
  • Хороший уровень последовательности, чтобы вы могли знать, что если что-то будет работать здесь, оно будет работать там.

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

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

Хотя это относительно редко, они иногда допускают ошибки и нарушают совместимость между версиями младших пакетов.

Читайте также: