Как обновить FreeBSD с версии 10.2 до 10.3

Вступление

FreeBSD постоянно развивается; команда добавляет новые функции и исправляет уязвимости безопасности. Поддержание операционной системы вашего сервера в актуальном состоянии обеспечивает лучшую безопасность и совместимость, а FreeBSD включает в себя инструмент + freebsd-update +, чтобы сделать это проще. В этом руководстве вы обновите существующий сервер FreeBSD с FreeBSD 10.2-RELEASE до 10.3.RELEASE-p4.

Предпосылки

Чтобы следовать этому уроку, вам понадобится:

  • Сервер под управлением FreeBSD 10.2.

  • Учетная запись пользователя, настроенная для запуска команд с помощью + sudo +. Мы будем использовать учетную запись * freebsd * по умолчанию, которая создается автоматически при создании капли FreeBSD. Чтобы узнать больше о входе в свою FreeBSD Droplet и его базовом управлении, ознакомьтесь с серией учебников Getting Started with FreeBSD.

Шаг 1 - Извлечение и применение исправлений

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

ssh freebsd@

Затем используйте команду + freebsd-upgrade +, чтобы собрать информацию об обновлении системы и определить, что нужно изменить. Запустите следующую команду:

sudo freebsd-update upgrade -r 10.3-RELEASE

Мы используем ключ + -r +, чтобы указать версию, которую мы хотим обновить, то есть + 10.3-RELEASE +. Через некоторое время вы увидите следующий вывод:

Outputsrc component not installed, skipped
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching public key from update6.freebsd.org... done.
Fetching metadata signature for 10.2-RELEASE from update6.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system...

The following components of FreeBSD seem to be installed:
kernel/generic world/base world/doc world/games world/lib32

The following components of FreeBSD do not seem to be installed:

Does this look reasonable (y/n)?

Это дает вам возможность рассмотреть любые потенциальные проблемы. Введите + y + и нажмите + ENTER + для продолжения.

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

OutputFetching metadata signature for 10.3-RELEASE from update6.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system...
Fetching files from 10.2-RELEASE for merging... done.
Preparing to download files...
Fetching 10722 patches.....10....20....30....40....50....60....70....80....90
....100....110....120....130....140....150....160....170....180....190....200

   **. . .**

....10650....10660....10670....10680....10690....10700....10710....10720. done.
Applying patches... done.
Fetching 152 files...
Attempting to automatically merge changes in files... done.

Однако процесс не может исправить все автоматически. Нам нужно вмешаться вручную.

Шаг 2 - Разрешение конфликтов

После применения исправлений к операционной системе + freebsd-update + покажет вам два предупреждающих сообщения, и вам нужно будет вручную разрешить некоторые незначительные конфликты в двух разных файлах конфигурации. Одним из них является + / etc / rc.subr, а другим -` + / etc / ssh / sshd_config`.

Первое предупреждение, которое вы видите, выглядит следующим образом:

outputThe following file could not be merged automatically: `/etc/rc.subr`
Press Enter to edit this file in vi and resolve the conflicts
manually...

Когда вы нажимаете + Enter +, файл + / etc / rc.subr + открывается в текстовом редакторе + vi +, и вы увидите следующий текст:

Файл /etc/rc.subr с конфликтами, которые нужно решать вручную

# $NetBSD: rc.subr,v 1.67 2006/10/07 11:25:15 elad Exp $



# $FreeBSD: releng/10.3/etc/rc.subr 292450 2015-12-18 19:58:34Z jilles $

Измените этот раздел, удалив строки, относящиеся к текущей версии, которые выделены красным цветом выше. Несмотря на то, что в настоящее время мы работаем с FreeBSD 10.2, этот файл ссылается на 10.1 как «текущий». Удалите эти строки, чтобы раздел выглядел следующим образом:

/etc/rc.subr готов продолжить

# $NetBSD: rc.subr,v 1.67 2006/10/07 11:25:15 elad Exp $
# $FreeBSD: releng/10.3/etc/rc.subr 292450 2015-12-18 19:58:34Z jilles $

