# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR The FreeBSD Project # This file is distributed under the same license as the FreeBSD Documentation package. # Vladlen Popolitov , 2025, 2026. msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2026-02-22 15:58+0000\n" "PO-Revision-Date: 2026-03-05 04:45+0000\n" "Last-Translator: Vladlen Popolitov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 4.17\n" #. type: YAML Front Matter: description #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1 #, no-wrap msgid "Information about how to keep a FreeBSD system up-to-date with freebsd-update or Git, how to rebuild and reinstall the entire base system, etc" msgstr "Информация о том, как поддерживать систему FreeBSD в актуальном состоянии с помощью `freebsd-update` или Git, как пересобрать и переустановить всю базовую систему и так далее" #. type: YAML Front Matter: part #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1 #, no-wrap msgid "Part III. System Administration" msgstr "Часть III. Администрирование системы" #. type: YAML Front Matter: title #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1 #, no-wrap msgid "Chapter 26. Updating and Upgrading FreeBSD" msgstr "Глава 26. Обновление и смена версии FreeBSD" #. type: Title = #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:15 #, no-wrap msgid "Updating and Upgrading FreeBSD" msgstr "Обновление и смена версии FreeBSD" #. type: Title == #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:53 #, no-wrap msgid "Synopsis" msgstr "Обзор" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:60 msgid "" "FreeBSD is under constant development between releases. Some people prefer " "to use the officially released versions, while others prefer to keep in sync " "with the latest developments. However, even official releases are often " "updated with security and other critical fixes. Regardless of the version " "used, FreeBSD provides all the necessary tools to keep the system updated, " "and allows for easy upgrades between versions. This chapter describes how " "to track the development system and the basic tools for keeping a FreeBSD " "system up-to-date." msgstr "" "FreeBSD постоянно развивается между выпусками. Некоторые предпочитают " "использовать официальные выпущенные версии, в то время как другие следят за " "последними изменениями в разработке. Однако даже официальные выпуски часто " "обновляются с исправлениями безопасности и другими критическими " "исправлениями. Независимо от используемой версии, FreeBSD предоставляет все " "необходимые инструменты для поддержания системы в актуальном состоянии и " "позволяет легко обновляться между версиями. В этой главе описывается, как " "отслеживать разработку системы и основные инструменты для поддержания " "FreeBSD в актуальном состоянии." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:62 msgid "Read this chapter to learn:" msgstr "Прочтите эту главу, чтобы узнать:" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:64 msgid "How to keep a FreeBSD system up-to-date with freebsd-update or Git." msgstr "" "Как поддерживать систему FreeBSD в актуальном состоянии с помощью freebsd-" "update или Git." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:65 msgid "" "How to compare the state of an installed system against a known pristine " "copy." msgstr "" "Как сравнить состояние установленной системы с известной чистой копией." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:66 msgid "" "How to keep the installed documentation up-to-date with Git or documentation " "ports." msgstr "" "Как поддерживать установленную документацию в актуальном состоянии с помощью " "Git или портов документации." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:67 msgid "" "The difference between the two development branches: FreeBSD-STABLE and " "FreeBSD-CURRENT." msgstr "" "Разница между двумя ветвями разработки: FreeBSD-STABLE и FreeBSD-CURRENT." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:68 msgid "How to rebuild and reinstall the entire base system." msgstr "Как пересобрать и переустановить всю базовую систему." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:70 msgid "Before reading this chapter:" msgstr "Прежде чем читать эту главу, необходимо:" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:72 msgid "" "Properly set up the network connection (crossref:advanced-" "networking[advanced-networking,Advanced Networking])." msgstr "" "Правильно настроить сетевое подключение (crossref:advanced-" "networking[advanced-networking,Сложные вопросы работы в сети])." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:73 msgid "" "Know how to install additional third-party software (crossref:ports[ports," "Installing Applications: Packages and Ports])." msgstr "" "Знать, как устанавливать дополнительное стороннее программное обеспечение " "(crossref:ports[ports,Установка приложений: Пакеты и Порты])." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:78 msgid "" "Throughout this chapter, `git` is used to obtain and update FreeBSD " "sources. Optionally, the package:devel/git[] port or package may be used." msgstr "" "В этой главе для получения и обновления исходных кодов FreeBSD используется " "`git`. При желании можно использовать порт или пакет package:devel/git[]." #. type: Title == #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:81 #, no-wrap msgid "FreeBSD Update" msgstr "Обновление FreeBSD" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:85 msgid "" "Applying security patches in a timely manner and upgrading to a newer " "release of an operating system are important aspects of ongoing system " "administration. FreeBSD includes a utility called `freebsd-update` which " "can be used to perform both these tasks." msgstr "" "Применение исправлений безопасности своевременно и обновление до более новой " "версии операционной системы являются важными аспектами текущего " "администрирования системы. FreeBSD включает утилиту `freebsd-update`, " "которую можно использовать для выполнения обеих задач." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:89 msgid "" "This utility supports binary security and errata updates to FreeBSD, without " "the need to manually compile and install the patch or a new kernel. Binary " "updates are available for all architectures and releases currently supported " "by the security team. The list of supported releases and their estimated " "end-of-life dates are listed at https://www.FreeBSD.org/security/[https://" "www.FreeBSD.org/security/]." msgstr "" "Этот инструмент поддерживает бинарные обновления безопасности и исправления " "ошибок в FreeBSD без необходимости ручной компиляции и установки патчей или " "нового ядра. Бинарные обновления доступны для всех архитектур и выпусков, " "которые в настоящее время поддерживаются командой безопасности. Список " "поддерживаемых выпусков и их предполагаемые даты окончания поддержки " "приведены на странице https://www.FreeBSD.org/security/[https://www.FreeBSD." "org/security/]." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:93 msgid "" "This utility also supports operating system upgrades to minor point releases " "as well as upgrades to another release branch. Before upgrading to a new " "release, review its release announcement as it contains important " "information pertinent to the release. Release announcements are available " "from https://www.FreeBSD.org/releases/[https://www.FreeBSD.org/releases/]." msgstr "" "Эта утилита также поддерживает обновления операционной системы со сменой " "младших версий, а также переход на другую ветку выпусков. Перед обновлением " "до нового выпуска ознакомьтесь с его анонсом, так как он содержит важную " "информацию, относящуюся к выпуску. Анонсы выпусков доступны по адресу " "https://www.FreeBSD.org/releases/[https://www.FreeBSD.org/releases/]." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:97 msgid "" "If a man:crontab[5] utilizing the features of man:freebsd-update[8] exists, " "it must be disabled before upgrading the operating system." msgstr "" "Если существует man:crontab[5], использующий возможности man:freebsd-" "update[8], его необходимо отключить перед обновлением операционной системы." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:100 msgid "" "This section describes the configuration file used by `freebsd-update`, " "demonstrates how to apply a security patch and how to upgrade to a minor or " "major operating system release, and discusses some of the considerations " "when upgrading the operating system." msgstr "" "В этом разделе описывается файл конфигурации, используемый `freebsd-update`, " "демонстрируется применение патча безопасности, обновление со сменой младшей " "или старшей версии операционной системы, а также рассматриваются некоторые " "аспекты, которые следует учитывать при обновлении ОС." #. type: Title === #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:102 #, no-wrap msgid "The Configuration File" msgstr "Файл конфигурации" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:107 msgid "" "The default configuration file for `freebsd-update` works as-is. Some users " "may wish to tweak the default configuration in [.filename]#/etc/freebsd-" "update.conf#, allowing better control of the process. The comments in this " "file explain the available options, but the following may require a bit more " "explanation:" msgstr "" "Файл конфигурации по умолчанию для `freebsd-update` работает без изменений. " "Некоторые пользователи могут захотеть настроить конфигурацию по умолчанию в " "[.filename]#/etc/freebsd-update.conf#, чтобы лучше контролировать процесс. " "Комментарии в этом файле объясняют доступные опции, но следующие моменты " "могут потребовать дополнительного пояснения:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:112 #, no-wrap msgid "" "# Components of the base system which should be kept updated.\n" "Components world kernel\n" msgstr "" "# Components of the base system which should be kept updated.\n" "Components world kernel\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:119 msgid "" "This parameter controls which parts of FreeBSD will be kept up-to-date. The " "default is to update the entire base system and the kernel. Individual " "components can instead be specified, such as `src/base` or `src/sys`. " "However, the best option is to leave this at the default as changing it to " "include specific items requires every needed item to be listed. Over time, " "this could have disastrous consequences as source code and binaries may " "become out of sync." msgstr "" "Этот параметр определяет, какие части FreeBSD будут поддерживаться в " "актуальном состоянии. По умолчанию обновляется вся базовая система и ядро. " "Вместо этого можно указать отдельные компоненты, например `src/base` или " "`src/sys`. Однако лучшим вариантом будет оставить значение по умолчанию, так " "как изменение параметра для включения конкретных компонентов требует " "перечисления всех необходимых элементов. Со временем это может привести к " "катастрофическим последствиям, поскольку исходный код и исполняемые файлы " "могут перестать быть синхронизированными." #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:125 #, no-wrap msgid "" "# Paths which start with anything matching an entry in an IgnorePaths\n" "# statement will be ignored.\n" "IgnorePaths /boot/kernel/linker.hints\n" msgstr "" "# Paths which start with anything matching an entry in an IgnorePaths\n" "# statement will be ignored.\n" "IgnorePaths /boot/kernel/linker.hints\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:129 msgid "" "To leave specified directories, such as [.filename]#/bin# or [.filename]#/" "sbin#, untouched during the update process, add their paths to this " "statement. This option may be used to prevent `freebsd-update` from " "overwriting local modifications." msgstr "" "Чтобы оставить указанные каталоги, такие как [.filename]#/bin# или [." "filename]#/sbin#, без изменений в процессе обновления, добавьте их пути в " "эту инструкцию. Эта опция может быть использована для предотвращения " "перезаписи локальных изменений с помощью `freebsd-update`." #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:136 #, no-wrap msgid "" "# Paths which start with anything matching an entry in an UpdateIfUnmodified\n" "# statement will only be updated if the contents of the file have not been\n" "# modified by the user (unless changes are merged; see below).\n" "UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile\n" msgstr "" "# Paths which start with anything matching an entry in an UpdateIfUnmodified\n" "# statement will only be updated if the contents of the file have not been\n" "# modified by the user (unless changes are merged; see below).\n" "UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:141 msgid "" "This option will only update unmodified configuration files in the specified " "directories. Any changes made by the user will prevent the automatic " "updating of these files. There is another option, `KeepModifiedMetadata`, " "which will instruct `freebsd-update` to save the changes during the merge." msgstr "" "Эта опция будет обновлять только неизмененные конфигурационные файлы в " "указанных каталогах. Любые изменения, внесенные пользователем, предотвратят " "автоматическое обновление этих файлов. Существует другая опция, " "`KeepModifiedMetadata`, которая предписывает `freebsd-update` сохранять " "изменения во время слияния." #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:147 #, no-wrap msgid "" "# When upgrading to a new FreeBSD release, files which match MergeChanges\n" "# will have any local changes merged into the version from the new release.\n" "MergeChanges /etc/ /var/named/etc/ /boot/device.hints\n" msgstr "" "# When upgrading to a new FreeBSD release, files which match MergeChanges\n" "# will have any local changes merged into the version from the new release.\n" "MergeChanges /etc/ /var/named/etc/ /boot/device.hints\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:153 msgid "" "List of directories with configuration files that `freebsd-update` should " "attempt to merge. The file merge process is a series of man:diff[1] " "patches. Merges are either accepted, open an editor, or cause `freebsd-" "update` to abort. When in doubt, backup [.filename]#/etc# and just accept " "the merges." msgstr "" "Список каталогов с файлами конфигурации, которые `freebsd-update` должен " "попытаться объединить. Процесс объединения файлов представляет собой серию " "патчей man:diff[1]. Объединения могут быть приняты, открыты в редакторе или " "привести к прерыванию работы `freebsd-update`. В случае сомнений создайте " "резервную копию [.filename]#/etc# и просто примите объединения." #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:159 #, no-wrap msgid "" "# Directory in which to store downloaded updates and temporary\n" "# files used by FreeBSD Update.\n" "# WorkDir /var/db/freebsd-update\n" msgstr "" "# Directory in which to store downloaded updates and temporary\n" "# files used by FreeBSD Update.\n" "# WorkDir /var/db/freebsd-update\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:163 msgid "" "This directory is where all patches and temporary files are placed. In " "cases where the user is doing a version upgrade, this location should have " "at least a gigabyte of disk space available." msgstr "" "Этот каталог предназначен для всех патчей и временных файлов. В случае " "обновления версии в этом расположении должно быть доступно как минимум " "гигабайт дискового пространства." #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:171 #, no-wrap msgid "" "# When upgrading between releases, should the list of Components be\n" "# read strictly (StrictComponents yes) or merely as a list of components\n" "# which *might* be installed of which FreeBSD Update should figure out\n" "# which actually are installed and upgrade those (StrictComponents no)?\n" "# StrictComponents no\n" msgstr "" "# When upgrading between releases, should the list of Components be\n" "# read strictly (StrictComponents yes) or merely as a list of components\n" "# which *might* be installed of which FreeBSD Update should figure out\n" "# which actually are installed and upgrade those (StrictComponents no)?\n" "# StrictComponents no\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:175 msgid "" "When this option is set to `yes`, `freebsd-update` will assume that the " "`Components` list is complete and will not attempt to make changes outside " "of the list. Effectively, `freebsd-update` will attempt to update every " "file which belongs to the `Components` list." msgstr "" "Когда эта опция установлена в `yes`, `freebsd-update` будет считать список " "`Components` полным и не будет пытаться вносить изменения за его пределами. " "Фактически, `freebsd-update` попытается обновить каждый файл, принадлежащий " "списку `Components`." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:177 msgid "Refer to man:freebsd-update.conf[5] for more details." msgstr "" "Обратитесь к man:freebsd-update.conf[5] для получения дополнительной " "информации." #. type: Title === #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:179 #, no-wrap msgid "Applying Security Patches" msgstr "Применение обновлений безопасности" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:183 msgid "" "The process of applying FreeBSD security patches has been simplified, " "allowing an administrator to keep a system fully patched using `freebsd-" "update`. More information about FreeBSD security advisories can be found in " "crossref:security[security-advisories,\"FreeBSD Security Advisories\"]." msgstr "" "Процесс применения патчей безопасности FreeBSD был упрощен, что позволяет " "администратору поддерживать систему в полностью обновленном состоянии с " "помощью `freebsd-update`. Дополнительная информация о выпусках безопасности " "FreeBSD доступна в crossref:security[security-advisories,\"Рекомендации по " "безопасности FreeBSD\"]." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:187 msgid "" "FreeBSD security patches may be downloaded and installed using the following " "commands. The first command will determine if any outstanding patches are " "available, and if so, will list the files that will be modified if the " "patches are applied. The second command will apply the patches." msgstr "" "Обновления безопасности FreeBSD могут быть загружены и установлены с помощью " "следующих команд. Первая команда проверит наличие доступных обновлений и, " "если они есть, выведет список файлов, которые будут изменены при их " "применении. Вторая команда применит обновления." #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:192 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:290 #, no-wrap msgid "" "# freebsd-update fetch\n" "# freebsd-update install\n" msgstr "" "# freebsd-update fetch\n" "# freebsd-update install\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:196 msgid "" "If the update applies any kernel patches, the system will need a reboot in " "order to boot into the patched kernel. If the patch was applied to any " "running binaries, the affected applications should be restarted so that the " "patched version of the binary is used." msgstr "" "Если обновление включает какие-либо исправления для ядра, системе " "потребуется перезагрузка для загрузки исправленного ядра. Если исправление " "было применено к каким-либо выполняемым файлам, затронутые приложения " "следует перезапустить, чтобы использовалась исправленная версия бинарного " "файла." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:202 msgid "" "Usually, the user needs to be prepared to reboot the system. To know if the " "system requires a reboot due to a kernel update, execute the commands " "`freebsd-version -k` and `uname -r`. Reboot the system if the outputs " "differ." msgstr "" "Обычно пользователь должен быть готов перезагрузить систему. Чтобы " "проверить, требуется ли перезагрузка из-за обновления ядра, выполните " "команды `freebsd-version -k` и `uname -r`. Перезагрузите систему, если их " "вывод различается." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:205 msgid "" "The system can be configured to automatically check for updates once every " "day by adding this entry to [.filename]#/etc/crontab#:" msgstr "" "Систему можно настроить для автоматической проверки обновлений раз в день, " "добавив следующую запись в [.filename]#/etc/crontab#:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:209 #, no-wrap msgid "@daily root freebsd-update cron\n" msgstr "@daily root freebsd-update cron\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:213 msgid "" "If patches exist, they will automatically be downloaded but will not be " "applied. The `root` user will be sent an email so that the patches may be " "reviewed and manually installed with `freebsd-update install`." msgstr "" "Если существуют патчи, они будут автоматически загружены, но не применены. " "Пользователь `root` получит письмо, чтобы патчи можно было просмотреть и " "установить вручную с помощью `freebsd-update install`." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:215 msgid "" "If anything goes wrong, `freebsd-update` has the ability to roll back the " "last set of changes with the following command:" msgstr "" "Если что-то пойдет не так, `freebsd-update` может откатить последние " "изменения с помощью следующей команды:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:220 #, no-wrap msgid "" "# freebsd-update rollback\n" "Uninstalling updates... done.\n" msgstr "" "# freebsd-update rollback\n" "Uninstalling updates... done.\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:223 msgid "" "Again, the system should be restarted if the kernel or any kernel modules " "were modified and any affected binaries should be restarted." msgstr "" "Вновь, система должна быть перезапущена, если ядро или какие-либо модули " "ядра были изменены, и все затронутые бинарные файлы должны быть перезапущены." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:228 msgid "" "Only the [.filename]#GENERIC# kernel can be automatically updated by " "`freebsd-update`. If a custom kernel is installed, it will have to be " "rebuilt and reinstalled after `freebsd-update` finishes installing the " "updates. The default kernel name is _GENERIC_. The man:uname[1] command " "may be used to verify its installation." msgstr "" "Только ядро [.filename]#GENERIC# может быть автоматически обновлено с " "помощью `freebsd-update`. Если установлено пользовательское ядро, его " "необходимо пересобрать и переустановить после завершения установки " "обновлений `freebsd-update`. Имя ядра по умолчанию — _GENERIC_. Для проверки " "его установки можно использовать команду man:uname[1]." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:234 msgid "" "Always keep a copy of the [.filename]#GENERIC# kernel in [.filename]#/boot/" "GENERIC#. It will be helpful in diagnosing a variety of problems and in " "performing version upgrades. Refer to crossref:cutting-edge[freebsd-update-" "custom-kernel-9x, Custom Kernels with FreeBSD 9.X and Later] for " "instructions on how to get a copy of the [.filename]#GENERIC# kernel." msgstr "" "Всегда сохраняйте копию ядра [.filename]#GENERIC# в [.filename]#/boot/" "GENERIC#. Оно может быть полезно при диагностике различных проблем и при " "обновлении версий. Инструкции по получению копии ядра [.filename]#GENERIC# " "можно найти в crossref:cutting-edge[freebsd-update-custom-kernel-9x, Custom " "Kernels with FreeBSD 9.X and Later]." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:239 msgid "" "Unless the default configuration in [.filename]#/etc/freebsd-update.conf# " "has been changed, `freebsd-update` will install the updated kernel sources " "along with the rest of the updates. Rebuilding and reinstalling a new " "custom kernel can then be performed in the usual way." msgstr "" "Если конфигурация по умолчанию в [.filename]#/etc/freebsd-update.conf# не " "была изменена, `freebsd-update` установит обновленные исходные коды ядра " "вместе с остальными обновлениями. Затем пересборка и переустановка нового " "пользовательского ядра могут быть выполнены обычным способом." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:246 msgid "" "The updates distributed by `freebsd-update` do not always involve the " "kernel. It is not necessary to rebuild a custom kernel if the kernel " "sources have not been modified by `freebsd-update install`. However, " "`freebsd-update` will always update [.filename]#/usr/src/sys/conf/newvers." "sh#. The current patch level, as indicated by the `-p` number reported by " "`uname -r`, is obtained from this file. Rebuilding a custom kernel, even if " "nothing else changed, allows `uname` to accurately report the current patch " "level of the system. This is particularly helpful when maintaining multiple " "systems, as it allows for a quick assessment of the updates installed in " "each one." msgstr "" "Обновления, распространяемые через `freebsd-update`, не всегда затрагивают " "ядро. Нет необходимости пересобирать собственное ядро, если исходные коды " "ядра не были изменены командой `freebsd-update install`. Однако `freebsd-" "update` всегда обновляет файл [.filename]#/usr/src/sys/conf/newvers.sh#. " "Текущий уровень патча, обозначаемый числом после `-p` в выводе `uname -r`, " "берётся из этого файла. Пересборка собственного ядра, даже если ничего " "больше не менялось, позволяет `uname` точно отображать текущий уровень патча " "системы. Это особенно полезно при обслуживании нескольких систем, так как " "позволяет быстро оценить установленные обновления на каждой из них." #. type: Title === #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:248 #, no-wrap msgid "Performing Minor and Major Version Upgrades" msgstr "Выполнение обновлений с изменением младших и старших версий" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:251 msgid "" "Upgrades from one minor version of FreeBSD to another are called _minor " "version_ upgrades. An example:" msgstr "" "Обновления с изменением младшей версии FreeBSD называются _минорными " "обновлениями_. Пример:" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:253 msgid "FreeBSD 13.1 to 13.2." msgstr "FreeBSD 13.1 до 13.2." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:255 msgid "_Major version_ upgrades increase the major version number. An example:" msgstr "_Мажорные_ обновления увеличивают номер старшей версии. Пример:" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:257 msgid "FreeBSD 13.2 to 14.0." msgstr "FreeBSD 13.2 до 14.0." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:259 msgid "" "Both types of upgrade can be performed by providing `freebsd-update` with a " "release version target." msgstr "" "Оба типа обновления могут быть выполнены путем указания `freebsd-update` " "целевой версии выпуска." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:265 msgid "" "After each new `RELEASE`, FreeBSD package build servers will, for a limited " "period, *not* use the newer version of the operating system. This provides " "continuity for the many users who do not upgrade immediately after a release " "announcement. For example:" msgstr "" "После каждого нового выпуска `RELEASE` серверы сборки пакетов FreeBSD в " "течение ограниченного периода времени *не* используют новую версию " "операционной системы. Это обеспечивает преемственность для многих " "пользователей, которые не обновляются сразу после объявления о выпуске. " "Например:" #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:267 msgid "" "packages for users of 13.1 and 13.2 will be built on a server running 13.1, " "until 13.1 reaches end of life" msgstr "" "Пакеты для пользователей версий 13.1 и 13.2 будут собираться на сервере под " "управлением 13.1, пока поддержка 13.1 не прекратится" #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:269 msgid "and, critically:" msgstr "и, что критически важно:" #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:271 msgid "a kernel module that is built on 13.1 might *not* be suitable for 13.2." msgstr "" "модуль ядра, собранный в версии 13.1, *может* не подойти для версии 13.2." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:273 msgid "" "So, with any minor or major OS upgrade, if the package requirements include " "any kernel module:" msgstr "" "Итак, при любом обновлении ОС, будь то обновление младшей или старшей " "версии, если ваш пакет требует включить какой-либо модуль ядра:" #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:275 #, no-wrap msgid "*be prepared to build the module from source*.\n" msgstr "*будьте готовы собрать модуль из исходного кода*\n" #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:282 msgid "" "If the system is running a custom kernel, make sure that a copy of the [." "filename]#GENERIC# kernel exists in [.filename]#/boot/GENERIC# before " "starting the upgrade. Refer to crossref:cutting-edge[freebsd-update-custom-" "kernel-9x, Custom Kernels with FreeBSD 9.X and Later] for instructions on " "how to get a copy of the [.filename]#GENERIC# kernel." msgstr "" "Если система работает на собственном ядре, убедитесь перед началом " "обновления, что копия ядра [.filename]#GENERIC# осталась в [.filename]#/boot/" "GENERIC#. Обратитесь к разделу crossref:cutting-edge[freebsd-update-custom-" "kernel-9x, Собственные ядра системы в FreeBSD 9.X и более поздних версиях] " "для получения инструкций о том, как получить копию ядра [.filename]#GENERIC#." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:285 msgid "" "Before upgrading to a new version, ensure the existing FreeBSD installation " "is up to date with respect to security and errata patches:" msgstr "" "Перед обновлением до новой версии убедитесь, что текущая установка FreeBSD " "обновлена с учётом исправлений безопасности и ошибок:" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:293 msgid "" "The following command, when run on a FreeBSD 13.1 system, will upgrade it to " "FreeBSD 13.2:" msgstr "" "Следующая команда, выполненная на системе FreeBSD 13.1, обновит её до версии " "FreeBSD 13.2:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:297 #, no-wrap msgid "# freebsd-update -r 13.2-RELEASE upgrade\n" msgstr "# freebsd-update -r 13.2-RELEASE upgrade\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:302 msgid "" "After the command has been received, `freebsd-update` will evaluate the " "configuration file and current system in an attempt to gather the " "information necessary to perform the upgrade. A screen listing will display " "which components have and have not been detected. For example:" msgstr "" "После получения команды `freebsd-update` оценит файл конфигурации и текущую " "систему, чтобы собрать информацию, необходимую для выполнения обновления. На " "экране появится список компонентов, которые были и не были обнаружены. " "Например:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:309 #, no-wrap msgid "" "Looking up update.FreeBSD.org mirrors... 1 mirrors found.\n" "Fetching metadata signature for 13.1-RELEASE from update1.FreeBSD.org... done.\n" "Fetching metadata index... done.\n" "Inspecting system... done.\n" msgstr "" "Looking up update.FreeBSD.org mirrors... 1 mirrors found.\n" "Fetching metadata signature for 13.1-RELEASE from update1.FreeBSD.org... done.\n" "Fetching metadata index... done.\n" "Inspecting system... done.\n" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:315 #, no-wrap msgid "" "The following components of FreeBSD seem to be installed:\n" "kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games\n" "src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue\n" "src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin\n" "world/base world/info world/lib32 world/manpages\n" msgstr "" "The following components of FreeBSD seem to be installed:\n" "kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games\n" "src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue\n" "src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin\n" "world/base world/info world/lib32 world/manpages\n" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:319 #, no-wrap msgid "" "The following components of FreeBSD do not seem to be installed:\n" "kernel/generic world/catpages world/dict world/doc world/games\n" "world/proflibs\n" msgstr "" "The following components of FreeBSD do not seem to be installed:\n" "kernel/generic world/catpages world/dict world/doc world/games\n" "world/proflibs\n" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:321 #, no-wrap msgid "Does this look reasonable (y/n)? y\n" msgstr "Does this look reasonable (y/n)? y\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:325 msgid "" "At this point, `freebsd-update` will attempt to download all files required " "for the upgrade. In some cases, the user may be prompted with questions " "regarding what to install or how to proceed." msgstr "" "На этом этапе `freebsd-update` попытается загрузить все файлы, необходимые " "для обновления. В некоторых случаях пользователю могут быть заданы вопросы " "относительно того, что установить или как продолжить." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:327 msgid "" "When using a custom kernel, the above step will produce a warning similar to " "the following:" msgstr "" "При использовании собственного ядра вышеуказанный шаг вызовет " "предупреждение, подобное следующему:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:334 #, no-wrap msgid "" "WARNING: This system is running a \"MYKERNEL\" kernel, which is not a\n" "kernel configuration distributed as part of FreeBSD 13.1-RELEASE.\n" "This kernel will not be updated: you MUST update the kernel manually\n" "before running \"/usr/sbin/freebsd-update install\"\n" msgstr "" "WARNING: This system is running a \"MYKERNEL\" kernel, which is not a\n" "kernel configuration distributed as part of FreeBSD 13.1-RELEASE.\n" "This kernel will not be updated: you MUST update the kernel manually\n" "before running \"/usr/sbin/freebsd-update install\"\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:338 msgid "" "This warning may be safely ignored at this point. The updated [." "filename]#GENERIC# kernel will be used as an intermediate step in the " "upgrade process." msgstr "" "Это предупреждение можно безопасно проигнорировать на данном этапе. " "Обновлённое ядро [.filename]#GENERIC# будет использовано как промежуточный " "шаг в процессе обновления." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:347 msgid "" "Once all the patches have been downloaded to the local system, they will be " "applied. This process may take a while, depending on the speed and workload " "of the machine. Configuration files will then be merged. The merging " "process requires some user intervention as a file may be merged or an editor " "may appear on screen for a manual merge. The results of every successful " "merge will be shown to the user as the process continues. A failed or " "ignored merge will cause the process to abort. Users may wish to make a " "backup of [.filename]#/etc# and manually merge important files, such as [." "filename]#master.passwd# or [.filename]#group# at a later time." msgstr "" "После загрузки всех патчей в локальную систему они будут применены. Этот " "процесс может занять некоторое время в зависимости от скорости и " "загруженности машины. Затем будут объединены конфигурационные файлы. Процесс " "объединения требует вмешательства пользователя, так как файл может быть " "объединен автоматически или на экране появится редактор для ручного " "объединения. Результаты каждого успешного объединения будут отображаться " "пользователю по мере выполнения процесса. Неудачное или пропущенное " "объединение приведет к прерыванию процесса. Пользователям рекомендуется " "создать резервную копию [.filename]#/etc# и вручную объединить важные файлы, " "такие как [.filename]#master.passwd# или [.filename]#group#, позже." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:354 msgid "" "The system is not being altered yet as all patching and merging is happening " "in another directory. Once all patches have been applied successfully, all " "configuration files have been merged and it seems the process will go " "smoothly, the changes can be committed to disk by the user using the " "following command:" msgstr "" "Система пока не изменяется, так как все исправления и слияния происходят в " "другом каталоге. Как только все исправления будут успешно применены, все " "конфигурационные файлы объединены и процесс, по всей видимости, пройдёт без " "проблем, пользователь может записать изменения на диск с помощью следующей " "команды:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:358 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:394 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:471 #, no-wrap msgid "# freebsd-update install\n" msgstr "# freebsd-update install\n" #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:365 msgid "" "The kernel and kernel modules will be patched first. If the system is " "running with a custom kernel, use man:nextboot[8] to set the kernel for the " "next boot to the updated [.filename]#/boot/GENERIC#:" msgstr "" "Ядро и модули ядра будут пропатчены первыми. Если система работает с " "пользовательским ядром, используйте man:nextboot[8], чтобы установить ядро " "для следующей загрузки в обновлённый [.filename]#/boot/GENERIC#:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:369 #, no-wrap msgid "# nextboot -k GENERIC\n" msgstr "# nextboot -k GENERIC\n" #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:378 msgid "" "Before rebooting with the [.filename]#GENERIC# kernel, make sure it contains " "all the drivers required for the system to boot properly and connect to the " "network, if the machine being updated is accessed remotely. In particular, " "if the running custom kernel contains built-in functionality usually " "provided by kernel modules, make sure to temporarily load these modules into " "the [.filename]#GENERIC# kernel using the [.filename]#/boot/loader.conf# " "facility. It is recommended to disable non-essential services as well as " "any disk and network mounts until the upgrade process is complete." msgstr "" "Перед перезагрузкой с ядром [.filename]#GENERIC# убедитесь, что оно содержит " "все драйверы, необходимые для корректной загрузки системы и подключения к " "сети, если обновляемая машина доступна удалённо. В частности, если текущее " "кастомное ядро включает встроенную функциональность, обычно предоставляемую " "модулями ядра, убедитесь, что временно загрузили эти модули в ядро [." "filename]#GENERIC# с помощью механизма [.filename]#/boot/loader.conf#. Также " "рекомендуется отключить несущественные сервисы, а также любые монтирования " "дисков и сетевые подключения до завершения процесса обновления." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:381 msgid "The machine should now be restarted with the updated kernel:" msgstr "Машину теперь следует перезагрузить с обновлённым ядром:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:385 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1088 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1235 #, no-wrap msgid "# shutdown -r now\n" msgstr "# shutdown -r now\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:390 msgid "" "Once the system has come back online, restart `freebsd-update` using the " "following command. Since the state of the process has been saved, `freebsd-" "update` will not start from the beginning, but will instead move on to the " "next phase and remove all old shared libraries and object files." msgstr "" "После того как система снова станет доступной, перезапустите `freebsd-" "update` с помощью следующей команды. Поскольку состояние процесса сохранено, " "`freebsd-update` начнёт не с начала, а перейдёт к следующему этапу и удалит " "все старые общие библиотеки и объектные файлы." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:399 msgid "" "Depending upon whether any library version numbers were bumped, there may " "only be two install phases instead of three." msgstr "" "В зависимости от того, были ли изменены номера версий библиотек, может быть " "только две фазы установки вместо трёх." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:404 msgid "" "The upgrade is now complete. If this was a major version upgrade, reinstall " "all ports and packages as described in crossref:cutting-edge[freebsdupdate-" "portsrebuild, Upgrading Packages After a Major Version Upgrade]." msgstr "" "Обновление завершено. Если было выполнено обновление старшей версии, " "переустановите все порты и пакеты, как описано в crossref:cutting-" "edge[freebsdupdate-portsrebuild,Обновление пакетов после обновления старшей " "версии]." #. type: Title ==== #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:406 #, no-wrap msgid "Custom Kernels with FreeBSD 9.X and Later" msgstr "Собственные ядра в FreeBSD 9.X и более поздних версиях" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:411 msgid "" "Before using `freebsd-update`, ensure that a copy of the [." "filename]#GENERIC# kernel exists in [.filename]#/boot/GENERIC#. If a custom " "kernel has only been built once, the kernel in [.filename]#/boot/kernel.old# " "is the `GENERIC` kernel. Simply rename this directory to [.filename]#/boot/" "GENERIC#." msgstr "" "Перед использованием `freebsd-update` убедитесь, что копия ядра [." "filename]#GENERIC# осталось в [.filename]#/boot/GENERIC#. Если собственное " "ядро собиралось только один раз, ядро в [.filename]#/boot/kernel.old# " "является ядром `GENERIC`. Просто переименуйте этот каталог в [.filename]#/" "boot/GENERIC#." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:415 msgid "" "If a custom kernel has been built more than once or if it is unknown how " "many times the custom kernel has been built, obtain a copy of the `GENERIC` " "kernel that matches the current version of the operating system. If " "physical access to the system is available, a copy of the `GENERIC` kernel " "can be installed from the installation media:" msgstr "" "Если собственное ядро собиралось более одного раза или неизвестно, сколько " "раз оно пересобиралось, необходимо получить копию ядра `GENERIC`, " "соответствующую текущей версии операционной системы. Если есть физический " "доступ к системе, копию ядра `GENERIC` можно установить с установочного " "носителя:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:421 #, no-wrap msgid "" "# mount /media\n" "# cd /media/usr/freebsd-dist\n" "# tar -C/ -xvf kernel.txz boot/kernel/kernel\n" msgstr "" "# mount /media\n" "# cd /media/usr/freebsd-dist\n" "# tar -C/ -xvf kernel.txz boot/kernel/kernel\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:424 msgid "" "Alternately, the `GENERIC` kernel may be rebuilt and installed from source:" msgstr "" "Или ядро `GENERIC` может быть пересобрано и установлено из исходного кода:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:429 #, no-wrap msgid "" "# cd /usr/src\n" "# make kernel __MAKE_CONF=/dev/null SRCCONF=/dev/null\n" msgstr "" "# cd /usr/src\n" "# make kernel __MAKE_CONF=/dev/null SRCCONF=/dev/null\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:434 msgid "" "For this kernel to be identified as the `GENERIC` kernel by `freebsd-" "update`, the [.filename]#GENERIC# configuration file must not have been " "modified in any way. It is also suggested that the kernel is built without " "any other special options." msgstr "" "Чтобы ядро было идентифицировано как `GENERIC` с помощью `freebsd-update`, " "конфигурационный файл [.filename]#GENERIC# не должен быть каким-либо образом " "изменён. Также рекомендуется собирать ядро без каких-то дополнительных " "специальных опций." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:436 msgid "" "Rebooting into the [.filename]#GENERIC# kernel is not required as `freebsd-" "update` only needs [.filename]#/boot/GENERIC# to exist." msgstr "" "Перезагрузка с ядром [.filename]#GENERIC# не требуется, так как `freebsd-" "update` нужен только файл [.filename]#/boot/GENERIC#." #. type: Title ==== #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:438 #, no-wrap msgid "Upgrading Packages After a Major Version Upgrade" msgstr "Обновление пакетов после обновления старшей версии" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:445 msgid "" "Generally, installed applications will continue to work without problems " "after minor version upgrades. Major versions use different Application " "Binary Interfaces (ABIs), which will break most third-party applications. " "After a major version upgrade, all installed packages and ports need to be " "upgraded. Packages can be upgraded using `pkg upgrade`. To upgrade " "installed ports, use a utility such as package:ports-mgmt/portmaster[]." msgstr "" "Обычно установленные приложения продолжают работать без проблем после " "обновления младших версий. Старшие версии используют разные бинарные " "интерфейсы приложений (ABI), что приведёт к неработоспособности большинства " "сторонних приложений. После обновления старшей версии необходимо обновить " "все установленные пакеты и порты. Пакеты можно обновить с помощью `pkg " "upgrade`. Для обновления установленных портов используйте утилиты, например " "package:ports-mgmt/portmaster[]." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:449 msgid "" "A forced upgrade of all installed packages will replace the packages with " "fresh versions from the repository even if the version number has not " "increased. This is required because of the ABI version change when " "upgrading between major versions of FreeBSD. The forced upgrade can be " "accomplished by performing:" msgstr "" "Принудительное обновление всех установленных пакетов заменит пакеты на новые " "версии из репозитория, даже если номер версии не увеличился. Это необходимо " "из-за изменения версии ABI при обновлении между старшими версиями FreeBSD. " "Принудительное обновление можно выполнить с помощью команды:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:453 #, no-wrap msgid "# pkg-static upgrade -f\n" msgstr "# pkg-static upgrade -f\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:456 msgid "" "A rebuild of all applications installed from the ports collection can be " "accomplished with this command:" msgstr "" "Перестройка всех приложений, установленных из коллекции портов, может быть " "выполнена с помощью следующей команды:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:460 #, no-wrap msgid "# portmaster -af\n" msgstr "# portmaster -af\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:464 msgid "" "This command will display the configuration screens for each application " "that has configurable options and wait for the user to interact with those " "screens. To prevent this behavior, and use only the default options, " "include `-G` in the above command." msgstr "" "Эта команда отобразит экраны конфигурации для каждого приложения, имеющего " "настраиваемые параметры, и будет ожидать взаимодействия пользователя с этими " "экранами. Чтобы предотвратить такое поведение и использовать только " "параметры по умолчанию, добавьте `-G` в указанную выше команду." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:467 msgid "" "Once the software upgrades are complete, finish the upgrade process with a " "final call to `freebsd-update` in order to tie up all the loose ends in the " "upgrade process:" msgstr "" "После завершения обновления программного обеспечения завершите процесс " "обновления, выполнив последний вызов `freebsd-update`, чтобы устранить все " "нерешенные вопросы, оставшиеся в процессе обновления:" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:475 msgid "" "If the [.filename]#GENERIC# kernel was temporarily used, this is the time to " "build and install a new custom kernel using the instructions in crossref:" "kernelconfig[kernelconfig,Configuring the FreeBSD Kernel]." msgstr "" "Если временно использовалось ядро [.filename]#GENERIC#, сейчас самое время " "собрать и установить новое пользовательское ядро, следуя инструкциям из " "раздела crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD]." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:478 msgid "" "Reboot the machine into the new FreeBSD version. The upgrade process is now " "complete." msgstr "" "Перезагрузите машину с новой версией FreeBSD. Процесс обновления завершен." #. type: Title === #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:480 #, no-wrap msgid "System State Comparison" msgstr "Сравнение состояния системы" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:484 msgid "" "The state of the installed FreeBSD version against a known good copy can be " "tested using `freebsd-update IDS`. This command evaluates the current " "version of system utilities, libraries, and configuration files and can be " "used as a built-in Intrusion Detection System (IDS)." msgstr "" "Состояние установленной версии FreeBSD можно проверить с помощью `freebsd-" "update IDS`, сравнив его с известной исправной копией. Эта команда оценивает " "текущие версии системных утилит, библиотек и конфигурационных файлов и может " "использоваться как встроенная система обнаружения вторжений (IDS — Intrusion " "Detection System)." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:492 msgid "" "This command is not a replacement for a real IDS such as package:security/" "snort[]. As `freebsd-update` stores data on disk, the possibility of " "tampering is evident. While this possibility may be reduced using `kern." "securelevel` and by storing the `freebsd-update` data on a read-only file " "system when not in use, a better solution would be to compare the system " "against a secure disk, such as a DVD or securely stored external USB disk " "device. An alternative method for providing IDS functionality using a built-" "in utility is described in crossref:security[security-ids,\"Binary " "Verification\"]" msgstr "" "Эта команда не является заменой настоящей системы обнаружения вторжений, " "такой как package:security/snort[]. Поскольку `freebsd-update` хранит данные " "на диске, возможность их подделки очевидна. Хотя эту возможность можно " "уменьшить, используя `kern.securelevel` и сохраняя данные `freebsd-update` " "на файловой системе только для чтения, когда они не используются, лучшее " "решение — сравнить систему с защищённым диском, таким как DVD или надёжно " "хранимое внешнее USB-устройство. Альтернативный метод обеспечения " "функциональности системы обнаружения вторжений с использованием встроенной " "утилиты описан в crossref:security[security-ids,\"Проверка двоичных файлов\"]" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:495 msgid "" "To begin the comparison, specify the output file to save the results to:" msgstr "Для начала сравнения укажите выходной файл для сохранения результатов:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:499 #, no-wrap msgid "# freebsd-update IDS >> outfile.ids\n" msgstr "# freebsd-update IDS >> outfile.ids\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:502 msgid "" "The system will now be inspected and a lengthy listing of files, along with " "the SHA256 hash values for both the known value in the release and the " "current installation, will be sent to the specified output file." msgstr "" "Система будет проверена, и в указанный выходной файл будет отправлен длинный " "список файлов вместе с хеш-значениями SHA256, как для известного значения в " "релизе, так и для текущей установки." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:505 msgid "" "The entries in the listing are extremely long, but the output format may be " "easily parsed. For instance, to obtain a list of all files which differ " "from those in the release, issue the following command:" msgstr "" "Записи в списке очень длинные, но формат вывода легко анализировать. " "Например, чтобы получить список всех файлов, которые отличаются от файлов в " "выпуске, выполните следующую команду:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:513 #, no-wrap msgid "" "# cat outfile.ids | awk '{ print $1 }' | more\n" "/etc/master.passwd\n" "/etc/motd\n" "/etc/passwd\n" "/etc/pf.conf\n" msgstr "" "# cat outfile.ids | awk '{ print $1 }' | more\n" "/etc/master.passwd\n" "/etc/motd\n" "/etc/passwd\n" "/etc/pf.conf\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:520 msgid "" "This sample output has been truncated as many more files exist. Some files " "have natural modifications. For example, [.filename]#/etc/passwd# will be " "modified if users have been added to the system. Kernel modules may differ " "as `freebsd-update` may have updated them. To exclude specific files or " "directories, add them to the `IDSIgnorePaths` option in [.filename]#/etc/" "freebsd-update.conf#." msgstr "" "Этот пример вывода был сокращён, так как существует гораздо больше файлов. " "Некоторые файлы имеют естественные изменения. Например, [.filename]#/etc/" "passwd# будет изменён, если в систему были добавлены пользователи. Модули " "ядра могут отличаться, так как `freebsd-update` мог их обновить. Чтобы " "исключить определённые файлы или каталоги, добавьте их в параметр " "`IDSIgnorePaths` в файле [.filename]#/etc/freebsd-update.conf#." #. type: Title == #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:522 #, no-wrap msgid "Updating Bootcode" msgstr "Обновление загрузочного кода" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:525 msgid "" "The following manuals describe the upgrade process of bootcode and boot " "loaders: man:gpart[8], man:gptboot[8], man:gptzfsboot[8], and man:loader." "efi[8]." msgstr "" "Следующие руководства описывают процесс обновления загрузочного кода и " "загрузчиков: man:gpart[8], man:gptboot[8], man:gptzfsboot[8] и man:loader." "efi[8]." #. type: Title == #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:527 #, no-wrap msgid "Updating the Documentation Set" msgstr "Обновление документации" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:531 msgid "" "Documentation is an integral part of the FreeBSD operating system. While an " "up-to-date version of the FreeBSD documentation is always available on the " "FreeBSD web site (link:https://docs.FreeBSD.org[Documentation Portal]), it " "can be handy to have an up-to-date, local copy of the FreeBSD website, " "handbooks, FAQ, and articles." msgstr "" "Документация является неотъемлемой частью операционной системы FreeBSD. Хотя " "актуальная версия документации FreeBSD всегда доступна на сайте FreeBSD " "(link:https://docs.FreeBSD.org[Портал документации]), может быть удобно " "иметь актуальную локальную копию веб-сайта FreeBSD, руководств, FAQ и статей." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:533 msgid "" "This section describes how to use either source or the FreeBSD Ports " "Collection to keep a local copy of the FreeBSD documentation up-to-date." msgstr "" "Этот раздел описывает, как использовать исходный код или коллекцию портов " "FreeBSD для поддержания локальной копии документации FreeBSD в актуальном " "состоянии." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:536 msgid "" "For information on editing and submitting corrections to the documentation, " "refer to the FreeBSD Documentation Project Primer for New Contributors " "(extref:{fdp-primer}[FreeBSD Documentation Project Primer for New " "Contributors])." msgstr "" "Для получения информации о редактировании и отправке исправлений в " "документацию обратитесь к руководству \"Проект документации FreeBSD: " "введение для новых участников\" (extref:{fdp-primer}[Проект документации " "FreeBSD: введение для новых участников])." #. type: Title === #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:538 #, no-wrap msgid "Updating Documentation from Source" msgstr "Обновление документации из исходных текстов" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:542 msgid "" "Rebuilding the FreeBSD documentation from source requires a collection of " "tools which are not part of the FreeBSD base system. The required tools can " "be installed following extref:{fdp-primer}overview[these steps, overview-" "quick-start] from the FreeBSD Documentation Project Primer." msgstr "" "Пересборка документации FreeBSD из исходных текстов требует набора " "инструментов, которые не входят в базовую систему FreeBSD. Необходимые " "инструменты можно установить, следуя extref:{fdp-primer}overview[этим шагам, " "overview-quick-start] из вводного руководства Проекта документации FreeBSD." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:544 msgid "" "Once installed, use `git` to fetch a clean copy of the documentation source:" msgstr "" "После установки используйте `git`, чтобы получить чистую копию исходного " "кода документации:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:548 #, no-wrap msgid "# git clone https://git.FreeBSD.org/doc.git /usr/doc\n" msgstr "# git clone https://git.FreeBSD.org/doc.git /usr/doc\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:552 msgid "" "The initial download of the documentation sources may take a while. Let it " "run until it completes." msgstr "" "Первоначальная загрузка исходного кода документации может занять некоторое " "время. Дождитесь завершения процесса." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:554 msgid "Future updates of the documentation sources may be fetched by running:" msgstr "" "Будущие обновления исходного кода документации можно получить, выполнив:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:558 #, no-wrap msgid "# git pull\n" msgstr "# git pull\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:562 msgid "" "Once an up-to-date snapshot of the documentation sources has been fetched to " "[.filename]#/usr/doc#, everything is ready for an update of the installed " "documentation." msgstr "" "После того как актуальный снимок исходников документации будет загружен в [." "filename]#/usr/doc#, всё готово для обновления установленной документации." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:564 msgid "A full update may be performed by typing:" msgstr "Полное обновление можно выполнить, набрав:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:569 #, no-wrap msgid "" "# cd /usr/doc\n" "# make\n" msgstr "" "# cd /usr/doc\n" "# make\n" #. type: Title == #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:572 #, no-wrap msgid "Tracking a Development Branch" msgstr "Отслеживание ветки разработки" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:575 msgid "" "FreeBSD has two development branches: FreeBSD-CURRENT and FreeBSD-STABLE." msgstr "FreeBSD имеет две ветви разработки: FreeBSD-CURRENT и FreeBSD-STABLE." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:577 msgid "" "This section provides an explanation of each branch and its intended " "audience, as well as how to keep a system up-to-date with each respective " "branch." msgstr "" "Этот раздел содержит объяснение каждой ветки и её целевой аудитории, а также " "инструкции по поддержанию системы в актуальном состоянии для каждой из веток." #. type: Title === #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:579 #, no-wrap msgid "Using FreeBSD-CURRENT" msgstr "Использование FreeBSD-CURRENT" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:583 msgid "" "FreeBSD-CURRENT is the \"bleeding edge\" of FreeBSD development and FreeBSD-" "CURRENT users are expected to have a high degree of technical skill. Less " "technical users who wish to track a development branch should track FreeBSD-" "STABLE instead." msgstr "" "FreeBSD-CURRENT — это \"передовой край\" разработки FreeBSD, и от " "пользователей FreeBSD-CURRENT ожидается высокий уровень технической " "подготовки. Менее опытным пользователям, которые хотят следить за веткой " "разработки, рекомендуется использовать FreeBSD-STABLE." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:587 msgid "" "FreeBSD-CURRENT is the very latest source code for FreeBSD and includes " "works in progress, experimental changes, and transitional mechanisms that " "might or might not be present in the next official release. While many " "FreeBSD developers compile the FreeBSD-CURRENT source code daily, there are " "short periods of time when the source may not be buildable. These problems " "are resolved as quickly as possible, but whether or not FreeBSD-CURRENT " "brings disaster or new functionality can be a matter of when the source code " "was synced." msgstr "" "FreeBSD-CURRENT - это самые последние исходные коды FreeBSD, включающие " "текущие работы, экспериментальные изменения и переходные механизмы, которые " "могут как присутствовать, так и отсутствовать в следующем официальном " "выпуске. Хотя многие разработчики FreeBSD компилируют исходный код FreeBSD-" "CURRENT ежедневно, бывают короткие периоды, когда сборка кода может быть " "невозможна. Эти проблемы решаются как можно быстрее, но приведёт ли FreeBSD-" "CURRENT к катастрофе или новым возможностям, может зависеть от того, когда " "исходный код был синхронизирован." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:589 msgid "FreeBSD-CURRENT is made available for three primary interest groups:" msgstr "FreeBSD-CURRENT доступен для трёх основных групп пользователей:" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:591 msgid "" "Members of the FreeBSD community who are actively working on some part of " "the source tree." msgstr "" "Участники сообщества FreeBSD, которые активно работают над какой-либо частью " "дерева исходного кода." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:592 msgid "" "Members of the FreeBSD community who are active testers. They are willing to " "spend time solving problems, making topical suggestions on changes and the " "general direction of FreeBSD, and submitting patches." msgstr "" "Участники сообщества FreeBSD, которые активно тестируют. Они готовы тратить " "время на решение проблем, высказывать тематические предложения по изменениям " "и общему направлению развития FreeBSD, а также предоставлять патчи." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:593 msgid "" "Users who wish to keep an eye on things, use the current source for " "reference purposes, or make the occasional comment or code contribution." msgstr "" "Пользователи, которые хотят следить за происходящим, использовать текущие " "исходные коды для справки или иногда делать комментарии или вклад в код." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:597 msgid "" "FreeBSD-CURRENT should _not_ be considered a fast-track to getting new " "features before the next release as pre-release features are not yet fully " "tested and most likely contain bugs. It is not a quick way of getting bug " "fixes as any given commit is just as likely to introduce new bugs as to fix " "existing ones. FreeBSD-CURRENT is not in any way \"officially supported\"." msgstr "" "Версия FreeBSD-CURRENT _не_ должна рассматриваться как быстрый способ " "получить новые функции до следующего релиза, так как предрелизные функции " "ещё не полностью протестированы и, скорее всего, содержат ошибки. Это не " "быстрый способ исправления багов, так как каждый коммит с такой же " "вероятностью может добавить новые ошибки, как и исправить существующие. " "FreeBSD-CURRENT ни в коем случае не является \"официально поддерживаемой\"." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:599 msgid "To track FreeBSD-CURRENT:" msgstr "Для отслеживания FreeBSD-CURRENT:" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:601 msgid "" "Join the {freebsd-current} and the {dev-commits-src-main} lists. This is " "_essential_ in order to see the comments that people are making about the " "current state of the system and to receive important bulletins about the " "current state of FreeBSD-CURRENT." msgstr "" "Присоединитесь к спискам рассылки {freebsd-current} и {dev-commits-src-" "main}. Это _важно_ для того, чтобы видеть комментарии пользователей о " "текущем состоянии системы и получать важные уведомления о состоянии FreeBSD-" "CURRENT." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:603 msgid "" "The {dev-commits-src-main} list records the commit log entry for each change " "as it is made, along with any pertinent information on possible side effects." msgstr "" "Список {dev-commits-src-main} фиксирует запись журнала изменений для каждого " "внесённого изменения, а также любую сопутствующую информацию о возможных " "побочных эффектах." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:606 msgid "" "To join these lists, go to {mailing-lists}, click on the list to subscribe " "to, and follow the instructions. In order to track changes to the whole " "source tree, not just the changes to FreeBSD-CURRENT, subscribe to the {dev-" "commits-src-all}." msgstr "" "Чтобы присоединиться к этим спискам, перейдите на {mailing-lists}, выберите " "список, к которому хотите подписаться, и следуйте инструкциям. Для " "отслеживания изменений во всём дереве исходного кода, а не только в FreeBSD-" "CURRENT, подпишитесь на {dev-commits-src-all}." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:607 msgid "" "Synchronize with the FreeBSD-CURRENT sources. Typically, `git` is used to " "check out the -CURRENT code from the `main` branch of the FreeBSD Git " "repository (see crossref:mirrors[git,“Using Git”] for details)." msgstr "" "Синхронизация с исходным кодом FreeBSD-CURRENT. Обычно для получения кода -" "CURRENT из ветки `main` репозитория FreeBSD Git используется `git` " "(подробности см. в crossref:mirrors[git,“Использование Git”])." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:608 msgid "" "Due to the size of the repository, some users choose to only synchronize the " "sections of source that interest them or which they are contributing patches " "to. However, users that plan to compile the operating system from source " "must download _all_ of FreeBSD-CURRENT, not just selected portions." msgstr "" "Из-за размера репозитория некоторые пользователи предпочитают " "синхронизировать только те разделы исходного кода, которые их интересуют или " "для которых они готовят патчи. Однако пользователи, планирующие собирать " "операционную систему из исходных кодов, должны загрузить _весь_ FreeBSD-" "CURRENT, а не только отдельные его части." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:612 msgid "" "Before compiling FreeBSD-CURRENT, read [.filename]#/usr/src/Makefile# very " "carefully and follow the instructions in crossref:cutting-edge[makeworld, " "Updating FreeBSD from Source]. Read the {freebsd-current} and [.filename]#/" "usr/src/UPDATING# to stay up-to-date on other bootstrapping procedures that " "sometimes become necessary on the road to the next release." msgstr "" "Перед компиляцией FreeBSD-CURRENT внимательно прочитайте [.filename]#/usr/" "src/Makefile# и следуйте инструкциям в crossref:cutting-edge[makeworld," "Обновление FreeBSD из исходного кода]. Ознакомьтесь с {freebsd-current} и [." "filename]#/usr/src/UPDATING#, чтобы быть в курсе других процедур начальной " "загрузки, которые иногда становятся необходимыми на пути к следующему " "выпуску." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:613 msgid "" "Be active! FreeBSD-CURRENT users are encouraged to submit their suggestions " "for enhancements or bug fixes. Suggestions with accompanying code are always " "welcome." msgstr "" "Будьте активными! Пользователям FreeBSD-CURRENT рекомендуется предлагать " "свои идеи по улучшению или исправлению ошибок. Предложения с приложенным " "кодом всегда приветствуются." #. type: Title === #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:615 #, no-wrap msgid "Using FreeBSD-STABLE" msgstr "Использование FreeBSD-STABLE" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:622 msgid "" "FreeBSD-STABLE is the development branch from which major releases are " "made. Changes go into this branch at a slower pace and with the general " "assumption that they have first been tested in FreeBSD-CURRENT. This is " "_still_ a development branch and, at any given time, the sources for FreeBSD-" "STABLE may or may not be suitable for general use. It is simply another " "engineering development track, not a resource for end-users. Users who do " "not have the resources to perform testing should instead run the most recent " "release of FreeBSD." msgstr "" "FreeBSD-STABLE - это ветка разработки, из которой создаются основные " "выпуски. Изменения попадают в эту ветку медленнее и с общим предположением, " "что они сначала были протестированы в FreeBSD-CURRENT. Это _всё ещё_ ветка " "разработки, и в любой момент исходный код FreeBSD-STABLE может быть или не " "быть пригодным для общего использования. Это просто ещё один инженерный трек " "разработки, а не ресурс для конечных пользователей. Пользователям, у которых " "нет ресурсов для тестирования, следует использовать последний выпуск FreeBSD." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:624 msgid "" "Those interested in tracking or contributing to the FreeBSD development " "process, especially as it relates to the next release of FreeBSD, should " "consider following FreeBSD-STABLE." msgstr "" "Те, кто заинтересован в отслеживании или участии в процессе разработки " "FreeBSD, особенно в контексте следующего выпуска FreeBSD, могут рассмотреть " "возможность подписки на FreeBSD-STABLE." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:629 msgid "" "While the FreeBSD-STABLE branch should compile and run at all times, this " "cannot be guaranteed. Since more people run FreeBSD-STABLE than FreeBSD-" "CURRENT, it is inevitable that bugs and corner cases will sometimes be found " "in FreeBSD-STABLE that were not apparent in FreeBSD-CURRENT. For this " "reason, one should not blindly track FreeBSD-STABLE. It is particularly " "important _not_ to update any production servers to FreeBSD-STABLE without " "thoroughly testing the code in a development or testing environment." msgstr "" "Хотя ветка FreeBSD-STABLE должна компилироваться и работать в любое время, " "это не может быть гарантировано. Поскольку больше людей используют FreeBSD-" "STABLE, чем FreeBSD-CURRENT, неизбежно, что иногда в FreeBSD-STABLE будут " "обнаружены ошибки и крайние случаи, которые не были очевидны в FreeBSD-" "CURRENT. По этой причине не следует слепо следовать за FreeBSD-STABLE. " "Особенно важно _не_ обновлять какие-либо производственные серверы до FreeBSD-" "STABLE без тщательного тестирования кода в среде разработки или тестирования." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:631 msgid "To track FreeBSD-STABLE:" msgstr "Для отслеживания FreeBSD-STABLE:" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:633 msgid "" "Join the {freebsd-stable} in order to stay informed of build dependencies " "that may appear in FreeBSD-STABLE or any other issues requiring special " "attention. Developers will also make announcements in this mailing list when " "they are contemplating some controversial fix or update, giving the users a " "chance to respond if they have any issues to raise concerning the proposed " "change." msgstr "" "Присоединяйтесь к рассылке {freebsd-stable}, чтобы быть в курсе зависимостей " "сборки, которые могут появиться в FreeBSD-STABLE, или других вопросов, " "требующих особого внимания. Разработчики также будут объявлять в этой " "рассылке о рассмотрении спорных исправлений или обновлений, давая " "пользователям возможность высказаться, если у них есть замечания по " "предлагаемым изменениям." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:637 msgid "" "Join the relevant git list for the branch being tracked. For example, users " "tracking the {betarel-current-major}-STABLE branch should join the {dev-" "commits-src-branches}. This list records the commit log entry for each " "change as it is made, along with any pertinent information on possible side " "effects." msgstr "" "Присоединяйтесь к соответствующему списку рассылки git для отслеживаемой " "ветки. Например, пользователи, отслеживающие ветку {betarel-current-major}-" "STABLE, должны подписаться на {dev-commits-src-branches}. Этот список " "рассылает сообщения с комментарием коммита для каждого внесённого изменения, " "как только оно сделано, а также любую соответствующую информацию о возможных " "побочных эффектах." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:640 msgid "" "To join these lists, go to {mailing-lists}, click on the list to subscribe " "to, and follow the instructions. In order to track changes for the whole " "source tree, subscribe to {dev-commits-src-all}." msgstr "" "Чтобы присоединиться к этим спискам, перейдите на {mailing-lists}, выберите " "список для подписки и следуйте инструкциям. Для отслеживания изменений во " "всём дереве исходного кода подпишитесь на {dev-commits-src-all}." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:641 msgid "" "To install a new FreeBSD-STABLE system, install the most recent FreeBSD-" "STABLE release from the crossref:mirrors[mirrors,FreeBSD mirror sites] or " "use a monthly snapshot built from FreeBSD-STABLE. Refer to link:https://www." "FreeBSD.org/snapshots/[www.freebsd.org/snapshots] for more information about " "snapshots." msgstr "" "Для установки новой системы FreeBSD-STABLE установите последний выпуск " "FreeBSD-STABLE с crossref:mirrors[mirrors,сайтов зеркал FreeBSD] или " "используйте ежемесячный снимок, собранный из FreeBSD-STABLE. Дополнительную " "информацию о снимках можно найти на link:https://www.FreeBSD.org/snapshots/" "[www.freebsd.org/snapshots]." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:644 msgid "" "To compile or upgrade an existing FreeBSD system to FreeBSD-STABLE, use " "`git` to check out the source for the desired branch. Branch names, such as " "`stable/13`, are listed at link:https://www.FreeBSD.org/releng/[www.freebsd." "org/releng]." msgstr "" "Для компиляции или обновления существующей системы FreeBSD до FreeBSD-STABLE " "используйте `git` для получения исходного кода нужной ветки. Имена веток, " "например `stable/13`, перечислены на сайте link:https://www.FreeBSD.org/" "releng/[www.freebsd.org/releng]." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:647 msgid "" "Before compiling or upgrading to FreeBSD-STABLE , read [.filename]#/usr/src/" "Makefile# carefully and follow the instructions in crossref:cutting-" "edge[makeworld, Updating FreeBSD from Source]. Read the {freebsd-stable} and " "[.filename]#/usr/src/UPDATING# to keep up-to-date on other bootstrapping " "procedures that sometimes become necessary on the road to the next release." msgstr "" "Перед компиляцией или обновлением до FreeBSD-STABLE внимательно прочитайте " "файл [.filename]#/usr/src/Makefile# и следуйте инструкциям в crossref:" "cutting-edge[makeworld,Обновление FreeBSD из исходного кода]. Ознакомьтесь с " "{freebsd-stable} и файлом [.filename]#/usr/src/UPDATING#, чтобы быть в курсе " "других процедур начальной загрузки, которые иногда становятся необходимыми " "на пути к следующему выпуску." #. type: Title === #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:649 #, no-wrap msgid "The N-number" msgstr "N-номер" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:653 msgid "" "When tracking down bugs it is important to know which versions of the source " "code have been used to create the system exhibiting an issue. FreeBSD " "provides version information compiled into the kernel. man:uname[1] " "retrieves this information, for example:" msgstr "" "При поиске ошибок важно знать, какие версии исходного кода использовались " "для создания системы, в которой обнаружена проблема. FreeBSD предоставляет " "информацию о версии, встроенную в ядро. man:uname[1] извлекает эту " "информацию, например:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:657 #, no-wrap msgid "" "% uname -v\n" "FreeBSD 14.0-CURRENT #112 main-n247514-031260d64c18: Tue Jun 22 20:43:19 MDT 2021 fred@machine:/usr/home/fred/obj/usr/home/fred/git/head/amd64.amd64/sys/FRED\n" msgstr "" "% uname -v\n" "FreeBSD 14.0-CURRENT #112 main-n247514-031260d64c18: Tue Jun 22 20:43:19 MDT 2021 fred@machine:/usr/home/fred/obj/usr/home/fred/git/head/amd64.amd64/sys/FRED\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:660 msgid "" "The final field gives information regarding the kernel name, the person that " "built it, and the location that it was compiled in. Looking at the 4th " "field, it is made up of several parts:" msgstr "" "Последнее поле содержит информацию о названии ядра, человеке, который его " "собрал, и месте, где оно было скомпилировано. Рассматривая 4-е поле, можно " "увидеть, что оно состоит из нескольких частей:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:663 #, no-wrap msgid "main-n247514-031260d64c18\n" msgstr "main-n247514-031260d64c18\n" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:668 #, no-wrap msgid "" "main\t\t<.>\n" "n247514\t\t<.>\n" "031260d64c18\t<.>\n" "\t\t<.>\n" msgstr "" "main\t\t<.>\n" "n247514\t\t<.>\n" "031260d64c18\t<.>\n" "\t\t<.>\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:672 msgid "" "Git branch name. Note: comparisons of n-numbers are only valid on branches " "published by the project (`main`, `stable/XX` and `releng/XX`). Local " "branches will have n-numbers that will overlap commits of their parent " "branch." msgstr "" "Имя ветки Git. Примечание: сравнения n-номеров действительны только для " "веток, опубликованных проектом (`main`, `stable/XX` и `releng/XX`). " "Локальные ветки будут иметь n-номера, которые могут пересекаться с коммитами " "их родительской ветки." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:673 msgid "" "The n-number is a linear count of commits back to the start of the Git " "repository starting with the Git hash included in the line." msgstr "" "n-номер — это линейный счетчик коммитов от начала репозитория Git, начиная с " "хэша Git, указанного в строке." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:674 msgid "Git hash of the checked out tree" msgstr "Хэш Git дерева исходного кода" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:676 msgid "" "Sometimes a suffix of `-dirty` is present when the kernel was built in a " "tree with uncommitted changes. It is absent in this example because the " "FRED kernel was built from a pristine checkout." msgstr "" "Иногда добавляется суффикс `-dirty`, если ядро было собрано в дереве с " "незафиксированными изменениями. В данном примере он отсутствует, так как " "ядро FRED было собрано из чистой копии репозитория." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:679 msgid "" "The `git rev-list` command is used to find the n-number corresponding to a " "Git hash. For example:" msgstr "" "Команда `git rev-list` используется для нахождения n-номера, " "соответствующего хэшу Git. Например:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:683 #, no-wrap msgid "" "% git rev-list --first-parent --count 031260d64c18 <.>\n" "247514 <.>\n" msgstr "" "% git rev-list --first-parent --count 031260d64c18 <.>\n" "247514 <.>\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:685 msgid "git hash to translate (the hash from the above example is reused)" msgstr "" "Хеш git для перевода (используется тот же хеш из приведённого выше примера)" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:686 msgid "The n-number." msgstr "n-номер." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:692 msgid "" "Usually this number is not all that important. However, when bug fixes are " "committed, this number makes it easy to quickly determine whether the fix is " "present in the currently running system. Developers will often refer to the " "hash of the commit (or provide a URL which has that hash), but not the n-" "number since the hash is the easily visible identifier for a change while " "the n-number is not. Security advisories and errata notices will also note " "an n-number, which can be directly compared against the system. When " "shallow Git clones are used, n-numbers cannot be compared reliably, as the " "git rev-list command counts all revisions in the repository, which a shallow " "clone omits." msgstr "" "Обычно этот номер не так важен. Однако, когда фиксы ошибок попадают в " "репозиторий, это число позволяет быстро определить, присутствует ли " "исправление в текущей работающей системе. Разработчики часто ссылаются на " "хэш коммита (или предоставляют URL, содержащий этот хэш), но не указывают n-" "номер, так как хэш является легко видимым идентификатором изменения, в " "отличие от n-номера. В уведомлениях о безопасности и бюллетенях исправлений " "также указывается n-номер, который можно напрямую сравнить с вашей системой. " "Если используются неполные (shallow) клоны Git, n-номера не могут быть " "надежно надёжно сравнены, так как команда git rev-list подсчитывает все " "ревизии в репозитории, которые неполный клон пропускает." #. type: Title == #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:694 #, no-wrap msgid "Updating FreeBSD from Source" msgstr "Обновление FreeBSD из исходного кода" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:700 msgid "" "Updating FreeBSD by compiling from source offers several advantages over " "binary updates. Code can be built with options to take advantage of " "specific hardware. Parts of the base system can be built with non-default " "settings, or left out entirely where they are not needed or desired. The " "build process takes longer to update a system than just installing binary " "updates, but allows complete customization to produce a tailored version of " "FreeBSD." msgstr "" "Обновление FreeBSD путем компиляции из исходного кода предоставляет " "несколько преимуществ по сравнению с бинарными обновлениями. Код может быть " "собран с опциями, позволяющими использовать преимущества конкретного " "оборудования. Части базовой системы могут быть собраны с нестандартными " "настройками или полностью исключены, если они не нужны или нежелательны. " "Процесс сборки занимает больше времени для обновления системы по сравнению с " "установкой бинарных обновлений, но позволяет полностью настроить систему для " "создания адаптированной версии FreeBSD." #. type: Title === #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:702 #, no-wrap msgid "Quick Start" msgstr "Быстрый старт" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:706 msgid "" "This is a quick reference for the typical steps used to update FreeBSD by " "building from source. Later sections describe the process in more detail." msgstr "" "Это краткая справка по типовым шагам, используемым для обновления FreeBSD " "путем сборки из исходного кода. Более подробное описание процесса приведено " "в следующих разделах." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:711 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1019 msgid "" "When switching from man:mergemaster[8] to man:etcupdate[8], the first run " "might merge changes incorrectly generating spurious conflicts. To prevent " "this, perform the following steps *before* updating sources and building the " "new world:" msgstr "" "При переходе с man:mergemaster[8] на man:etcupdate[8] первый запуск может " "некорректно объединить изменения, создавая ложные конфликты. Чтобы избежать " "этого, выполните следующие действия *перед* обновлением исходных кодов и " "сборкой нового мира:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:716 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1024 #, no-wrap msgid "" "# etcupdate extract <.>\n" "# etcupdate diff <.>\n" msgstr "" "# etcupdate extract <.>\n" "# etcupdate diff <.>\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:719 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1027 msgid "" "Bootstrap the database of stock [.filename]#/etc# files; for more " "information see man:etcupdate[8]." msgstr "" "Загрузите базы данных стандартных файлов [.filename]#/etc#; дополнительную " "информацию смотрите в man:etcupdate[8]." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:721 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1029 msgid "" "Check the diff after bootstrapping. Trim any local changes that are no " "longer needed to reduce the chance of conflicts in future updates." msgstr "" "Проверьте изменения после начальной настройки. Удалите все локальные " "изменения, которые больше не нужны, чтобы уменьшить вероятность конфликтов " "при будущих обновлениях." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:726 msgid "Update and Build" msgstr "Обновление и сборка" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:740 #, no-wrap msgid "" "# git -C /usr/src pull <.>\n" "check /usr/src/UPDATING <.>\n" "# cd /usr/src <.>\n" "# make -j4 buildworld <.>\n" "# make -j4 kernel <.>\n" "# shutdown -r now <.>\n" "# etcupdate -p <.>\n" "# cd /usr/src <.>\n" "# make installworld <.>\n" "# etcupdate -B <.>\n" "# shutdown -r now <.>\n" msgstr "" "# git -C /usr/src pull <.>\n" "check /usr/src/UPDATING <.>\n" "# cd /usr/src <.>\n" "# make -j4 buildworld <.>\n" "# make -j4 kernel <.>\n" "# shutdown -r now <.>\n" "# etcupdate -p <.>\n" "# cd /usr/src <.>\n" "# make installworld <.>\n" "# etcupdate -B <.>\n" "# shutdown -r now <.>\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:744 msgid "" "Get the latest version of the source. See crossref:cutting-edge[updating-src-" "obtaining-src, Updating the Source] for more information on obtaining and " "updating source." msgstr "" "Получите последнюю версию исходного кода. Подробнее о получении и обновлении " "исходного кода см. в crossref:cutting-edge[updating-src-obtaining-src, " "Обновление исходного кода]." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:746 msgid "" "Check [.filename]#/usr/src/UPDATING# for any manual steps required before or " "after building from source." msgstr "" "Проверьте [.filename]#/usr/src/UPDATING# на наличие необходимых действий " "перед или после сборки из исходного кода." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:748 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:758 msgid "Go to the source directory." msgstr "Перейдите в исходный каталог." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:750 msgid "Compile the world, everything except the kernel." msgstr "Соберите систему (world), всё кроме ядра системы." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:752 msgid "" "Compile and install the kernel. This is equivalent to `make buildkernel " "installkernel`." msgstr "" "Скомпилируйте и установите ядро системы. Это эквивалентно `make buildkernel " "installkernel`." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:754 msgid "Reboot the system to the new kernel." msgstr "Перезагрузите систему с новым ядром." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:756 msgid "" "Update and merge configuration files in [.filename]#/etc/# required before " "installworld." msgstr "" "Обновите и объедините конфигурационные файлы в [.filename]#/etc/#, это " "обязательно перед выполнением installworld." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:760 msgid "Install the world." msgstr "Установить систему (world)." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:762 msgid "Update and merge configuration files in [.filename]#/etc/#." msgstr "Обновите и объедините конфигурационные файлы в [.filename]#/etc/#." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:764 msgid "Restart the system to use the newly-built world and kernel." msgstr "" "Перезагрузите систему для использования новой собранной системы (world) и " "ядра." #. type: Title === #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:767 #, no-wrap msgid "Preparing for a Source Update" msgstr "Подготовка к обновлению исходного кода" #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:770 msgid "" "Read [.filename]#/usr/src/UPDATING#. Any manual steps that must be performed " "before or after an update are described in this file." msgstr "" "Прочитайте файл [.filename]#/usr/src/UPDATING#. В этом файле описаны все " "необходимые действия, которые нужно выполнить до или после обновления." #. type: Title === #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:772 #, no-wrap msgid "Updating the Source" msgstr "Обновление исходного кода" #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:777 msgid "" "FreeBSD source code is located in [.filename]#/usr/src/#. The preferred " "method of updating this source is through the Git version control system. " "Verify that the source code is under version control:" msgstr "" "Исходный код FreeBSD находится в [.filename]#/usr/src/#. Предпочтительный " "метод обновления этого исходного кода — через систему управления версиями " "Git. Проверьте, что исходный код находится под управлением версий:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:784 #, no-wrap msgid "" "# cd /usr/src\n" "# git remote --v\n" "origin https://git.freebsd.org/src.git (fetch)\n" "origin https://git.freebsd.org/src.git (push)\n" msgstr "" "# cd /usr/src\n" "# git remote --v\n" "origin https://git.freebsd.org/src.git (fetch)\n" "origin https://git.freebsd.org/src.git (push)\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:787 msgid "" "This indicates that [.filename]#/usr/src/# is under version control and can " "be updated with man:git[1]:" msgstr "" "Это указывает, что [.filename]#/usr/src/# находится под управлением версий и " "может быть обновлён с помощью man:git[1]:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:792 #, no-wrap msgid "# git -C /usr/src pull\n" msgstr "# git -C /usr/src pull\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:796 msgid "" "The update process can take some time if the directory has not been updated " "recently. After it finishes, the source code is up to date and the build " "process described in the next section can begin." msgstr "" "Процесс обновления может занять некоторое время, если каталог не обновлялся " "в течение долгого периода. После завершения исходный код будет актуальным, и " "можно приступать к процессу сборки, описанному в следующем разделе." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:800 msgid "Obtaining the source:" msgstr "Получение исходного кода:" #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:803 msgid "" "If the output says `fatal: not a git repository`, the files there are " "missing or were installed with a different method. A new checkout of the " "source is required." msgstr "" "Если вывод содержит `fatal: not a git repository`, значит, файлы отсутствуют " "или были установлены другим способом. Необходимо выполнить новое получение " "исходного кода." #. type: Block title #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:806 #, no-wrap msgid "FreeBSD Versions and Repository Branches" msgstr "Версии FreeBSD и ветви репозиториев" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:810 #, no-wrap msgid "uname ‑r Output" msgstr "uname ‑r Output" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:811 #, no-wrap msgid "Repository Path" msgstr "Путь репозитория" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:813 #, no-wrap msgid "Description" msgstr "Описание" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:814 #, no-wrap msgid "`_X.Y_-RELEASE`" msgstr "`_X.Y_-RELEASE`" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:815 #, no-wrap msgid "`releng/_X.Y_`" msgstr "`releng/_X.Y_`" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:817 #, no-wrap msgid "The Release version plus only critical security and bug fix patches. This branch is recommended for most users." msgstr "Версия Release с добавлением только критических исправлений безопасности и ошибок. Эта ветка рекомендуется для большинства пользователей." #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:818 #, no-wrap msgid "`_X.Y_-STABLE`" msgstr "`_X.Y_-STABLE`" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:819 #, no-wrap msgid "`stable/_X_`" msgstr "`stable/_X_`" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:825 #, no-wrap msgid "" "The Release version plus all additional development on that branch. _STABLE_ refers to the Applications Binary Interface (ABI) not changing, so software compiled for earlier versions still runs. For example, software compiled to run on FreeBSD 10.1 will still run on FreeBSD 10-STABLE compiled later.\n" "\n" "STABLE branches occasionally have bugs or incompatibilities which might affect users, although these are typically fixed quickly." msgstr "" "Версия Release и все дополнительные разработки в этой ветке. _STABLE_ означает, что двоичный интерфейс приложений (ABI) не изменяется, поэтому программное обеспечение, скомпилированное для более ранних версий, продолжает работать. Например, программное обеспечение, скомпилированное для работы на FreeBSD 10.1, будет работать и на FreeBSD 10-STABLE, собранной позже. \n" "\n" "Ветки STABLE иногда содержат ошибки или несовместимости, которые могут повлиять на пользователей, хотя они обычно быстро исправляются." #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:826 #, no-wrap msgid "`_X_-CURRENT`" msgstr "`_X_-CURRENT`" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:827 #, no-wrap msgid "`main`" msgstr "`main`" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:828 #, no-wrap msgid "The latest unreleased development version of FreeBSD. The CURRENT branch can have major bugs or incompatibilities and is recommended only for advanced users." msgstr "Последняя невыпущенная разрабатываемая версия FreeBSD. Ветка CURRENT может содержать серьёзные ошибки или проблемы совместимости и рекомендуется только для опытных пользователей." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:831 msgid "Determine which version of FreeBSD is being used with man:uname[1]:" msgstr "Определите версию FreeBSD с помощью man:uname[1]:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:836 #, no-wrap msgid "" "# uname -r\n" "13.2-RELEASE\n" msgstr "" "# uname -r\n" "13.2-RELEASE\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:840 msgid "" "Based on crossref:cutting-edge[updating-src-obtaining-src-repopath,FreeBSD " "Versions and Repository Branches], the source used to update `13.2-RELEASE` " "has a repository path of `releng/13.2`. That path is used when checking out " "the source:" msgstr "" "На основе crossref:cutting-edge[updating-src-obtaining-src-repopath,Версии " "FreeBSD и ветви репозиториев], исходный код для обновления `13.2-RELEASE` " "имеет путь в репозитории `releng/13.2`. Этот путь используется при проверке " "исходного кода:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:845 #, no-wrap msgid "" "# mv /usr/src /usr/src.bak <.>\n" "# git clone --branch releng/13.2 https://git.FreeBSD.org/src.git /usr/src <.>\n" msgstr "" "# mv /usr/src /usr/src.bak <.>\n" "# git clone --branch releng/13.2 https://git.FreeBSD.org/src.git /usr/src <.>\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:848 msgid "" "Move the old directory out of the way. If there are no local modifications " "in this directory, it can be deleted." msgstr "" "Переместите старый каталог в другое место. Если в этом каталоге нет " "локальных изменений, его можно удалить." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:850 msgid "" "The path from crossref:cutting-edge[updating-src-obtaining-src-repopath," "FreeBSD Versions and Repository Branches] is added to the repository URL. " "The third parameter is the destination directory for the source code on the " "local system." msgstr "" "Путь из crossref:cutting-edge[updating-src-obtaining-src-repopath,Версии " "FreeBSD и ветви репозитория] добавляется к URL репозитория. Третий параметр " "— это целевой каталог для исходного кода в локальной системе." #. type: Title === #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:852 #, no-wrap msgid "Building from Source" msgstr "Сборка из исходного кода" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:857 msgid "" "The _world_, or all of the operating system except the kernel, is compiled. " "This is done first to provide up-to-date tools to build the kernel. Then " "the kernel itself is built:" msgstr "" "_Система (world)_ , или вся операционная система, за исключением ядра, " "компилируется. Это делается в первую очередь, чтобы предоставить актуальные " "инструменты для сборки ядра. Затем компилируется само ядро:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:863 #, no-wrap msgid "" "# cd /usr/src\n" "# make buildworld\n" "# make buildkernel\n" msgstr "" "# cd /usr/src\n" "# make buildworld\n" "# make buildkernel\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:866 msgid "The compiled code is written to [.filename]#/usr/obj#." msgstr "Скомпилированный код записывается в [.filename]#/usr/obj#." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:869 msgid "" "These are the basic steps. Additional options to control the build are " "described below." msgstr "" "Вот основные шаги. Дополнительные параметры для управления сборкой описаны " "ниже." #. type: Title ==== #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:871 #, no-wrap msgid "Performing a Clean Build" msgstr "Выполнение чистой сборки" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:876 msgid "" "Some versions of the FreeBSD build system leave previously-compiled code in " "the temporary object directory, [.filename]#/usr/obj#. This can speed up " "later builds by avoiding recompiling code that has not changed. To force a " "clean rebuild of everything, use `cleanworld` before starting a build:" msgstr "" "Некоторые версии системы сборки FreeBSD оставляют ранее скомпилированный код " "во временном каталоге объектов [.filename]#/usr/obj#. Это может ускорить " "последующие сборки, избегая перекомпиляции неизменившегося кода. Для " "принудительной чистой пересборки всего используйте `cleanworld` перед " "началом сборки:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:880 #, no-wrap msgid "# make cleanworld\n" msgstr "# make cleanworld\n" #. type: Title ==== #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:883 #, no-wrap msgid "Setting the Number of Jobs" msgstr "Установка количества задач" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:890 msgid "" "Increasing the number of build jobs on multi-core processors can improve " "build speed. Determine the number of cores with `sysctl hw.ncpu`. " "Processors vary, as do the build systems used with different versions of " "FreeBSD, so testing is the only sure method to tell how a different number " "of jobs affects the build speed. For a starting point, consider values " "between half and double the number of cores. The number of jobs is " "specified with `-j`." msgstr "" "Увеличение количества задач сборки на многоядерных процессорах может " "повысить скорость сборки. Определите количество ядер с помощью `sysctl hw." "ncpu`. Процессоры различаются, как и системы сборки, используемые в разных " "версиях FreeBSD, поэтому тестирование — единственный надёжный способ " "определить, как разное количество задач влияет на скорость сборки. В " "качестве отправной точки рассмотрите значения от половины до удвоенного " "количества ядер. Количество задач указывается с помощью `-j`." #. type: Block title #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:892 #, no-wrap msgid "Increasing the Number of Build Jobs" msgstr "Увеличение количества заданий сборки" #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:896 msgid "Building the world and kernel with four jobs:" msgstr "Сборка системы и ядра с использованием четырёх задач:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:900 #, no-wrap msgid "# make -j4 buildworld buildkernel\n" msgstr "# make -j4 buildworld buildkernel\n" #. type: Title ==== #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:905 #, no-wrap msgid "Building Only the Kernel" msgstr "Сборка только ядра" #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:910 msgid "" "A `buildworld` must be completed if the source code has changed. After " "that, a `buildkernel` to build a kernel can be run at any time. To build " "just the kernel:" msgstr "" "`buildworld` должен быть выполнен, если исходный код изменился. После этого " "`buildkernel` для сборки ядра может быть запущен в любое время. Чтобы " "собрать только ядро:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:915 #, no-wrap msgid "" "# cd /usr/src\n" "# make buildkernel\n" msgstr "" "# cd /usr/src\n" "# make buildkernel\n" #. type: Title ==== #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:918 #, no-wrap msgid "Building a Custom Kernel" msgstr "Сборка собственного ядра" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:923 msgid "" "The standard FreeBSD kernel is based on a _kernel config file_ called [." "filename]#GENERIC#. The [.filename]#GENERIC# kernel includes the most " "commonly-needed device drivers and options. Sometimes it is useful or " "necessary to build a custom kernel, adding or removing device drivers or " "options to fit a specific need." msgstr "" "Стандартное ядро FreeBSD основано на _конфигурационном файле ядра_ [." "filename]#GENERIC#. Ядро [.filename]#GENERIC# включает наиболее часто " "востребованные драйверы устройств и параметры. Иногда полезно или необходимо " "собрать собственное ядро, добавляя или удаляя драйверы устройств и параметры " "для соответствия конкретным требованиям." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:925 msgid "" "For example, someone developing a small embedded computer with severely " "limited RAM could remove unneeded device drivers or options to make the " "kernel slightly smaller." msgstr "" "Например, разработчик компактного встраиваемого компьютера с крайне " "ограниченным объёмом оперативной памяти может удалить ненужные драйверы " "устройств или опции, чтобы немного уменьшить размер ядра." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:928 msgid "" "Kernel config files are located in [.filename]#/usr/src/sys/arch/conf/#, " "where _arch_ is the output from `uname -m`. On most computers, that is " "`amd64`, giving a config file directory of [.filename]#/usr/src/sys/amd64/" "conf/#." msgstr "" "Файлы конфигурации ядра находятся в [.filename]#/usr/src/sys/arch/conf/#, " "где _arch_ — это результат выполнения команды `uname -m`. На большинстве " "компьютеров это `amd64`, что соответствует каталогу с конфигурационными " "файлами [.filename]#/usr/src/sys/amd64/conf/#." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:934 msgid "" "[.filename]#/usr/src# can be deleted or recreated, so it is preferable to " "keep custom kernel config files in a separate directory, like [.filename]#/" "root#. Link the kernel config file into the [.filename]#conf# directory. " "If that directory is deleted or overwritten, the kernel config can be re-" "linked into the new one." msgstr "" "[.filename]#/usr/src# можно удалить или создать заново, поэтому " "предпочтительнее хранить конфигурационные файлы собственного ядра в " "отдельном каталоге, например, в [.filename]#/root#. Свяжите конфигурационный " "файл ядра с каталогом [.filename]#conf#. Если этот каталог будет удалён или " "перезаписан, конфигурацию ядра можно снова связать с новым каталогом." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:938 msgid "" "A custom config file can be created by copying the [.filename]#GENERIC# " "config file. In this example, the new custom kernel is for a storage " "server, so is named [.filename]#STORAGESERVER#:" msgstr "" "Собственный конфигурационный файл можно создать, скопировав файл [." "filename]#GENERIC#. В этом примере новое собственное ядро предназначено для " "сервера хранения данных, поэтому он назван [.filename]#STORAGESERVER#:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:944 #, no-wrap msgid "" "# cp /usr/src/sys/amd64/conf/GENERIC /root/STORAGESERVER\n" "# cd /usr/src/sys/amd64/conf\n" "# ln -s /root/STORAGESERVER .\n" msgstr "" "# cp /usr/src/sys/amd64/conf/GENERIC /root/STORAGESERVER\n" "# cd /usr/src/sys/amd64/conf\n" "# ln -s /root/STORAGESERVER .\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:947 msgid "" "[.filename]#/root/STORAGESERVER# is then edited, adding or removing devices " "or options as shown in man:config[5]." msgstr "" "Затем отредактируйте файл [.filename]#/root/STORAGESERVER#, добавляя или " "удаляя устройства или параметры, как показано в man:config[5]." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:949 msgid "" "The custom kernel is built by setting `KERNCONF` to the kernel config file " "on the command line:" msgstr "" "Собственное ядро собирается путем установки `KERNCONF` в файл конфигурации " "ядра в командной строке:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:953 #, no-wrap msgid "# make buildkernel KERNCONF=STORAGESERVER\n" msgstr "# make buildkernel KERNCONF=STORAGESERVER\n" #. type: Title === #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:956 #, no-wrap msgid "Installing the Compiled Code" msgstr "Установка скомпилированного кода" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:959 msgid "" "After the `buildworld` and `buildkernel` steps have been completed, the new " "kernel and world are installed:" msgstr "" "После завершения шагов `buildworld` и `buildkernel` новые ядро и система " "устанавливаются:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:968 #, no-wrap msgid "" "# cd /usr/src\n" "# make installkernel\n" "# shutdown -r now\n" "# cd /usr/src\n" "# make installworld\n" "# shutdown -r now\n" msgstr "" "# cd /usr/src\n" "# make installkernel\n" "# shutdown -r now\n" "# cd /usr/src\n" "# make installworld\n" "# shutdown -r now\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:971 msgid "" "If a custom kernel was built, `KERNCONF` must also be set to use the new " "custom kernel:" msgstr "" "Если было собрано собственное ядро, `KERNCONF` также должен быть установлен " "для использования нового собственного ядра:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:980 #, no-wrap msgid "" "# cd /usr/src\n" "# make installkernel KERNCONF=STORAGESERVER\n" "# shutdown -r now\n" "# cd /usr/src\n" "# make installworld\n" "# shutdown -r now\n" msgstr "" "# cd /usr/src\n" "# make installkernel KERNCONF=STORAGESERVER\n" "# shutdown -r now\n" "# cd /usr/src\n" "# make installworld\n" "# shutdown -r now\n" #. type: Title === #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:983 #, no-wrap msgid "Completing the Update" msgstr "Завершение обновления" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:987 msgid "" "A few final tasks complete the update. Any modified configuration files are " "merged with the new versions, outdated libraries are located and removed, " "then the system is restarted." msgstr "" "Для окончания обновления выполняется несколько завершающих задач. Изменённые " "конфигурационные файлы объединяются с новыми версиями, устаревшие библиотеки " "находятся и удаляются, после чего система перезагружается." #. type: Title ==== #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:989 #, no-wrap msgid "Merging Configuration Files with man:etcupdate[8]" msgstr "Объединение конфигурационных файлов с помощью man:etcupdate[8]" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:994 msgid "" "man:etcupdate[8] is a tool for managing updates to files that are not " "updated as part of an installworld such as files located in [.filename]#/etc/" "#. It manages updates by doing a three-way merge of changes made to these " "files against the local versions. man:etcupdate[8] is designed to minimize " "the amount of user intervention." msgstr "" "man:etcupdate[8] — это инструмент для управления обновлениями файлов, " "которые не обновляются в процессе выполнения `installworld`, таких как файлы " "в [.filename]#/etc/#. Он управляет обновлениями, выполняя трёхстороннее " "слияние изменений, внесённых в эти файлы, с локальными версиями. man:" "etcupdate[8] разработан для минимизации вмешательства пользователя." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:999 msgid "" "In general, man:etcupdate[8] does not need any specific arguments for its " "job. There is however a handy in between command for sanity checking what " "will be done the first time man:etcupdate[8] is used:" msgstr "" "В общем, man:etcupdate[8] не требует специальных аргументов для своей " "работы. Однако есть удобная промежуточная команда для проверки того, что " "будет сделано при первом использовании man:etcupdate[8]:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1003 #, no-wrap msgid "# etcupdate diff\n" msgstr "# etcupdate diff\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1006 msgid "This command allows the user to audit configuration changes." msgstr "Эта команда позволяет пользователю отслеживать изменения конфигурации." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1009 msgid "" "If man:etcupdate[8] is not able to merge a file automatically, the merge " "conflicts can be resolved with manual interaction by issuing:" msgstr "" "Если man:etcupdate[8] не может автоматически объединить файл, конфликты " "слияния можно разрешить вручную, выполнив:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1013 #, no-wrap msgid "# etcupdate resolve\n" msgstr "# etcupdate resolve\n" #. type: Title ==== #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1032 #, no-wrap msgid "Checking for Outdated Files and Libraries" msgstr "Проверка устаревших файлов и библиотек" #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1036 msgid "" "Some obsolete files or directories can remain after an update. These files " "can be located:" msgstr "" "Некоторые устаревшие файлы или каталоги могут остаться после обновления. Эти " "файлы могут быть найдены:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1040 #, no-wrap msgid "# make check-old\n" msgstr "# make check-old\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1043 msgid "and deleted:" msgstr "и удалены:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1047 #, no-wrap msgid "# make delete-old\n" msgstr "# make delete-old\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1051 msgid "Some obsolete libraries can also remain. These can be detected with:" msgstr "" "Некоторые устаревшие библиотеки также могут остаться. Их можно обнаружить с " "помощью:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1055 #, no-wrap msgid "# make check-old-libs\n" msgstr "# make check-old-libs\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1058 msgid "and deleted with" msgstr "и удалить" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1062 #, no-wrap msgid "# make delete-old-libs\n" msgstr "# make delete-old-libs\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1066 msgid "" "Programs which were still using those old libraries will stop working when " "the library has been deleted. These programs must be rebuilt or replaced " "after deleting the old libraries." msgstr "" "Программы, которые всё ещё использовали эти старые библиотеки, перестанут " "работать после удаления библиотек. Эти программы необходимо пересобрать или " "заменить после удаления старых библиотек." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1072 msgid "" "When all the old files or directories are known to be safe to delete, " "pressing kbd:[y] and kbd:[Enter] to delete each file can be avoided by " "setting `BATCH_DELETE_OLD_FILES` in the command. For example:" msgstr "" "Когда известно, что все старые файлы или каталоги можно безопасно удалить, " "нажатие kbd:[y] и kbd:[Enter] для подтверждения удаления каждого файла можно " "избежать, установив параметр `BATCH_DELETE_OLD_FILES` в команде. Например:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1076 #, no-wrap msgid "# make BATCH_DELETE_OLD_FILES=yes delete-old-libs\n" msgstr "# make BATCH_DELETE_OLD_FILES=yes delete-old-libs\n" #. type: Title ==== #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1081 #, no-wrap msgid "Restarting After the Update" msgstr "Перезагрузка после обновления" #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1084 msgid "" "The last step after updating is to restart the computer so all the changes " "take effect:" msgstr "" "Последним шагом после обновления является перезагрузка компьютера, чтобы все " "изменения вступили в силу:" #. type: Title == #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1091 #, no-wrap msgid "Updating FreeBSD with packages" msgstr "Обновление FreeBSD пакетами" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1097 msgid "" "Starting from 14.0-RELEASE, the FreeBSD project has published a set of " "packages of the base system, using man:pkg[8]. The convenience of pkg is no " "longer limited to the FreeBSD ports collection. man:pkg[8] can be used for " "FreeBSD itself. Base packages, and usage thereof, were traditionally " "referred to as _pkgbase_." msgstr "" "Начиная с версии 14.0-RELEASE, проект FreeBSD публикует набор пакетов " "базовой системы, используя man:pkg[8]. Теперь удобством pkg можно " "пользоваться не только в коллекции портов FreeBSD, но и для самой системы. " "man:pkg[8] применим и к FreeBSD. Базовые пакеты и их использование " "традиционно называют _pkgbase_." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1100 msgid "" "Publication of official packages began in link:https://lists.freebsd.org/" "archives/freebsd-pkgbase/2023-October/000221.html[October 2023]. Their use " "with FreeBSD 14 is currently experimental." msgstr "" "Публикаци официальных пакетов началась в с link:https://lists.freebsd.org/" "archives/freebsd-pkgbase/2023-October/000221.html[октябре 2023 года]. Их " "использование в настоящее время считаются экспериментальным для выпуска " "FreeBSD 14." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1102 msgid "" "Starting from 15.0-RELEASE, man:freebsd-base[7] will be supported as a tech " "preview for:" msgstr "" "Начиная с версии 15.0-RELEASE, man:freebsd-base[7] будет поддерживаться в " "режиме предварительной (tech preview) версии для:" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1104 msgid "installation" msgstr "установки" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1105 msgid "minor upgrades" msgstr "незначительных обновлений" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1106 msgid "major upgrades" msgstr "крупных обновлений" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1108 msgid "freebsd-base will eventually replace:" msgstr "freebsd-base в конечном итоге заменит:" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1110 msgid "" "tarball distribution sets, such as `base.txz` or `kernel.txz`, which are " "historically used for installation of the OS with man:bsdinstall[8]" msgstr "" "распределительные наборы в виде tar-архивов, такие как `base.txz` или " "`kernel.txz`, которые традиционно используются для установки ОС с помощью " "man:bsdinstall[8]" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1111 msgid "man:freebsd-update[8] for updates to the OS." msgstr "man:freebsd-update[8] для обновлений операционной системы." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1113 msgid "The current plan is for freebsd-update to work with pkg." msgstr "Текущий план заключается в том, чтобы freebsd-update работал с pkg." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1117 msgid "" "The replacement of distribution sets will take some time, until freebsd-base " "is fully stable!" msgstr "" "Замена наборов дистрибуции займёт некоторое время, пока freebsd-base не " "станет полностью стабильным!" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1121 msgid "" "Base System packages complement crossref:cutting-edge[makeworld,\"building " "and installing from source\"], which is still available for those who wish " "to build their own custom kernels or userland. It is also possible to build " "custom base system packages from local sources, as well as just relying on " "officially provided packages." msgstr "" "Пакеты базовой системы дополняют crossref:cutting-edge[makeworld,\"сборку и " "установку из исходных кодов\"], которая по-прежнему доступна для тех, кто " "желает собирать собственные ядра или пользовательское пространство. Также " "возможно собирать пользовательские пакеты базовой системы из локальных " "исходных кодов, равно как и просто полагаться на официально предоставляемые " "пакеты." #. type: Title === #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1122 #, no-wrap msgid "Converting a Host to use freebsd-base" msgstr "Преобразование хоста для использования freebsd-base" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1126 msgid "" "FreeBSD 14.0-RELEASE or later can be converted to use base packages. " "Earlier versions must be upgraded with freebsd-update before conversion." msgstr "" "FreeBSD 14.0-RELEASE или новее может быть преобразована для использования " "пакетов Базовой Системы. Более ранние версии должны сначала обновиться с " "помощью freebsd-update, а затем выполнить преобразование." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1129 msgid "" "For conversion, the FreeBSD Foundation-sponsored link:https://github.com/" "FreeBSDFoundation/pkgbasify[pkgbasify] tool is recommended. Follow the " "instructions given there." msgstr "" "Для преобразования рекомендован инструмент под названием link:https://github." "com/FreeBSDFoundation/pkgbasify[pkgbasify], спонсированный Фондо FreeBSD. " "Следуйте инструкции приведенной там." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1131 msgid "man:freebsd-update[8] will be enhanced to use pkg and pkgbasify." msgstr "" "man:freebsd-update[8] будет усовершенствован для использования pkg и " "pkgbasify." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1136 msgid "" "Note that this migration requires up to 5GiB additional free space, to " "download, unpack, and relocate any conflicting files. The pkgbasify tool " "does not check for this and it is the responsibility of the user to ensure " "that enough space is available before running the migration." msgstr "" "Обратите внимание, что для данной миграции требуется до 5 ГиБ " "дополнительного свободного пространства для загрузки, распаковки и " "перемещения конфликтующих файлов. Инструмент pkgbasify не проверяет это, и " "пользователь обязан самостоятельно убедиться в наличии достаточного " "пространства перед запуском миграции." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1139 msgid "" "man:pkgbasify[8] (or whatever outcome link:https://reviews.freebsd.org/" "D51594[D51594] or link:https://wiki.freebsd.org/WantedPorts#O-P[port " "request] will have) performs 6 main tasks:" msgstr "" "man:pkgbasify[8] (или любой результат, который даст link:https://reviews." "freebsd.org/D51594[D51594] или link:https://wiki.freebsd.org/WantedPorts#O-" "P[запрос порта]) выполняет 6 основных задач:" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1141 msgid "Creates a backup boot environment (ZFS only) with man:bectl[8]" msgstr "" "Создает резервную среду загрузки (только для ZFS) с помощью man:bectl[8]" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1142 msgid "Creates the new package repository config files" msgstr "Создает новые файлы конфигурации репозитория пакетов" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1143 msgid "Upgrades existing system components such as base, kernel, lib32, debug" msgstr "" "Обновляет существующие компоненты системы, такие как базовая система, ядро, " "lib32, отладочные файлы" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1144 msgid "Merges existing and new config files" msgstr "Объединяет существующие и новые файлы конфигурации" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1145 msgid "Updates passwd and capabilities databases" msgstr "Обновляет базы данных passwd и capabilities" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1146 msgid "Restarts sshd immediately" msgstr "Перезапускает sshd немедленно" #. type: Title === #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1147 #, no-wrap msgid "Upgrading a Host using freebsd-base" msgstr "Обновление хоста с использованием freebsd-base" #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1152 msgid "" "This is still in development, so please be careful especially when " "converting an existing system to use freebsd-base." msgstr "" "Это все ещё находится в разработке, поэтому, пожалуйста, будьте осторожны, " "особенно при преобразовании существующей системы для использования freebsd-" "base." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1155 msgid "" "Create a folder for custom pkg repository config files, if there is none " "present already." msgstr "" "Создайте папку для пользовательских конфигурационных файлов репозитория pkg, " "если она ещё не существует." #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1159 #, no-wrap msgid "# mkdir -p /usr/local/etc/pkg/repos/\n" msgstr "# mkdir -p /usr/local/etc/pkg/repos/\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1162 msgid "" "For using the freebsd-base repository, create a pkg repository configuration " "file called `FreeBSD-base.conf`:" msgstr "" "Для использования репозитория freebsd-base создайте файл конфигурации " "репозитория пакетов с именем `FreeBSD-base.conf`:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1173 #, no-wrap msgid "" "FreeBSD-base {\n" " url = \"pkg+https://pkg.freebsd.org/${ABI}/base_release_${VERSION_MINOR}\";\n" " mirror_type = \"srv\";\n" " signature_type = \"fingerprints\";\n" " fingerprints = \"/usr/share/keys/pkg\";\n" " enabled = yes;\n" "}\n" msgstr "" "FreeBSD-base {\n" " url = \"pkg+https://pkg.freebsd.org/${ABI}/base_release_${VERSION_MINOR}\";\n" " mirror_type = \"srv\";\n" " signature_type = \"fingerprints\";\n" " fingerprints = \"/usr/share/keys/pkg\";\n" " enabled = yes;\n" "}\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1176 msgid "" "for more information on specific configuration options see man:pkg.conf[5]." msgstr "" "для получения дополнительной информации о конкретных параметрах конфигурации " "см. man:pkg.conf[5]." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1178 msgid "" "There are different branches to choose from (by changing the url " "accordingly):" msgstr "" "Существуют различные ветки на выбор (путем соответствующего изменения url):" #. type: Block title #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1180 #, no-wrap msgid "Base system package Branches" msgstr "Ветки пакетов базовой системы" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1184 #, no-wrap msgid "Branch" msgstr "Ветка" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1185 #, no-wrap msgid "Frequency" msgstr "Периодичность" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1187 #, no-wrap msgid "URL" msgstr "URL" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1188 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1192 #, no-wrap msgid "main" msgstr "main" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1189 #, no-wrap msgid "twice daily - 12:00 and 00:00 UTC" msgstr "дважды в день - 12:00 и 00:00 по UTC" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1191 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1199 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1215 #, no-wrap msgid "`pkg+https://pkg.freebsd.org/${ABI}/base_latest`" msgstr "`pkg+https://pkg.freebsd.org/${ABI}/base_latest`" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1193 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1201 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1217 #, no-wrap msgid "weekly – Sunday at 12:00 UTC" msgstr "еженедельно – воскресенье в 12:00 UTC" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1195 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1203 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1218 #, no-wrap msgid "`pkg+https://pkg.freebsd.org/${ABI}/base_weekly`" msgstr "`pkg+https://pkg.freebsd.org/${ABI}/base_weekly`" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1196 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1200 #, no-wrap msgid "stable/14" msgstr "stable/14" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1197 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1205 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1209 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1213 #, no-wrap msgid "twice daily – 12:00 and 00:00 UTC" msgstr "дважды в день – 12:00 и 00:00 по UTC" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1204 #, no-wrap msgid "releng/14.3" msgstr "releng/14.3" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1207 #, no-wrap msgid "`pkg+https://pkg.freebsd.org/${ABI}/base_release_3`" msgstr "`pkg+https://pkg.freebsd.org/${ABI}/base_release_3`" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1208 #, no-wrap msgid "releng/15.0" msgstr "releng/15.0" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1211 #, no-wrap msgid "`pkg+https://pkg.freebsd.org/${ABI}/base_release_0`" msgstr "`pkg+https://pkg.freebsd.org/${ABI}/base_release_0`" #. type: Table #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1212 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1216 #, no-wrap msgid "stable/15" msgstr "stable/15" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1221 msgid "" "To upgrade the system, change the configuration file according to the " "desired release, and run:" msgstr "" "Для обновления системы измените файл конфигурации в соответствии с желаемым " "выпуском и выполните:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1226 #, no-wrap msgid "" "# pkg update -r FreeBSD-base\n" "# pkg upgrade -r FreeBSD-base\n" msgstr "" "# pkg update -r FreeBSD-base\n" "# pkg upgrade -r FreeBSD-base\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1229 msgid "check, if these packages are correct and accept the changes." msgstr "проверьте, корректны ли эти пакеты, и примите изменения." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1231 msgid "Reboot the OS executing the following command:" msgstr "Перезагрузите операционную систему, выполнив следующую команду:" #. type: Title ==== #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1238 #, no-wrap msgid "Major Upgrades" msgstr "Крупные обновления" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1241 msgid "" "With ZFS, boot environments allow an upgrade to be performed without " "interrupting running software. If the system does not use root-on-ZFS: " "backup before upgrading." msgstr "" "С ZFS загрузочные среды позволяют выполнить обновление без прерывания работы " "программного обеспечения. Если система не использует root-on-ZFS: сделайте " "резервную копию перед обновлением." #. type: Title ===== #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1242 #, no-wrap msgid "Preparations" msgstr "Подготовка" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1244 msgid "" "Change `/usr/local/etc/pkg/repos/FreeBSD-base.conf` to target the correct " "major release like `base_release_0` for 15.0-RELEASE, to look like this:" msgstr "" "Измените `/usr/local/etc/pkg/repos/FreeBSD-base.conf`, чтобы указать на " "правильный основной выпуск, например `base_release_0 ` для 15.0-RELEASE, " "чтобы он выглядел так:" #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1248 msgid "This file might change to be included in RELEASE with a different path." msgstr "Этот файл может быть изменен для включения в RELEASE с другим путем." #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1259 #, no-wrap msgid "" "FreeBSD-base {\n" " url = \"pkg+https://pkg.freebsd.org/${ABI}/base_release_0\";\n" " mirror_type = \"srv\";\n" " signature_type = \"fingerprints\";\n" " fingerprints = \"/usr/share/keys/pkg\";\n" " enabled = yes;\n" "}\n" msgstr "" "FreeBSD-base {\n" " url = \"pkg+https://pkg.freebsd.org/${ABI}/base_release_0\";\n" " mirror_type = \"srv\";\n" " signature_type = \"fingerprints\";\n" " fingerprints = \"/usr/share/keys/pkg\";\n" " enabled = yes;\n" #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1267 msgid "" "As pkgbase with FreeBSD 14 is experimental, so is a pkgbase major upgrade to " "15. At the time of this writing in some edge-cases the major upgrade " "removes pkg and therefore segfaults. This is considered a (link:https://" "github.com/freebsd/pkg/issues/2475[known issue]) for 15.0-RELEASE. To work " "around this issue, lock pkg before upgrading." msgstr "" "Поскольку pkgbase в FreeBSD 14 является экспериментальным, то и крупное " "обновление pkgbase до версии 15 также носит экспериментальный характер. На " "момент написания в некоторых крайних случаях крупное обновление удаляет pkg, " "что приводит к ошибкам сегментации. Это считается (link:https://github.com/" "freebsd/pkg/issues/2475[известной проблемой]) для 15.0-RELEASE. Чтобы обойти " "эту проблему, заблокируйте pkg перед обновлением." #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1271 #, no-wrap msgid "# pkg -c /mnt/upgrade lock pkg\n" msgstr "# pkg -c /mnt/upgrade lock pkg\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1274 msgid "" "An experimental major upgrade from FreeBSD 14, to 15 (or 16.0-CURRENT), " "should be followed by installation of meta package `FreeBSD-set-minimal`." msgstr "" "Экспериментальное основное обновление с FreeBSD 14 до 15 (или 16.0-CURRENT) " "должно сопровождаться установкой метапакета `FreeBSD-set-minimal`." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1278 msgid "Save a list of the non-base packages in case they are needed later:" msgstr "" "Сохраните список сторонних пакетов на случай, если они понадобятся в " "дальнейшем:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1282 #, no-wrap msgid "pkg prime-origins | sort -u > /var/tmp/pkg-prime-origins.txt\n" msgstr "pkg prime-origins | sort -u > /var/tmp/pkg-prime-origins.txt\n" #. type: Title ===== #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1285 #, no-wrap msgid "major upgrade with zfs" msgstr "переход на новую основную версию с zfs" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1287 msgid "" "Create a boot environment using man:bectl[8] and name it according to the " "version upgrading to" msgstr "" "Создайте загрузочное окружение с помощью man:bectl[8] и назовите его в " "соответствии с версией, на которую выполняется обновление" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1290 #, no-wrap msgid "# bectl create 15.0-RELEASE\n" msgstr "# bectl create 15.0-RELEASE\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1293 msgid "" "Create a directory then mount the new boot environment there to enable " "working with pkg man:chroot[8] and rootdir." msgstr "" "Создайте каталог, затем смонтируйте новую загрузочную среду туда, чтобы " "обеспечить работу с pkg man:chroot[8] и rootdir." #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1298 #, no-wrap msgid "" "# mkdir /mnt/upgrade\n" "# bectl mount 15.0-RELEASE /mnt/upgrade\n" msgstr "" "# mkdir /mnt/upgrade\n" "# bectl mount 15.0-RELEASE /mnt/upgrade\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1301 msgid "" "The next step will upgrade the boot environment to the specified version." msgstr "Следующий шаг обновит загрузочное окружение до указанной версии." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1305 msgid "" "This step might remove non-base packages, which could include the running " "desktop environment." msgstr "" "Этот шаг может удалить пакеты, не входящие в базовую систему, включая " "запущенную среду рабочего стола." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1309 msgid "" "Set the environment variable ABI to upgrade the major version (replace amd64 " "with the architecture and 15 with the targeted version). Set the pkg-static " "chroot directory to the boot environment mountpoint." msgstr "" "Установите переменную окружения ABI для обновления основной версии (замените " "amd64 на архитектуру и 15 на целевую версию). Задайте для pkg-static каталог " "chroot, указывающий на точку монтирования загрузочного окружения." #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1313 #, no-wrap msgid "# env ABI=FreeBSD:15:amd64 pkg-static -c /mnt/upgrade upgrade -r FreeBSD-base\n" msgstr "" "# env ABI=FreeBSD:15:amd64 pkg-static -c /mnt/upgrade upgrade -r FreeBSD-" "base\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1316 msgid "" "There will be a prompt asking about ignoring the version mismatch looking " "like this:" msgstr "" "Появится запрос о необходимости игнорировать несоответствие версий, который " "выглядит следующим образом:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1324 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1372 #, no-wrap msgid "" "Newer FreeBSD version for package FreeBSD-zoneinfo:\n" "To ignore this error set IGNORE_OSVERSION=yes\n" "- package: 1500058\n" "- running userland: 1500000\n" "Ignore the mismatch and continue? [y/N]:\n" msgstr "" "Newer FreeBSD version for package FreeBSD-zoneinfo:\n" "To ignore this error set IGNORE_OSVERSION=yes\n" "- package: 1500058\n" "- running userland: 1500000\n" "Ignore the mismatch and continue? [y/N]:\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1327 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1375 msgid "Check and confirm that." msgstr "Проверьте и подтвердите это." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1329 msgid "" "To check if that was successful, chroot into the mountpoint of the boot " "environment and run `freebsd-version -ku`." msgstr "" "Чтобы проверить успешность операции, выполните chroot в точку монтирования " "загрузочного окружения и выполните команду `freebsd-version -kru`." #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1335 #, no-wrap msgid "" "# chroot /mnt/upgrade\n" "# freebsd-version -ku\n" "# exit\n" msgstr "" "# chroot /mnt/upgrade\n" "# freebsd-version -ku\n" "# exit\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1338 msgid "Activate the boot environment temporarily and reboot." msgstr "Временно активируйте загрузочную среду и перезагрузитесь." #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1342 #, no-wrap msgid "" "# bectl activate -t 15.0-RELEASE\n" "# shutdown -r now\n" msgstr "" "# bectl activate -t 15.0-RELEASE\n" "# shutdown -r now\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1346 msgid "" "If the system does not work as expected: restart the OS to cease using the " "temporarily active boot environment. The next boot will reuse the pre-" "upgrade environment." msgstr "" "Если система работает не так, как ожидалось: перезагрузите ОС, чтобы " "прекратить использование временно активной загрузочной среды. Следующая " "загрузка будет использовать среду, существовавшую до обновления." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1348 msgid "" "If the system runs stable after reboot, don't forget to permanently activate " "this boot environment to prevent accidentally booting the old system." msgstr "" "Если система стабильно работает после перезагрузки, не забудьте активировать " "эту загрузочную среду на постоянной основе, чтобы предотвратить случайную " "загрузку старой системы." #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1352 #, no-wrap msgid "bectl activate 15.0-RELEASE\n" msgstr "bectl activate 15.0-RELEASE\n" #. type: Title ===== #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1355 #, no-wrap msgid "major upgrade without zfs" msgstr "переход на новую основную версию без zfs" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1357 msgid "" "Set the environment variable ABI to upgrade the major version (replace amd64 " "with the architecture and 15 with the targeted version)." msgstr "" "Установите переменную окружения ABI для обновления основной версии (замените " "amd64 на архитектуру и 15 на целевую версию)." #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1361 #, no-wrap msgid "# env ABI=FreeBSD:15:amd64 pkg-static upgrade -r FreeBSD-base\n" msgstr "# env ABI=FreeBSD:15:amd64 pkg-static upgrade -r FreeBSD-base\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1364 msgid "" "There will be a prompt to ask about ignoring the version mismatch looking " "like this:" msgstr "" "Появится запрос о необходимости игнорировать несоответствие версий, который " "выглядит следующим образом:" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1377 msgid "To check if the upgrade was successful, run `freebsd-version -ku`." msgstr "" "Чтобы проверить успешность обновления, выполните команду `freebsd-version " "-kru`." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1379 msgid "Then reboot." msgstr "Затем перезагрузите систему." #. type: Title ===== #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1380 #, no-wrap msgid "Post-upgrade tasks" msgstr "Задачи после обновления" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1382 msgid "" "If pkg was locked during the update as a workaround remove the lock like " "this:" msgstr "" "Если pkg был заблокирован во время обновления, то в качестве временного " "решения удалите блокировку следующим образом:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1385 #, no-wrap msgid "# pkg unlock pkg\n" msgstr "# pkg unlock pkg\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1388 msgid "" "After upgrading to a new major version, updates and upgrades of installed " "packages to match the ABI version may be necessary." msgstr "" "После обновления до новой основной версии может потребоваться обновление " "установленных пакетов для соответствия версии ABI." #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1392 #, no-wrap msgid "# pkg upgrade\n" msgstr "# pkg upgrade\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1395 msgid "" "Consider getting help from link:https://www.freebsd.org/support/[FreeBSD " "Support] when experiencing issues." msgstr "" "Рассмотрите возможность получения помощи по ссылке link:https://www.freebsd." "org/support/[Поддержка FreeBSD], если возникли проблемы." #. type: Title === #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1397 #, no-wrap msgid "Manually building pkgbase and publishing it to the local network" msgstr "Ручная сборка pkgbase и публикация в локальной сети" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1400 msgid "When building custom pkgbase packages clone the FreeBSD source tree:" msgstr "" "При создании пользовательских пакетов pkgbase клонируйте дерево исходного " "кода FreeBSD:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1405 #, no-wrap msgid "" "# cd /usr/src\n" "# git clone https://github.com/freebsd/freebsd-src.git /usr/src\n" msgstr "" "# cd /usr/src\n" "# git clone https://github.com/freebsd/freebsd-src.git /usr/src\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1408 msgid "Check out the branch for the release to build packages for:" msgstr "" "Перейдите на ветку (checkout) релиза, для которого будут собираться пакеты:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1412 #, no-wrap msgid "# git checkout releng/14.3\n" msgstr "# git checkout releng/14.3\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1416 msgid "" "Start the building process, depending on the resources available this could " "take some while. Set the parallel processes according to the CPU core count." msgstr "" "Запустите процесс сборки, в зависимости от доступных ресурсов это может " "занять некоторое время. Установите количество параллельных процессов в " "соответствии с числом ядер процессора." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1418 msgid "This example is written for an 8 core CPU:" msgstr "Этот пример написан для 8-ядерного процессора:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1422 #, no-wrap msgid "# make -j8 buildworld && make -j8 buildkernel && make -j8 packages\n" msgstr "# make -j8 buildworld && make -j8 buildkernel && make -j8 packages\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1425 msgid "" "When building frequently, consider using package:devel/ccache[] to speed up " "subsequent builds from the cache." msgstr "" "При частой сборке рекомендуется использовать package:devel/ccache[] для " "ускорения последующих сборок из кэша." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1427 msgid "" "After building, the packages will get saved into `/usr/obj/usr/src/repo/" "FreeBSD:14:amd64/14.3p2` or something like that, depending on the version " "build." msgstr "" "После сборки пакеты будут сохранены в `/usr/obj/usr/src/repo/FreeBSD:14:" "amd64/14.3p2` или аналогичный каталог, в зависимости от версии сборки." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1429 msgid "" "To publish these packages to the network set up a nginx service and use this " "location in the http server configuration:" msgstr "" "Чтобы опубликовать эти пакеты в сети, настройте службу nginx и используйте " "следующую конфигурацию location в настройках HTTP-сервера:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1436 #, no-wrap msgid "" " location /FreeBSD:14:amd64 {\n" " alias /usr/obj/usr/src/repo/FreeBSD:14:amd64/;\n" " autoindex on;\n" " }\n" msgstr "" " location /FreeBSD:14:amd64 {\n" " alias /usr/obj/usr/src/repo/FreeBSD:14:amd64/;\n" " autoindex on;\n" " }\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1439 msgid "And reload the nginx service." msgstr "И перезагрузите службу nginx." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1441 msgid "" "When not using https, use a small configuration file on the clients to " "target the pkgbase version just built by editing `/usr/local/etc/pkg/repos/" "upgrade.conf`:" msgstr "" "Если не используется https, используйте небольшой файл конфигурации на " "клиентах для указания только что собранной версии pkgbase, отредактировав `/" "usr/local/etc/pkg/repos/upgrade.conf`:" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1448 #, no-wrap msgid "" "upgrade: {\n" "\turl = http://ip.of.the.server/FreeBSD:14:amd64/14.3p2\n" "\tenabled = yes\n" "}\n" msgstr "" "upgrade: {\n" "\turl = http://ip.of.the.server/FreeBSD:14:amd64/14.3p2\n" "\tenabled = yes\n" "}\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1451 msgid "" "and use it as written above (but use -r upgrade instead of FreeBSD-base)." msgstr "" "и используйте его, как описано выше (но используйте обновление -r вместо " "FreeBSD-base)." #. type: Title == #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1453 #, no-wrap msgid "Tracking for Multiple Machines" msgstr "Распространение обновлений на несколько машин" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1459 msgid "" "When multiple machines need to track the same source tree, it is a waste of " "disk space, network bandwidth, and CPU cycles to have each system download " "the sources and rebuild everything. The solution is to have one machine do " "most of the work, while the rest of the machines mount that work via NFS. " "This section outlines a method of doing so. For more information about " "using NFS, refer to crossref:network-servers[network-nfs,\"Network File " "System (NFS)\"]." msgstr "" "Когда несколько машин должны отслеживать одно и то же дерево исходных кодов, " "это приводит к расточительному использованию дискового пространства, " "пропускной способности сети и процессорного времени, если каждая система " "загружает исходные коды и пересобирает всё самостоятельно. Решение " "заключается в том, чтобы одна машина выполняла основную часть работы, а " "остальные монтировали результаты через NFS. В этом разделе описывается метод " "организации такого процесса. Дополнительные сведения об использовании NFS " "см. в crossref:network-servers[network-nfs,\"Network File System (NFS)\"]." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1464 msgid "" "First, identify a set of machines which will run the same set of binaries, " "known as a _build set_. Each machine can have a custom kernel, but will run " "the same userland binaries. From that set, choose a machine to be the " "_build machine_ that the world and kernel are built on. Ideally, this is a " "fast machine that has sufficient spare CPU to run `make buildworld` and " "`make buildkernel`." msgstr "" "Сначала определите набор машин, которые будут запускать один и тот же набор " "бинарных файлов, известный как _набор сборки_. На каждой машине может быть " "своё собственное ядро, но пользовательские бинарные файлы должны быть " "одинаковыми. Из этого набора выберите машину, которая будет _машиной для " "сборки_, на которой будут собираться система и ядро. В идеале это должна " "быть производительная машина с достаточным количеством свободных ресурсов " "CPU для выполнения команд `make buildworld` и `make buildkernel`." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1468 msgid "" "Select a machine to be the _test machine_, which will test software updates " "before they are put into production. This _must_ be a machine that can " "afford to be down for an extended period of time. It can be the build " "machine, but need not be." msgstr "" "Выберите машину, которая будет _тестовой машиной_ для проверки обновлений " "программного обеспечения перед их внедрением в производство. Это _должна_ " "быть машина, которая может позволить себе длительный простой. Она может быть " "той же машиной, что и сборщик, но это не обязательно." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1471 msgid "" "All the machines in this build set need to mount [.filename]#/usr/obj# and [." "filename]#/usr/src# from the build machine via NFS. For multiple build " "sets, [.filename]#/usr/src# should be on one build machine, and NFS mounted " "on the rest." msgstr "" "Все машины в этом наборе сборки должны монтировать [.filename]#/usr/obj# и [." "filename]#/usr/src# сборочной машины через NFS. Для нескольких наборов " "сборки [.filename]#/usr/src# должен находиться на одной сборочной машине и " "монтироваться по NFS на остальных." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1477 msgid "" "Ensure that [.filename]#/etc/make.conf# and [.filename]#/etc/src.conf# on " "all the machines in the build set agree with the build machine. That means " "that the build machine must build all the parts of the base system that any " "machine in the build set is going to install. Also, each build machine " "should have its kernel name set with `KERNCONF` in [.filename]#/etc/make." "conf#, and the build machine should list them all in its `KERNCONF`, listing " "its own kernel first. The build machine must have the kernel configuration " "files for each machine in its [.filename]#/usr/src/sys/arch/conf#." msgstr "" "Убедитесь, что файлы [.filename]#/etc/make.conf# и [.filename]#/etc/src." "conf# на всех машинах в наборе сборки соответствуют таковым на машине " "сборки. Это означает, что машина сборки должна собирать все части базовой " "системы, которые будут устанавливаться на любой машине из набора сборки. " "Кроме того, каждая машина сборки должна иметь имя ядра, указанное с помощью " "`KERNCONF` в [.filename]#/etc/make.conf#, а машина сборки должна перечислить " "их все в своём `KERNCONF`, указав собственное ядро первым. Машина сборки " "должна иметь конфигурационные файлы ядра для каждой машины в своём каталоге " "[.filename]#/usr/src/sys/arch/conf#." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1485 msgid "" "On the build machine, build the kernel and world as described in crossref:" "cutting-edge[makeworld, Updating FreeBSD from Source], but do not install " "anything on the build machine. Instead, install the built kernel on the " "test machine. On the test machine, mount [.filename]#/usr/src# and [." "filename]#/usr/obj# via NFS. Then, run `shutdown now` to go to single-user " "mode in order to install the new kernel and world and run `etcupdate` as " "usual. When done, reboot to return to normal multi-user operations." msgstr "" "На машине для сборки соберите ядро и систему, как описано в crossref:cutting-" "edge[makeworld,Обновление FreeBSD из исходного кода], но не устанавливайте " "ничего на машину для сборки. Вместо этого установите собранное ядро на " "тестовую машину. На тестовой машине смонтируйте [.filename]#/usr/src# и [." "filename]#/usr/obj# через NFS. Затем выполните `shutdown now`, чтобы перейти " "в однопользовательский режим для установки нового ядра и системы, а также " "запустите `etcupdate` как обычно. По завершении перезагрузитесь, чтобы " "вернуться к обычной многопользовательской работе." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1488 msgid "" "After verifying that everything on the test machine is working properly, use " "the same procedure to install the new software on each of the other machines " "in the build set." msgstr "" "После проверки того, что все на тестовой машине работает правильно, " "используйте ту же процедуру для установки нового программного обеспечения на " "каждой из остальных машин в наборе сборки." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1496 msgid "" "The same methodology can be used for the ports tree. The first step is to " "share [.filename]#/usr/ports# via NFS to all the machines in the build set. " "To configure [.filename]#/etc/make.conf# to share distfiles, set `DISTDIR` " "to a common shared directory that is writable by whichever user `root` is " "mapped to by the NFS mount. Each machine should set `WRKDIRPREFIX` to a " "local build directory, if ports are to be built locally. Alternately, if " "the build system is to build and distribute packages to the machines in the " "build set, set `PACKAGES` on the build system to a directory similar to " "`DISTDIR`." msgstr "" "Тот же метод можно применить к дереву портов. Первый шаг — предоставить " "общий доступ через NFS к [.filename]#/usr/ports# для всех машин в наборе " "сборки. Чтобы настроить [.filename]#/etc/make.conf# для совместного " "использования distfiles, установите `DISTDIR` в общий каталог, доступный для " "записи пользователем, в которого отображается `root` при монтировании NFS. " "Каждая машина должна установить `WRKDIRPREFIX` в локальный каталог сборки, " "если порты собираются локально. В качестве альтернативы, если система сборки " "предназначена для создания и распространения пакетов на машины в наборе " "сборки, установите `PACKAGES` в системе сборки в каталог, аналогичный " "`DISTDIR`." #. type: Title == #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1498 #, no-wrap msgid "Building on non-FreeBSD Hosts" msgstr "Сборка на хостах, отличных от FreeBSD" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1502 msgid "" "Historically, building required a FreeBSD host. Nowadays, FreeBSD can be " "built on Linux and macOS." msgstr "" "Исторически для сборки требовался хост с FreeBSD. В настоящее время FreeBSD " "можно собирать на Linux и macOS." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1508 msgid "" "To build on a non-FreeBSD host, the `tools/build/make.py` script is " "recommended. This script acts as a wrapper around `bmake`, which is the " "make implementation used by FreeBSD. It ensures that the necessary tooling, " "including the actual FreeBSD's man:make[1], is bootstrapped and that the " "build environment is properly configured. In particular, it sets the " "external toolchain variables, such as `XCC`, `XLD`, and others. " "Additionally, the script can pass any additional command arguments, such as " "`-j 4` for parallel builds or specific make targets, to `bmake`." msgstr "" "Для сборки на хосте, отличном от FreeBSD, рекомендуется использовать скрипт " "`tools/build/make.py`. Этот скрипт служит обёрткой для `bmake` — реализации " "make, используемой в FreeBSD. Он обеспечивает загрузку необходимых " "инструментов, включая man:make[1] из FreeBSD, и правильную настройку среды " "сборки. В частности, он устанавливает переменные внешнего инструментария, " "такие как `XCC`, `XLD` и другие. Кроме того, скрипт может передавать " "дополнительные аргументы командной строки, например `-j 4` для параллельной " "сборки или конкретные цели make, в `bmake`." #. type: delimited block = 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1513 msgid "" "A recent version of `bmake` can be used instead of the `tools/build/make.py` " "script as well. In that case, however, required environment variables need " "to be set manually (the easiest way to obtain a list of them is by running " "`tools/build/make.py --debug`)." msgstr "" "Вместо скрипта `tools/build/make.py` также можно использовать свежую версию " "`bmake`. Однако в этом случае необходимые переменные окружения нужно " "задавать вручную (проще всего получить их список, выполнив `tools/build/make." "py --debug`)." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1517 msgid "" "Otherwise, the list of prerequisites for building FreeBSD is rather short. " "In fact, it boils down to installing a couple of dependencies." msgstr "" "В противном случае список требований для сборки FreeBSD довольно короткий. " "Фактически, он сводится к установке нескольких зависимостей." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1520 msgid "" "On macOS, the only dependency is LLVM. The necessary dependencies can be " "installed with package manager (e.g., link:https://brew.sh/[Homebrew]):" msgstr "" "На macOS единственная зависимость — LLVM. Необходимые зависимости можно " "установить с помощью менеджера пакетов (например, link:https://brew.sh/" "[Homebrew]):" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1524 #, no-wrap msgid "brew install llvm\n" msgstr "brew install llvm\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1527 msgid "" "On a Linux distributions, install link:https://clang.llvm.org/[Clang] " "version 10.0 or newer and the headers for libarchive and libbz2 (often " "packaged as libarchive-dev and libbz2-dev)." msgstr "" "На дистрибутивах Linux установите link:https://clang.llvm.org/[Clang] версии " "10.0 или новее, а также заголовочные файлы для libarchive и libbz2 (обычно " "поставляются в пакетах libarchive-dev и libbz2-dev)." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1529 msgid "" "Once the dependencies are installed, the host should be able to build " "FreeBSD." msgstr "" "После установки зависимостей система должна быть способна собрать FreeBSD." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1531 msgid "" "For example, the following `tools/build/make.py` invocation builds the world:" msgstr "" "Например, следующая команда `tools/build/make.py` собирает систему (world):" #. type: delimited block . 4 #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1535 #, no-wrap msgid "MAKEOBJDIRPREFIX=/tmp/obj tools/build/make.py -j 8 TARGET=arm64 TARGET_ARCH=aarch64 buildworld\n" msgstr "MAKEOBJDIRPREFIX=/tmp/obj tools/build/make.py -j 8 TARGET=arm64 TARGET_ARCH=aarch64 buildworld\n" #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1540 msgid "" "It builds the world for target `aarch64:arm64` on 8 CPUs and uses [." "filename]#/tmp/obj# for object files. Note that the variables " "`MAKEOBJDIRPREFIX`, `TARGET`, and `TARGET_ARCH` are mandatory when building " "on non-FreeBSD hosts. Also, make sure to create the object directory " "pointed to by the `MAKEOBJDIRPREFIX` environment variable." msgstr "" "Он собирает систему для целевой архитектуры `aarch64:arm64` на 8 CPU и " "использует [.filename]#/tmp/obj# для объектных файлов. Обратите внимание, " "что переменные `MAKEOBJDIRPREFIX`, `TARGET` и `TARGET_ARCH` обязательны при " "сборке на хостах, отличных от FreeBSD. Также убедитесь, что создан каталог " "для объектных файлов, указанный в переменной окружения `MAKEOBJDIRPREFIX`." #. type: Plain text #: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1541 msgid "Refer to man:arch[7] and man:build[7] for more details." msgstr "" "Обратитесь к man:arch[7] и man:build[7] для получения дополнительной " "информации." #~ msgid "" #~ "Starting from 15.0-RELEASE, Base System packages will be the default and " #~ "officially supported way to both install new FreeBSD instances, and also " #~ "to update and upgrade between minor and major releases." #~ msgstr "" #~ "Начиная с версии 15.0-RELEASE, пакеты базовой системы станут стандартным " #~ "и официально поддерживаемым способом как для установки новых экземпляров " #~ "FreeBSD, так и для обновления между минорными и мажорными релизами." #~ msgid "" #~ "From 15.0-RELEASE onwards, the long-running man:freebsd-update[8] tool " #~ "will only be supported on the earlier 13 and 14 release branches." #~ msgstr "" #~ "Начиная с версии 15.0-RELEASE, давно используемая утилита man:freebsd-" #~ "update[8] будет поддерживаться только в предыдущих ветках выпусков 13 и " #~ "14." #~ msgid "Base System Packages replace:" #~ msgstr "Базовые Пакеты Системы заменяют:" #, no-wrap #~ msgid "" #~ "# cd /tmp\n" #~ "# fetch https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua\n" #~ "# chmod +x pkgbasify.lua\n" #~ "# ./pkgbasify.lua\n" #~ msgstr "" #~ "# cd /tmp\n" #~ "# fetch https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua\n" #~ "# chmod +x pkgbasify.lua\n" #~ "# ./pkgbasify.lua\n" #, no-wrap #~ msgid "Performing Major version upgrades" #~ msgstr "Выполнение обновлений с изменением старших версий" #~ msgid "" #~ "When running ZFS, consider creating a boot environment before upgrading " #~ "to a newer version. To create a new boot environment using the man:" #~ "bectl[8] tool run:" #~ msgstr "" #~ "При использовании ZFS рекомендуется создать среду загрузки перед " #~ "обновлением до более новой версии. Для создания новой среды загрузки с " #~ "помощью утилиты man:bectl[8] выполните:" #~ msgid "" #~ "Use this boot environment to start the system as it was before the update " #~ "if something goes wrong." #~ msgstr "" #~ "Используйте эту среду загрузки для запуска системы в том состоянии, в " #~ "котором она была до обновления, если что-то пойдет не так." #, no-wrap #~ msgid "" #~ "# pkg update\n" #~ "# pkg upgrade\n" #~ msgstr "" #~ "# pkg update\n" #~ "# pkg upgrade\n" #~ msgid "" #~ "If something broke, go back and activate the backup boot environment " #~ "created before." #~ msgstr "" #~ "Если что-то сломалось, вернитесь и активируйте резервную загрузочную " #~ "среду, созданную ранее." #~ msgid "Reboot, and the system will be back to the state before upgrading." #~ msgstr "Перезагрузитесь, и система вернется в состояние до обновления."