Сохраните ваши изменения в файле и выйдите из редактора.

Как только вы закроете текстовый редактор, вы увидите строку, сообщающую об успешном слиянии файла, который вы только что изменили. Затем вы увидите второе предупреждение, в котором говорится, что файл конфигурации + / etc / ssh / sshd_config + требует вашего внимания:

Output/var/db/freebsd-update/merge/new//etc/rc.subr: 2087 lines, 47888 characters.

The following file could not be merged automatically: `/etc/ssh/sshd_config`
Press Enter to edit this file in vi and resolve the conflicts
manually...

Как и раньше, когда вы нажимаете + ENTER +, вам будет представлен текстовый файл, который вам нужно изменить. Часть, которую вам нужно изменить, будет похожа на первый отредактированный файл.

Файл / etc / ssh / sshd_config с конфликтами, которые нужно решать вручную

#       $OpenBSD: sshd_config,v 1.98 2016/02/17 05:29:04 djm Exp $
#       $FreeBSD: releng/10.3/crypto/openssh/sshd_config 296853 2016-03-14 13:05:13Z des $

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

/ etc / ssh / sshd_config готов продолжить

#       $OpenBSD: sshd_config,v 1.98 2016/02/17 05:29:04 djm Exp $
#       $FreeBSD: releng/10.3/crypto/openssh/sshd_config 296853 2016-03-14 13:05:13Z des $

Сохраните ваши изменения в файле и закройте редактор.

После закрытия редактора процесс + freebsd-update + отобразит каждый файл, который вы изменили, и спросит, выглядят ли изменения разумными. Ответьте + y + на оба вопроса, чтобы продолжить установку.

Как только вы согласитесь с изменениями, вы увидите список двоичных файлов и файлов конфигурации, которые будут обновлены. Этот список очень длинный; нажмите + SPACE, чтобы прокрутить список по одной странице за раз. Или, если вы не хотите просматривать список, введите + q +, чтобы выйти. Не волнуйся; нажатие + q + не прервет процесс обновления.

Список выглядит так:

OutputThe following files will be added as part of updating to 10.3-RELEASE-p5:
/boot/kernel/ismt.ko
/boot/kernel/ismt.ko.symbols
/boot/kernel/linux64.ko
/boot/kernel/linux64.ko.symbols
/boot/kernel/linux_common.ko
/boot/kernel/linux_common.ko.symbols
/boot/kernel/mlx5.ko

   . . .

The following files will be updated as part of updating to 10.3-RELEASE-p5:
/.cshrc
/.profile
/COPYRIGHT
/bin/[
/bin/cat
/bin/chflags
/bin/chio

   . . .

После того, как вы просмотрели список, вы вернетесь в окно терминала. Вы готовы выполнить установку.

Шаг 3 - Установка FreeBSD 10.3

Обновления были загружены, а необходимые файлы были успешно объединены или настроены, поэтому для установки загруженных обновлений используйте следующую команду:

sudo /usr/sbin/freebsd-update install

Вот результат, который вы увидите:

Outputsrc component not installed, skipped
Installing updates...
Kernel updates have been installed.  Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.

Установка предложит вам выполнить перезагрузку, поэтому выполните эту команду для перезагрузки компьютера:

sudo reboot

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

Шаг 4 - Завершение процесса установки

Давайте проверим версию нашего сервера, чтобы убедиться, что процесс обновления работал и новое ядро ​​загружено. Сначала войдите на свой сервер:

ssh freebsd@

После входа в систему выполните следующую команду:

uname -a

и вы увидите следующий вывод, показывающий, что обновление работало:

OutputFreeBSD  #0: Sat May 28 12:23:44 UTC 2016     [email protected]:/usr/obj/usr/src/sys/GENERIC  amd64

Но мы еще не закончили с обновлением. Нам нужно установить все последние обновления, которые могли произойти с момента создания релиза, поэтому снова запустите + freebsd-update +.

sudo /usr/sbin/freebsd-update install

Вы увидите следующий вывод:

Outputsrc component not installed, skipped
Installing updates...
Installing updates...
install: ///var/db/etcupdate/current/etc/mtree/BSD.debug.dist: No such file or directory
install: ///var/db/etcupdate/current/etc/periodic/daily/480.leapfile-ntpd: No such file or directory
done.

Безопасно игнорировать два предупреждения в конце. Оба файла будут созданы или обновлены этим процессом.

Когда вы обновляете FreeBSD, вам также следует обновить все сторонние установленные пакеты, особенно если вы делаете обновление основной версии. Для этого выполните следующую команду:

sudo pkg upgrade

Вывод будет выглядеть так:

OutputUpdating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.

   . . .

Processing entries: 100%
FreeBSD repository update completed. 25089 packages processed.
New version of pkg detected; it needs to be installed first.
The following 1 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
       pkg: 1.5.6 -> 1.7.2

The process will require 242 KiB more space.
2 MiB to be downloaded.

Proceed with this action? [y/N]:

Введите + y + и нажмите + ENTER + для продолжения, и вы увидите следующий вывод:

OutputFetching pkg-1.7.2.txz: 100%    2 MiB   1.3MB/s    00:02
Checking integrity... done (0 conflicting)
[1/1] Upgrading pkg from 1.5.6 to 1.7.2...
[1/1] Extracting pkg-1.7.2: 100%
Updating FreeBSD repository catalogue...
Repo "FreeBSD" upgrade schema 2011 to 2012: Add depends formula field
Repo "FreeBSD" upgrade schema 2012 to 2013: Add vital field
FreeBSD repository is up-to-date.
All repositories are up-to-date.
Checking for upgrades (24 candidates): 100%
Processing candidates (24 candidates): 100%
The following 24 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
       xproto: 7.0.27 -> 7.0.28
       sudo: 1.8.13 -> 1.8.16_1
       rsync: 3.1.1_3 -> 3.1.2_1
       python27: 2.7.9_1 -> 2.7.11_2
       py27-setuptools27: 17.0 -> 20.0
       py27-pip: 7.0.3 -> 8.0.2
       perl5: 5.20.2_5 -> 5.20.3_12
       pcre: 8.37_4 -> 8.38_1
       libxml2: 2.9.2_3 -> 2.9.3
       libxcb: 1.11_1 -> 1.11.1
       libnet: 1.1.6_3,1 -> 1.1.6_4,1
       libiconv: 1.14_8 -> 1.14_9
       libX11: 1.6.2_3,1 -> 1.6.3,1
       kbproto: 1.0.6 -> 1.0.7
       indexinfo: 0.2.3 -> 0.2.4
       gobject-introspection: 1.42.0 -> 1.46.0
       glib: 2.42.2 -> 2.46.2
       gettext-runtime: 0.19.4 -> 0.19.7
       expat: 2.1.0_3 -> 2.1.1_1
       dbus: 1.8.16 -> 1.8.20
       curl: 7.43.0_2 -> 7.48.0_1
       ca_root_nss: 3.19.3 -> 3.22.2
       avahi-app: 0.6.31_3 -> 0.6.31_5

Installed packages to be REINSTALLED:
       dbus-glib-0.104 (option added: DOCS)

The process will require 5 MiB more space.
39 MiB to be downloaded.

Proceed with this action? [y/N]:

Еще раз введите + y +, а затем + ENTER + для продолжения.

Пакеты обновятся, но чтобы убедиться, что у вашего пользователя есть доступ к последним версиям, выполните команду + rehash +:

rehash

На этом процесс обновления завершен. Но что, если что-то пошло не так?

Шаг 5 - откат неудачной установки (необязательно)

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

sudo freebsd-update rollback

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

Заключение

Обновление операционной системы до новой версии и своевременное применение исправлений безопасности являются важными аспектами текущего администрирования системы. Команда + freebsd-update + позволяет легко выполнять обе эти задачи. Когда вы ознакомитесь с процессом, вы сможете выполнять будущие обновления самостоятельно.

Чтобы узнать больше о том, как обновить FreeBSD, вы можете прочитать An Введение в базовое обслуживание FreeBSD или просмотреть соответствующая глава в FreeBSD Handbook.

Related