aboutsummaryrefslogtreecommitdiff
path: root/documentation/content/ru/books/porters-handbook/testing/_index.po
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/content/ru/books/porters-handbook/testing/_index.po')
-rw-r--r--documentation/content/ru/books/porters-handbook/testing/_index.po1685
1 files changed, 1685 insertions, 0 deletions
diff --git a/documentation/content/ru/books/porters-handbook/testing/_index.po b/documentation/content/ru/books/porters-handbook/testing/_index.po
new file mode 100644
index 0000000000..30ce20d0d6
--- /dev/null
+++ b/documentation/content/ru/books/porters-handbook/testing/_index.po
@@ -0,0 +1,1685 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR The FreeBSD Project
+# This file is distributed under the same license as the FreeBSD Documentation package.
+# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025.
+msgid ""
+msgstr ""
+"Project-Id-Version: FreeBSD Documentation VERSION\n"
+"POT-Creation-Date: 2025-09-18 22:05+0300\n"
+"PO-Revision-Date: 2025-09-05 04:45+0000\n"
+"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n"
+"Language-Team: Russian <https://translate-dev.freebsd.org/projects/"
+"documentation/booksporters-handbooktesting_index/ru/>\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 Hash Value: description
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:1
+#, no-wrap
+msgid "Testing a FreeBSD Port"
+msgstr "Тестирование порта FreeBSD"
+
+#. type: Yaml Front Matter Hash Value: title
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:1
+#, no-wrap
+msgid "Chapter 10. Testing the Port"
+msgstr "Глава 10. Тестирование вашего порта"
+
+#. type: Title =
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:14
+#, no-wrap
+msgid "Testing the Port"
+msgstr "Тестирование порта"
+
+#. type: Title ==
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:52
+#, no-wrap
+msgid "Running `make describe`"
+msgstr "Запуск `make describe`"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:57
+msgid ""
+"Several of the FreeBSD port maintenance tools, such as man:portupgrade[1], "
+"rely on a database called [.filename]#/usr/ports/INDEX# which keeps track of "
+"such items as port dependencies. [.filename]#INDEX# is created by the top-"
+"level [.filename]#ports/Makefile# via `make index`, which descends into each "
+"port subdirectory and executes `make describe` there. Thus, if `make "
+"describe` fails in any port, no one can generate [.filename]#INDEX#, and "
+"many people will quickly become unhappy."
+msgstr ""
+"Некоторые утилиты FreeBSD для сопровождения портов, например, "
+"man:portupgrade[1], опираются на базу данных с именем [.filename]#/usr/ports/"
+"INDEX#, в которой отслеживаются такие характеристики портов, как их "
+"зависимости. Файл [.filename]#INDEX# создаётся при помощи [.filename]#ports/"
+"Makefile# верхнего уровня по команде `make index`, спускающейся в подкаталог "
+"каждого порта и выполняющей в нём `make describe`. Таким образом, если "
+"выполнение `make describe` с каким-либо портом завершится неудачно, то "
+"никому не удастся создать [.filename]#INDEX#, при этом много людей вскоре "
+"станут несчастны."
+
+#. type: delimited block = 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:62
+msgid ""
+"It is important to be able to generate this file no matter what options are "
+"present in [.filename]#make.conf#, so please avoid doing things such as "
+"using `.error` statements when (for instance) a dependency is not "
+"satisfied. (See crossref:porting-dads[dads-dot-error,Avoid Use of the "
+"`.error` Construct].)"
+msgstr ""
+"Возможность генерировать этот файл очень важна вне зависимости от того, "
+"какие параметры присутствуют в [.filename]#make.conf#, поэтому, пожалуйста, "
+"избегайте, таких вещей, как использование декларации `.error`, когда (к "
+"примеру) требования к зависимости не было удовлетворено. (Смотрите "
+"crossref:porting-dads[dads-dot-error, Избегайте использования конструкции "
+"`.error`].)"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:66
+msgid ""
+"If `make describe` produces a string rather than an error message, "
+"everything is probably safe. See [.filename]#bsd.port.mk# for the meaning "
+"of the string produced."
+msgstr ""
+"Если `make describe` выдаёт строчку, а не ошибку, то для вас это пройдёт "
+"безболезненно. Обратитесь к файлу [.filename]#bsd.port.mk#, чтобы выяснить "
+"значение выдаваемых строк."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:68
+msgid ""
+"Also note that running a recent version of `portlint` (as specified in the "
+"next section) will cause `make describe` to be run automatically."
+msgstr ""
+"Также обратите внимание, что запуск актуальной версии `portlint` (как "
+"указано в следующем разделе) приведёт к автоматическому выполнению `make "
+"describe`."
+
+#. type: Title ==
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:70
+#, no-wrap
+msgid "Running `make test`"
+msgstr "Запуск `make test`"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:76
+msgid ""
+"Even if the port builds fine, it is a good idea to ensure that the software "
+"correctly does what it is supposed to do. If the original upstream project "
+"provides tests along with the software, it is a good idea to run them and "
+"check everything works as expected."
+msgstr ""
+"Даже если порт успешно собирается, рекомендуется убедиться, что программа "
+"корректно выполняет свои функции. Если исходный проект предоставляет тесты "
+"вместе с программным обеспечением, рекомендуется их запустить и проверить, "
+"что всё работает, как ожидается."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:81
+msgid ""
+"A port can enable tests automatically by using the `TEST_TARGET` variable. "
+"When set, this variable contains the name of the testing target of the "
+"port. This is usually just `test` but other names include `tests`, `check` "
+"or for specific cases things like `run_tests.py`."
+msgstr ""
+"Порт может автоматически включить тесты, используя переменную `TEST_TARGET`. "
+"Когда эта переменная установлена, она содержит имя цели тестирования порта. "
+"Обычно это просто `test`, но другие варианты включают `tests`, `check` или, "
+"в специфических случаях, такие значения, как `run_tests.py`."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:84
+msgid ""
+"In addition to the `TEST_TARGET` variable the framework provides the "
+"following variables to control the tests execution:"
+msgstr ""
+"В дополнение к переменной `TEST_TARGET` фреймворк предоставляет следующие "
+"переменные для управления выполнением тестов:"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:86
+msgid "`TEST_WRKSRC` is the directory to do the tests in."
+msgstr "`TEST_WRKSRC` — это каталог для выполнения тестов."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:87
+msgid ""
+"`TEST_ENV` contains additional variables to be passed to the test stage."
+msgstr ""
+"`TEST_ENV` содержит дополнительные переменные, которые передаются на этап "
+"тестирования."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:88
+msgid "`TEST_ARGS` contains any extra arguments passed to the test stage."
+msgstr ""
+"`TEST_ARGS` содержит любые дополнительные аргументы, переданные на этапе "
+"тестирования."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:91
+msgid ""
+"Examples of use of these variables can be found in package:cad/xyce[], "
+"package:www/libjwt[] and others."
+msgstr ""
+"Примеры использования этих переменных можно найти в package:cad/xyce[], "
+"package:www/libjwt[] и других."
+
+#. type: delimited block = 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:95
+msgid "Please make sure that tests do not break when updating a port."
+msgstr "Убедитесь, что тесты не ломаются при обновлении порта."
+
+#. type: Title ==
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:99
+#, no-wrap
+msgid "Portclippy / Portfmt"
+msgstr "Portclippy / Portfmt"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:102
+msgid "Those tools come from package:ports-mgmt/portfmt[]."
+msgstr "Эти инструменты поставляются из пакета:ports-mgmt/portfmt[]."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:104
+msgid ""
+"Portclippy is a linter that checks if variables in the [.filename]#Makefile# "
+"are in the correct order according to crossref:order[porting-order,Order of "
+"Variables in Port Makefiles]."
+msgstr ""
+"Portclippy — это линтер, проверяющий, расположены ли переменные в файле "
+"[.filename]#Makefile# в правильном порядке согласно crossref:order[porting-"
+"order,Порядку переменных в Makefile портов]."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:106
+msgid "Portfmt is a tool for automatically formatting [.filename]#Makefile#."
+msgstr ""
+"Portfmt — это инструмент для автоматического форматирования "
+"[.filename]#Makefile#."
+
+#. type: Title ==
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:108
+#, no-wrap
+msgid "Portlint"
+msgstr "Portlint"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:113
+msgid ""
+"Do check the port with crossref:quick-porting[porting-portlint,`portlint`] "
+"before submitting or committing it. `portlint` warns about many common "
+"errors, both functional and stylistic. For a new port, `portlint -A` is the "
+"most thorough; for an existing port, `portlint -C` is sufficient."
+msgstr ""
+"Проверьте свою работу командой crossref:quick-porting[porting-"
+"portlint,`portlint`] перед тем, как её отослать или перенести в дерево "
+"портов. `portlint` предупреждает вас о многих распространённых ошибках, как "
+"функциональных, так и стилистических. Для нового (или скопированного внутри "
+"хранилища) порта самым подходящим является запуск `portlint -A`; для уже "
+"существующего порта достаточно будет запустить `portlint -C`."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:117
+msgid ""
+"Since `portlint` uses heuristics to try to figure out errors, it can produce "
+"false positive warnings. In addition, occasionally something that is "
+"flagged as a problem really cannot be done in any other way due to "
+"limitations in the ports framework. When in doubt, the best thing to do is "
+"ask on {freebsd-ports}."
+msgstr ""
+"Так как для обнаружения ошибок `portlint` использует эвристические методы, "
+"то им могут выдаваться и ошибочные предупреждения. Кроме того, время от "
+"времени нечто, отмечаемое как некорректность, из-за ограничений механизма "
+"создания портов не может быть сделано никак иначе. Если вы сомневаетесь, то "
+"лучше всего спросить в {freebsd-ports}."
+
+#. type: Title ==
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:119
+#, no-wrap
+msgid "Port Tools"
+msgstr "Инструменты для работы с портами"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:122
+msgid ""
+"The package:ports-mgmt/porttools[] program is part of the Ports Collection."
+msgstr ""
+"Программа package:ports-mgmt/porttools[] входит в состав Коллекции Портов."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:128
+msgid ""
+"`port` is the front-end script, which can help simplify the testing job. "
+"Whenever a new port or an update to an existing one needs testing, use `port "
+"test` to test the port, including the crossref:testing[testing-"
+"portlint,`portlint`] checking. This command also detects and lists any "
+"files that are not listed in [.filename]#pkg-plist#. For example:"
+msgstr ""
+"`port` является сценарием переднего плана, который может упростить вам "
+"задачу тестирования. Если вы хотите проверить новый порт или обновить "
+"существующий, то вы можете использовать `port test` для проверки вашего "
+"порта, включая проверку crossref:testing[testing-portlint,`portlint`]. Эта "
+"команда также находит и отображает любые файлы, которые невключенные в "
+"[.filename]#pkg-plist#. Смотрите следующий пример:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:132
+#, no-wrap
+msgid "# port test /usr/ports/net/csup\n"
+msgstr "# port test /usr/ports/net/csup\n"
+
+#. type: Title ==
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:135
+#, no-wrap
+msgid "`PREFIX` and `DESTDIR`"
+msgstr "`PREFIX` и `DESTDIR`"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:140
+msgid ""
+"`PREFIX` determines where the port will be installed. It defaults to "
+"[.filename]#/usr/local#, but can be set by the user to a custom path like "
+"[.filename]#/opt#. The port must respect the value of this variable."
+msgstr ""
+"Переменная `PREFIX` определяет, куда будет установлен порт. По умолчанию это "
+"[.filename]#/usr/local#, но может меняться пользователем на собственный "
+"путь, такой как [.filename]#/opt#. В вашем порту значение этой переменной "
+"должно учитываться."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:145
+msgid ""
+"`DESTDIR`, if set by the user, determines the complete alternative "
+"environment, usually a jail or an installed system mounted somewhere other "
+"than [.filename]#/#. A port will actually install into [.filename]#DESTDIR/"
+"PREFIX#, and register with the package database in [.filename]#DESTDIR/var/"
+"db/pkg#. `DESTDIR` is handled automatically by the ports infrastructure "
+"with man:chroot[8]. There is no need for modifications or any extra care to "
+"write `DESTDIR`-compliant ports."
+msgstr ""
+"Если пользователь установил переменную `DESTDIR`, то она определяет полное "
+"альтернативное окружение, обычно, это jail или установленная система, "
+"смонтированная в месте, отличном от [.filename]#/#. На самом деле порт "
+"устанавливается в [.filename]#DESTDIR/PREFIX# и регистрируется в базе данных "
+"пакетов в [.filename]#DESTDIR/var/db/pkg#. Поскольку управление `DESTDIR` "
+"производится автоматически инфраструктурой портов с помощью man:chroot[8], "
+"вам не нужны никакие изменения или проявление особой осторожности при "
+"написании портов, совместымых с `DESTDIR`."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:148
+msgid ""
+"The value of `PREFIX` will be set to `LOCALBASE` (defaulting to [.filename]#/"
+"usr/local#). If `USE_LINUX_PREFIX` is set, `PREFIX` will be `LINUXBASE` "
+"(defaulting to [.filename]#/compat/linux#)."
+msgstr ""
+"Значение переменной `PREFIX` будет установлено в `LOCALBASE` (по умолчанию "
+"[.filename]#/usr/local#). Если задана переменная `USE_LINUX_PREFIX`, то "
+"`PREFIX` примет значение `LINUXBASE` (по умолчанию [.filename]#/compat/"
+"linux#)."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:152
+msgid ""
+"Avoiding hard-coded [.filename]#/usr/local# paths in the source makes the "
+"port much more flexible and able to cater to the needs of other sites. "
+"Often, this can be accomplished by replacing occurrences of [.filename]#/usr/"
+"local# in the port's various [.filename]##Makefile##s with `${PREFIX}`. "
+"This variable is automatically passed down to every stage of the build and "
+"install processes."
+msgstr ""
+"Избегание явно прописываемых путей [.filename]#/usr/local# в исходном коде "
+"сделает порт гораздо более гибким и способным удовлетворить потребности "
+"других серверов. Часто этого можно добиться простой заменой строк "
+"[.filename]#/usr/local# в различных файлах [.filename]#Makefile# внутри "
+"порта на `${PREFIX}`. Эта переменная автоматически передаётся далее на "
+"каждом этапе построения и установки."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:155
+msgid ""
+"Make sure the application is not installing things in [.filename]#/usr/"
+"local# instead of `PREFIX`. A quick test for such hard-coded paths is:"
+msgstr ""
+"Проверьте, что ваше приложение не устанавливает чего-либо в каталог "
+"[.filename]#/usr/local# вместо `PREFIX`. Наличие явно указанных путей можно "
+"быстро проверить следующим образом:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:159
+#, no-wrap
+msgid "% make clean; make package PREFIX=/var/tmp/`make -V PORTNAME`\n"
+msgstr "% make clean; make package PREFIX=/var/tmp/`make -V PORTNAME`\n"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:162
+msgid ""
+"If anything is installed outside of `PREFIX`, the package creation process "
+"will complain that it cannot find the files."
+msgstr ""
+"Если что-то было установлено за пределами `PREFIX`, то процесс создания "
+"пакета сообщит об отсутствии файлов."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:164
+msgid ""
+"In addition, it is worth checking the same with the stage directory support "
+"(see crossref:special[staging,Staging]):"
+msgstr ""
+"Это также стоит проверить с использованием поддержки каталога сборки "
+"(смотрите crossref:special[staging, Staging]):"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:168
+#, no-wrap
+msgid "% make stage && make check-plist && make stage-qa && make package\n"
+msgstr "% make stage && make check-plist && make stage-qa && make package\n"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:171
+msgid ""
+"`check-plist` checks for files missing from the plist, and files in the "
+"plist that are not installed by the port."
+msgstr ""
+"`check-plist` проверяет отсутствующие в plist файлы и файлы в plist, которые "
+"не установлены портом."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:172
+msgid ""
+"`stage-qa` checks for common problems like bad shebang, symlinks pointing "
+"outside the stage directory, setuid files, and non-stripped libraries..."
+msgstr ""
+"`stage-qa` проверяет наличие распространённых проблем, таких как "
+"неправильный шебанг (интерпретаторная строка в первой строке скрипта), "
+"символьные ссылки, указывающие за пределы stage-директории,файлы с setuid "
+"битом и библиотеки с отладочной информацией..."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:175
+msgid ""
+"These tests will not find hard-coded paths inside the port's files, nor will "
+"it verify that `LOCALBASE` is being used to correctly refer to files from "
+"other ports. The temporarily installed port in [.filename]#/var/tmp/`make "
+"-V PORTNAME`# must be tested for proper operation to make sure there are no "
+"problems with paths."
+msgstr ""
+"Эти тесты не обнаружат жёстко заданные пути в файлах порта, а также не "
+"проверят, что `LOCALBASE` используется корректно для ссылок на файлы из "
+"других портов. Временно установленный порт в [.filename]#/var/tmp/`make -V "
+"PORTNAME`# должен быть протестирован на корректную работу, чтобы убедиться в "
+"отсутствии проблем с путями."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:178
+msgid ""
+"`PREFIX` must not be set explicitly in a port's [.filename]#Makefile#. "
+"Users installing the port may have set `PREFIX` to a custom location, and "
+"the port must respect that setting."
+msgstr ""
+"`PREFIX` не должен быть явно установлен в [.filename]#Makefile# порта. "
+"Пользователи, устанавливающие порт, могут задать `PREFIX` в другом месте, и "
+"порт должен учитывать эту настройку."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:182
+msgid ""
+"Refer to programs and files from other ports with the variables mentioned "
+"above, not explicit pathnames. For instance, if the port requires a macro "
+"`PAGER` to have the full pathname of `less`, do not use a literal path of "
+"[.filename]#/usr/local/bin/less#. Instead, use `${LOCALBASE}`:"
+msgstr ""
+"Обращайтесь к программам и файлам из других портов с помощью упомянутых выше "
+"переменных, а не явных путей. Например, если порт требует, чтобы макрос "
+"`PAGER` содержал полный путь к `less`, не используйте явный путь "
+"[.filename]#/usr/local/bin/less#. Вместо этого используйте `${LOCALBASE}`:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:186
+#, no-wrap
+msgid "-DPAGER=\\\"${LOCALBASE}/bin/less\\\"\n"
+msgstr "-DPAGER=\\\"${LOCALBASE}/bin/less\\\"\n"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:189
+msgid ""
+"The path with `LOCALBASE` is more likely to still work if the system "
+"administrator has moved the whole [.filename]#/usr/local# tree somewhere "
+"else."
+msgstr ""
+"Путь с `LOCALBASE` с большей вероятностью продолжит работать, если системный "
+"администратор переместил всё дерево [.filename]#/usr/local# в другое место."
+
+#. type: delimited block = 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:195
+msgid ""
+"All these tests are done automatically when running `poudriere testport` or "
+"`poudriere bulk -t`. It is highly recommended that every ports contributor "
+"install and test their ports with it. See crossref:testing[testing-"
+"poudriere, poudriere] for more information."
+msgstr ""
+"Все эти тесты выполняются автоматически при запуске `poudriere testport` или "
+"`poudriere bulk -t`. Настоятельно рекомендуется каждому участнику разработки "
+"портов устанавливать и тестировать свои порты с помощью этого инструмента. "
+"Дополнительную информацию можно найти в crossref:testing[testing-poudriere, "
+"poudriere]."
+
+#. type: Title ==
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:198
+#, no-wrap
+msgid "poudriere"
+msgstr "poudriere"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:202
+msgid ""
+"For a ports contributor, poudriere is one of the most important and helpful "
+"testing and build tools. Its main features include:"
+msgstr ""
+"Для контрибьютора портов poudriere является одним из самых важных и полезных "
+"инструментов для тестирования и сборки. Его основные возможности включают:"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:204
+msgid ""
+"Bulk building of the entire ports tree, specific subsets of the ports tree, "
+"or a single port including its dependencies"
+msgstr ""
+"Массовая сборка всего дерева портов, определенных подмножеств дерева портов "
+"или отдельного порта с его зависимостями"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:205
+msgid "Automatic packaging of build results"
+msgstr "Автоматическая упаковка результатов сборки"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:206
+msgid "Generation of build log files per port"
+msgstr "Генерация файлов журнала сборки для каждого порта"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:207
+msgid "Providing a signed man:pkg[8] repository"
+msgstr "Предоставление подписанного репозитория man:pkg[8]"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:208
+msgid ""
+"Testing of port builds before submitting a patch to the FreeBSD bug tracker "
+"or committing to the ports tree"
+msgstr ""
+"Тестирование сборки портов перед отправкой патча в трекер ошибок FreeBSD или "
+"внесением изменений в дерево портов"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:209
+msgid "Testing for successful ports builds using different options"
+msgstr ""
+"Тестирование успешных сборок портов с использованием различных параметров"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:212
+msgid ""
+"Because poudriere performs its building in a clean man:jail[8] environment "
+"and uses man:zfs[8] features, it has several advantages over traditional "
+"testing on the host system:"
+msgstr ""
+"Поскольку poudriere выполняет сборку в чистой среде man:jail[8] и использует "
+"возможности man:zfs[8], он имеет несколько преимуществ по сравнению с "
+"традиционным тестированием на основной системе:"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:214
+msgid ""
+"No pollution of the host environment: No leftover files, no accidental "
+"removals, no changes of existing configuration files."
+msgstr ""
+"Отсутствие загрязнения основной среды: никаких оставшихся файлов, случайных "
+"удалений или изменений существующих конфигурационных файлов."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:215
+msgid "Verify [.filename]#pkg-plist# for missing or superfluous entries"
+msgstr ""
+"Проверяет [.filename]#pkg-plist# на наличие отсутствующих или лишних записей"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:216
+msgid ""
+"Ports committers sometimes ask for a poudriere log alongside a patch "
+"submission to assess whether the patch is ready for integration into the "
+"ports tree"
+msgstr ""
+"Коммиттеры портов иногда запрашивают журнал poudriere вместе с отправкой "
+"патча, чтобы оценить, готов ли патч для интеграции в дерево портов"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:219
+msgid ""
+"It is also quite straightforward to set up and use, has no dependencies, and "
+"will run on any supported FreeBSD release. This section shows how to "
+"install, configure, and run poudriere as part of the normal workflow of a "
+"ports contributor."
+msgstr ""
+"Также его настройка и использование довольно просты, он не имеет "
+"зависимостей и будет работать в любой поддерживаемой версии FreeBSD. В этом "
+"разделе показано, как установить, настроить и запустить poudriere в рамках "
+"обычного рабочего процесса разработчика портов."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:224
+msgid ""
+"The examples in this section show a default file layout, as standard in "
+"FreeBSD. Substitute any local changes accordingly. The ports tree, "
+"represented by `${PORTSDIR}`, is located in [.filename]#/usr/ports#. Both `$"
+"{LOCALBASE}` and `${PREFIX}` are [.filename]#/usr/local# by default."
+msgstr ""
+"Примеры в этом разделе показывают стандартную структуру файлов, принятую в "
+"FreeBSD. Внесите соответствующие изменения, если у вас используются другие "
+"настройки. Дерево портов, обозначаемое как `${PORTSDIR}`, находится в "
+"[.filename]#/usr/ports#. По умолчанию `${LOCALBASE}` и `${PREFIX}` указывают "
+"на [.filename]#/usr/local#."
+
+#. type: Title ===
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:226
+#, no-wrap
+msgid "Installing poudriere"
+msgstr "Установка poudriere"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:230
+msgid ""
+"poudriere is available in the ports tree in package:ports-mgmt/poudriere[]. "
+"It can be installed using man:pkg[8] or from ports:"
+msgstr ""
+"poudriere доступен в дереве портов в пакете package:ports-mgmt/poudriere[]. "
+"Его можно установить с помощью man:pkg[8] или из портов:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:234
+#, no-wrap
+msgid "# pkg install poudriere\n"
+msgstr "# pkg install poudriere\n"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:237
+msgid "or"
+msgstr "или"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:241
+#, no-wrap
+msgid "# make -C /usr/ports/ports-mgmt/poudriere install clean\n"
+msgstr "# make -C /usr/ports/ports-mgmt/poudriere install clean\n"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:252
+msgid ""
+"There is also a work-in-progress version of poudriere which will eventually "
+"become the next release. It is available in package:ports-mgmt/poudriere-"
+"devel[]. This development version is used for the official FreeBSD package "
+"builds, so it is well tested. It often has newer interesting features. A "
+"ports committer will want to use the development version because it is what "
+"is used in production, and has all the new features that will make sure "
+"everything is exactly right. A contributor will not necessarily need those "
+"as the most important fixes are backported to released version. The main "
+"reason for the use of the development version to build the official package "
+"is because it is faster, in a way that will shorten a full build from 18 "
+"hours to 17 hours when using a high end 32 CPU server with 128GB of RAM. "
+"Those optimizations will not matter a lot when building ports on a desktop "
+"machine."
+msgstr ""
+"Также существует версия poudriere в разработке, которая в конечном итоге "
+"станет следующим релизом. Она доступна в пакете:ports-mgmt/poudriere-"
+"devel[]. Эта версия используется для официальных сборок пакетов FreeBSD, "
+"поэтому она хорошо протестирована. В ней часто появляются новые интересные "
+"функции. Коммиттер портов захочет использовать версию в разработке, так как "
+"именно она используется в продакшене и содержит все новые функции, которые "
+"гарантируют, что всё будет работать идеально. Контрибьютору не обязательно "
+"нужны эти функции, так как наиболее важные исправления переносятся в "
+"выпущенную версию. Основная причина использования версии в разработке для "
+"сборки официальных пакетов заключается в её скорости — она позволяет "
+"сократить время полной сборки с 18 до 17 часов при использовании "
+"высокопроизводительного сервера с 32 CPU и 128 ГБ оперативной памяти. Эти "
+"оптимизации не будут столь значимы при сборке портов на настольном "
+"компьютере."
+
+#. type: Title ===
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:254
+#, no-wrap
+msgid "Setting Up poudriere"
+msgstr "Настройка poudriere"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:258
+msgid ""
+"The port installs a default configuration file, [.filename]#/usr/local/etc/"
+"poudriere.conf#. Each parameter is documented in the configuration file."
+msgstr ""
+"Порт устанавливает файл конфигурации по умолчанию, [.filename]#/usr/local/"
+"etc/poudriere.conf#. Каждый параметр описан в этом файле конфигурации."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:260
+msgid "Here is a minimal example config file:"
+msgstr "Вот минимальный пример конфигурационного файла:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:267
+#, no-wrap
+msgid ""
+"ZPOOL=zroot\n"
+"BASEFS=/usr/local/poudriere\n"
+"DISTFILES_CACHE=/usr/ports/distfiles\n"
+"RESOLV_CONF=/etc/resolv.conf\n"
+msgstr ""
+"ZPOOL=zroot\n"
+"BASEFS=/usr/local/poudriere\n"
+"DISTFILES_CACHE=/usr/ports/distfiles\n"
+"RESOLV_CONF=/etc/resolv.conf\n"
+
+#. type: Labeled list
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:269
+#, no-wrap
+msgid "`ZPOOL`"
+msgstr "`ZPOOL`"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:272
+msgid ""
+"The name of the ZFS storage pool which poudriere shall use. Must be listed "
+"in the output of `zpool status`."
+msgstr ""
+"Имя пула хранения ZFS, который будет использовать poudriere. Должно быть "
+"указано в выводе команды `zpool status`."
+
+#. type: Labeled list
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:273
+#, no-wrap
+msgid "`BASEFS`"
+msgstr "`BASEFS`"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:276
+msgid ""
+"The root mount point for poudriere file systems. This entry will cause "
+"poudriere to mount `tank/poudriere` to `/poudriere`."
+msgstr ""
+"Корневая точка монтирования файловых систем poudriere. Эта запись приведет к "
+"тому, что poudriere смонтирует `tank/poudriere` в `/poudriere`."
+
+#. type: Labeled list
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:277
+#, no-wrap
+msgid "`DISTFILES_CACHE`"
+msgstr "`DISTFILES_CACHE`"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:282
+msgid ""
+"Defines where distfiles are stored. In this example, poudriere and the host "
+"share the distfiles storage directory. This avoids downloading tarballs "
+"which are already present on the system. Please create this directory if it "
+"does not already exist so that poudriere can find it."
+msgstr ""
+"Определяет, где хранятся distfiles. В этом примере poudriere и хост "
+"используют общий каталог для хранения distfiles. Это позволяет избежать "
+"загрузки tарболов, которые уже присутствуют в системе. Пожалуйста, создайте "
+"этот каталог, если он ещё не существует, чтобы poudriere мог его найти."
+
+#. type: Labeled list
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:283
+#, no-wrap
+msgid "`RESOLV_CONF`"
+msgstr "`RESOLV_CONF`"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:288
+msgid ""
+"Use the host [.filename]#/etc/resolv.conf# inside jails for DNS. This is "
+"needed so jails can resolve the URLs of distfiles when downloading. It is "
+"not needed when using a proxy. Refer to the default configuration file for "
+"proxy configuration."
+msgstr ""
+"Используйте файл [.filename]#/etc/resolv.conf# хоста внутри клеток для DNS. "
+"Это необходимо, чтобы клетки могли разрешать URL-адреса distfiles при "
+"загрузке. Это не требуется при использовании прокси. Обратитесь к файлу "
+"конфигурации по умолчанию для настройки прокси."
+
+#. type: Title ===
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:290
+#, no-wrap
+msgid "Creating poudriere Jails"
+msgstr "Создание клеток poudriere"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:293
+msgid "Create the base jails which poudriere will use for building:"
+msgstr ""
+"Создайте базовые клетки, которые poudriere будет использовать для сборки:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:297
+#, no-wrap
+msgid "# poudriere jail -c -j 131Ramd64 -v 13.1-RELEASE -a amd64\n"
+msgstr "# poudriere jail -c -j 131Ramd64 -v 13.1-RELEASE -a amd64\n"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:302
+msgid ""
+"Fetch a `13.1-RELEASE` for `amd64` from the FTP server given by "
+"`FREEBSD_HOST` in [.filename]#poudriere.conf#, create the zfs file system "
+"`tank/poudriere/jails/131Ramd64`, mount it on [.filename]#/poudriere/jails/"
+"131Ramd64# and extract the `13.1-RELEASE` tarballs into this file system."
+msgstr ""
+"Загрузите `13.1-RELEASE` для `amd64` с FTP-сервера, указанного в "
+"`FREEBSD_HOST` в [.filename]#poudriere.conf#, создайте ZFS-файловую систему "
+"`tank/poudriere/jails/131Ramd64`, смонтируйте её в [.filename]#/poudriere/"
+"jails/131Ramd64# и распакуйте тарболлы `13.1-RELEASE` в эту файловую систему."
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:306
+#, no-wrap
+msgid "# poudriere jail -c -j 12i386 -v stable/12 -a i386 -m git+https\n"
+msgstr "# poudriere jail -c -j 12i386 -v stable/12 -a i386 -m git+https\n"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:311
+msgid ""
+"Create `tank/poudriere/jails/12i386`, mount it on [.filename]#/poudriere/"
+"jails/12i386#, then check out the tip of the Git branch of `FreeBSD-12-"
+"STABLE` from `GIT_HOST` in [.filename]#poudriere.conf# or the default "
+"`git.freebsd.org` into [.filename]#/poudriere/jails/12i386/usr/src#, then "
+"complete a `buildworld` and install it into [.filename]#/poudriere/jails/"
+"12i386#."
+msgstr ""
+"Создайте `tank/poudriere/jails/12i386`, смонтируйте его на [.filename]#/"
+"poudriere/jails/12i386#, затем извлеките верхушку ветки Git `FreeBSD-12-"
+"STABLE` из `GIT_HOST` в [.filename]#poudriere.conf# или по умолчанию "
+"`git.freebsd.org` в [.filename]#/poudriere/jails/12i386/usr/src#, после чего "
+"выполните `buildworld` и установите его в [.filename]#/poudriere/jails/"
+"12i386#."
+
+#. type: delimited block = 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:317
+msgid ""
+"While it is possible to build a newer version of FreeBSD on an older "
+"version, most of the time it will not run. For example, if a `stable/13` "
+"jail is needed, the host will have to run `stable/13` too. Running `13.1-"
+"RELEASE` is not enough."
+msgstr ""
+"Хотя возможно собрать более новую версию FreeBSD на старой версии, в "
+"большинстве случаев она не запустится. Например, если требуется клетка на "
+"`stable/13`, то хост также должен работать на `stable/13`. Запуск `13.1-"
+"RELEASE` недостаточен."
+
+#. type: delimited block = 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:322
+msgid "To create a poudriere jail for `14.0-CURRENT`:"
+msgstr "Для создания клетки poudriere для `14.0-CURRENT`:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:326
+#, no-wrap
+msgid "# poudriere jail -c -j 14amd64 -v main -a amd64 -m git+https\n"
+msgstr "# poudriere jail -c -j 14amd64 -v main -a amd64 -m git+https\n"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:331
+msgid ""
+"In order to run a `14.0-CURRENT` poudriere jail the host must be running "
+"`14.0-CURRENT`. In general, newer kernels can build and run older jails. "
+"For instance, a `14.0-CURRENT` kernel can build and run a `12.4-STABLE` if "
+"the `COMPAT_FREEBSD12` kernel option was compiled in (on by default in `14.0-"
+"CURRENT`[.filename]#GENERIC# kernel config)."
+msgstr ""
+"Для запуска клетки `14.0-CURRENT` poudriere хостовая система должна работать "
+"под управлением `14.0-CURRENT`. В общем случае, более новые ядра могут "
+"собирать и запускать более старые клетки. Например, ядро `14.0-CURRENT` "
+"может собирать и запускать клетку `12.4-STABLE`, если параметр ядра "
+"`COMPAT_FREEBSD12` был скомпилирован (включен по умолчанию в конфигурации "
+"ядра [.filename]#GENERIC# `14.0-CURRENT`)."
+
+#. type: delimited block = 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:334
+msgid ""
+"A list of jails currently known to poudriere can be shown with `poudriere "
+"jail -l`:"
+msgstr ""
+"Список клеток, известных poudriere, можно вывести с помощью команды "
+"`poudriere jail -l`:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:341
+#, no-wrap
+msgid ""
+"# poudriere jail -l\n"
+"JAILNAME VERSION ARCH METHOD\n"
+"131Ramd64 13.1-RELEASE amd64 ftp\n"
+"12i386 12.4-STABLE i386 git+https\n"
+msgstr ""
+"# poudriere jail -l\n"
+"JAILNAME VERSION ARCH METHOD\n"
+"131Ramd64 13.1-RELEASE amd64 ftp\n"
+"12i386 12.4-STABLE i386 git+https\n"
+
+#. type: Title ===
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:344
+#, no-wrap
+msgid "Keeping poudriere Jails Updated"
+msgstr "Обновление клеток poudriere"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:348
+msgid "Managing updates is very straightforward. The command:"
+msgstr "Управление обновлениями очень простое. Команда:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:352
+#, no-wrap
+msgid "# poudriere jail -u -j JAILNAME\n"
+msgstr "# poudriere jail -u -j JAILNAME\n"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:357
+msgid ""
+"updates the specified jail to the latest version available. For FreeBSD "
+"releases, update to the latest patchlevel with man:freebsd-update[8]. For "
+"FreeBSD versions built from source, update to the latest git revision in the "
+"branch."
+msgstr ""
+"обновляет указанную клетку до последней доступной версии. Для релизов "
+"FreeBSD обновление до последнего уровня исправлений с помощью man:freebsd-"
+"update[8]. Для версий FreeBSD, собранных из исходников, обновление до "
+"последней ревизии git в ветке."
+
+#. type: delimited block = 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:362
+msgid ""
+"For jails employing a `git+*` method, it is helpful to add `-J "
+"_NumberOfParallelBuildJobs_` to speed up the build by increasing the number "
+"of parallel compile jobs used. For example, if the building machine has 6 "
+"CPUs, use:"
+msgstr ""
+"Для клеток, использующих метод `git+*`, полезно добавить `-J "
+"_КоличествоПараллельныхСборок_` для ускорения сборки за счёт увеличения "
+"количества параллельных задач компиляции. Например, если на машине для "
+"сборки 6 CPU, используйте:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:366
+#, no-wrap
+msgid "# poudriere jail -u -J 6 -j JAILNAME\n"
+msgstr "# poudriere jail -u -J 6 -j JAILNAME\n"
+
+#. type: Title ===
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:371
+#, no-wrap
+msgid "Setting Up Ports Trees for Use with poudriere"
+msgstr "Настройка деревьев портов для использования с poudriere"
+
+#. type: delimited block = 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:375
+msgid ""
+"There are multiple ways to use ports trees in poudriere. The most "
+"straightforward way is to have poudriere create a default ports tree for "
+"itself, using link:{handbook}mirrors/#git[Git]:"
+msgstr ""
+"Существует несколько способов использования деревьев портов в poudriere. "
+"Наиболее простой способ — позволить poudriere создать для себя дерево портов "
+"по умолчанию, используя link:{handbook}mirrors/#git[Git]:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:379
+#, no-wrap
+msgid "# poudriere ports -c -m git+https -B main\n"
+msgstr "# poudriere ports -c -m git+https -B main\n"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:383
+msgid ""
+"These commands create `tank/poudriere/ports/default`, mount it on "
+"[.filename]#/poudriere/ports/default#, and populate it using Git. Afterward "
+"it is included in the list of known ports trees:"
+msgstr ""
+"Эти команды создают `tank/poudriere/ports/default`, монтируют его в "
+"[.filename]#/poudriere/ports/default# и заполняют с помощью Git. После этого "
+"он включается в список известных деревьев портов:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:389
+#, no-wrap
+msgid ""
+"# poudriere ports -l\n"
+"PORTSTREE METHOD TIMESTAMP PATH\n"
+"default git+https 2020-07-20 04:23:56 /poudriere/ports/default\n"
+msgstr ""
+"# poudriere ports -l\n"
+"PORTSTREE METHOD TIMESTAMP PATH\n"
+"default git+https 2020-07-20 04:23:56 /poudriere/ports/default\n"
+
+#. type: delimited block = 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:396
+msgid ""
+"Note that the \"default\" ports tree is special. Each of the build commands "
+"explained later will implicitly use this ports tree unless specifically "
+"specified otherwise. To use another tree, add `-p _treename_` to the "
+"commands."
+msgstr ""
+"Обратите внимание, что дерево портов \"default\" является особым. Каждая из "
+"команд сборки, объяснённых далее, будет неявно использовать это дерево "
+"портов, если явно не указано иное. Чтобы использовать другое дерево, "
+"добавьте `-p _treename_` к командам."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:401
+msgid ""
+"The best way to deal with local modifications for a ports contributor is to "
+"use link:{handbook}mirrors/#git[Git]. As with the creation of jails, it is "
+"possible to use a different method for creating the ports tree. To add an "
+"additional ports tree for testing local modifications and ports development, "
+"checking out the tree via git (as described above) is preferable."
+msgstr ""
+"Лучший способ работы с локальными изменениями для разработчика портов — "
+"использовать link:{handbook}mirrors/#git[Git]. Как и при создании клеток, "
+"можно использовать другой метод для создания дерева портов. Чтобы добавить "
+"дополнительное дерево портов для тестирования локальных изменений и "
+"разработки портов, предпочтительно использовать клонирование дерева через "
+"git (как описано выше)."
+
+#. type: Title ===
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:403
+#, no-wrap
+msgid "Using Manually Managed Ports Trees with poudriere"
+msgstr "Использование управляемых вручную деревьев портов с помощью poudriere"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:407
+msgid ""
+"Depending on the workflow, it can be extremely helpful to use ports trees "
+"which are maintained manually. For instance, if there is a local copy of "
+"the ports tree in [.filename]#/work/ports#, point poudriere to the location:"
+msgstr ""
+"В зависимости от рабочего процесса может быть крайне полезно использовать "
+"деревья портов, которые поддерживаются вручную. Например, если существует "
+"локальная копия дерева портов в [.filename]#/work/ports#, укажите poudriere "
+"на это расположение:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:411
+#, no-wrap
+msgid "# poudriere ports -c -m null -M /work/ports -p development\n"
+msgstr "# poudriere ports -c -m null -M /work/ports -p development\n"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:414
+msgid "This will be listed in the table of known trees:"
+msgstr "Это будет указано в таблице известных деревьев:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:420
+#, no-wrap
+msgid ""
+"# poudriere ports -l\n"
+"PORTSTREE METHOD TIMESTAMP PATH\n"
+"development null 2020-07-20 05:06:33 /work/ports\n"
+msgstr ""
+"# poudriere ports -l\n"
+"PORTSTREE METHOD TIMESTAMP PATH\n"
+"development null 2020-07-20 05:06:33 /work/ports\n"
+
+#. type: delimited block = 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:426
+msgid ""
+"The dash or `null` in the `METHOD` column means that poudriere will not "
+"update or change this ports tree, ever. It is completely up to the user to "
+"maintain this tree, including all local modifications that may be used for "
+"testing new ports and submitting patches."
+msgstr ""
+"Тире или `null` в колонке `METHOD` означает, что poudriere никогда не будет "
+"обновлять или изменять это дерево портов. Полностью на пользователе лежит "
+"ответственность за поддержку этого дерева, включая все локальные изменения, "
+"которые могут использоваться для тестирования новых портов и отправки "
+"исправлений."
+
+#. type: Title ===
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:429
+#, no-wrap
+msgid "Keeping poudriere Ports Trees Updated"
+msgstr "Обновление деревьев портов poudriere"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:432
+msgid "As straightforward as with jails described earlier:"
+msgstr "Так же просто, как с клетками, описанными ранее:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:436
+#, no-wrap
+msgid "# poudriere ports -u -p PORTSTREE\n"
+msgstr "# poudriere ports -u -p PORTSTREE\n"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:439
+msgid ""
+"Will update the given _PORTSTREE_, one tree given by the output of "
+"`poudriere -l`, to the latest revision available on the official servers."
+msgstr ""
+"Обновит указанное _PORTSTREE_, дерево, указанное в выводе команды `poudriere "
+"-l`, до последней доступной ревизии на официальных серверах."
+
+#. type: delimited block = 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:444
+msgid ""
+"Ports trees without a method, see crossref:testing[testing-poudriere-ports-"
+"tree-manual, Using Manually Managed Ports Trees with poudriere], cannot be "
+"updated like this and must be updated manually by the porter."
+msgstr ""
+"Деревья портов без метода, см. crossref:testing[testing-poudriere-ports-tree-"
+"manual, Использование вручную управляемых деревьев портов с помощью "
+"poudriere], не могут быть обновлены таким образом и должны обновляться "
+"вручную сопровождающим портов."
+
+#. type: Title ===
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:447
+#, no-wrap
+msgid "Testing Ports"
+msgstr "Тестирование портов"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:450
+msgid ""
+"After jails and ports trees have been set up, the result of a contributor's "
+"modifications to the ports tree can be tested."
+msgstr ""
+"После настройки клеток и деревьев портов можно проверить результат "
+"изменений, внесенных участником в дерево портов."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:452
+msgid ""
+"For example, local modifications to the package:www/firefox[] port located "
+"in [.filename]#/work/ports/www/firefox# can be tested in the previously "
+"created 13.1-RELEASE jail:"
+msgstr ""
+"Например, локальные изменения в порте package:www/firefox[], расположенном в "
+"[.filename]#/work/ports/www/firefox#, можно протестировать в ранее созданной "
+"клетке 13.1-RELEASE:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:456
+#, no-wrap
+msgid "# poudriere testport -j 131Ramd64 -p development -o www/firefox\n"
+msgstr "# poudriere testport -j 131Ramd64 -p development -o www/firefox\n"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:462
+msgid ""
+"This will build all dependencies of Firefox. If a dependency has been built "
+"previously and is still up-to-date, the pre-built package is installed. If "
+"a dependency has no up-to-date package, one will be built with default "
+"options in a jail. Then Firefox itself is built."
+msgstr ""
+"Это соберет все зависимости Firefox. Если зависимость уже была собрана ранее "
+"и остается актуальной, будет установлен готовый пакет. Если для зависимости "
+"нет актуального пакета, он будет собран с параметрами по умолчанию в клетке. "
+"Затем будет собран сам Firefox."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:464
+msgid ""
+"The complete build of every port is logged to [.filename]#/poudriere/data/"
+"logs/bulk/131Ri386-development/build-time/logs#."
+msgstr ""
+"Полная сборка каждого порта записывается в [.filename]#/poudriere/data/logs/"
+"bulk/131Ri386-development/build-time/logs#."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:469
+msgid ""
+"The directory name `131Ri386-development` is derived from the arguments to `-"
+"j` and `-p`, respectively. For convenience, a symbolic link [.filename]#/"
+"poudriere/data/logs/bulk/131Ri386-development/latest# is also maintained. "
+"The link points to the latest _build-time_ directory. Also in this "
+"directory is an [.filename]#index.html# for observing the build process with "
+"a web browser."
+msgstr ""
+"Имя каталога `131Ri386-development` формируется из аргументов `-j` и `-p` "
+"соответственно. Для удобства также поддерживается символическая ссылка "
+"[.filename]#/poudriere/data/logs/bulk/131Ri386-development/latest#. Эта "
+"ссылка указывает на последний каталог _времени сборки_. Также в этом "
+"каталоге находится файл [.filename]#index.html#, который позволяет наблюдать "
+"за процессом сборки через веб-браузер."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:472
+msgid ""
+"By default, poudriere cleans up the jails and leaves log files in the "
+"directories mentioned above. To ease investigation, jails can be kept "
+"running after the build by adding `-i` to `testport`:"
+msgstr ""
+"По умолчанию poudriere очищает клетки и оставляет файлы журналов в указанных "
+"выше каталогах. Для упрощения анализа клетки можно оставить запущенными "
+"после сборки, добавив `-i` к `testport`:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:476
+#, no-wrap
+msgid "# poudriere testport -j 131Ramd64 -p development -i -o www/firefox\n"
+msgstr "# poudriere testport -j 131Ramd64 -p development -i -o www/firefox\n"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:483
+msgid ""
+"After the build completes, and regardless of whether it was successful, a "
+"shell is provided within the jail. The shell is used to investigate "
+"further. poudriere can be told to leave the jail running after the build "
+"finishes with `-I`. poudriere will show the command to run when the jail is "
+"no longer needed. It is then possible to man:jexec[8] into it:"
+msgstr ""
+"После завершения сборки, независимо от того, была ли она успешной, в клетке "
+"предоставляется оболочка. Эта оболочка используется для дальнейшего "
+"исследования. Можно указать poudriere оставить клетку запущенной после "
+"завершения сборки с помощью `-I`. poudriere покажет команду для выполнения, "
+"когда клетка больше не нужна. Затем можно использовать man:jexec[8] для "
+"входа в неё:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:497
+#, no-wrap
+msgid ""
+"# poudriere testport -j 131Ramd64 -p development -I -o www/firefox\n"
+"[...]\n"
+"====>> Installing local Pkg repository to /usr/local/etc/pkg/repos\n"
+"====>> Leaving jail 131Ramd64-development-n running, mounted at /poudriere/data/.m/131Ramd64-development/ref for interactive run testing\n"
+"====>> To enter jail: jexec 131Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root\n"
+"====>> To stop jail: poudriere jail -k -j 131Ramd64 -p development\n"
+"# jexec 131Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root\n"
+"# [do some stuff in the jail]\n"
+"# exit\n"
+"# poudriere jail -k -j 131Ramd64 -p development\n"
+"====>> Umounting file systems\n"
+msgstr ""
+"# poudriere testport -j 131Ramd64 -p development -I -o www/firefox\n"
+"[...]\n"
+"====>> Installing local Pkg repository to /usr/local/etc/pkg/repos\n"
+"====>> Leaving jail 131Ramd64-development-n running, mounted at /poudriere/data/.m/131Ramd64-development/ref for interactive run testing\n"
+"====>> To enter jail: jexec 131Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root\n"
+"====>> To stop jail: poudriere jail -k -j 131Ramd64 -p development\n"
+"# jexec 131Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root\n"
+"# [do some stuff in the jail]\n"
+"# exit\n"
+"# poudriere jail -k -j 131Ramd64 -p development\n"
+"====>> Umounting file systems\n"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:502
+msgid ""
+"An integral part of the FreeBSD ports build infrastructure is the ability to "
+"tweak ports to personal preferences with options. These can be tested with "
+"poudriere as well. Adding the `-c`:"
+msgstr ""
+"Неотъемлемой частью инфраструктуры сборки портов FreeBSD является "
+"возможность настройки портов под личные предпочтения с помощью опций. Их "
+"также можно тестировать с помощью poudriere. Добавление опции `-c`:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:506
+#, no-wrap
+msgid "# poudriere testport -j 131Ramd64 -c -o www/firefox\n"
+msgstr "# poudriere testport -j 131Ramd64 -c -o www/firefox\n"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:512
+msgid ""
+"Presents the port configuration dialog before the port is built. The ports "
+"given after `-o` in the format `_category_/_portname_` will use the "
+"specified options, all dependencies will use the default options. Testing "
+"dependent ports with non-default options can be accomplished using sets, see "
+"crossref:testing[testing-poudriere-sets, Using Sets]."
+msgstr ""
+"Представляет диалог настройки порта перед его сборкой. Порты, указанные "
+"после `-o` в формате `_категория_/_имя_порта_`, будут использовать указанные "
+"опции, все зависимости будут использовать опции по умолчанию. Тестирование "
+"зависимых портов с нестандартными опциями может быть выполнено с "
+"использованием наборов, см. crossref:testing[testing-poudriere-sets, "
+"Использование наборов]."
+
+#. type: delimited block = 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:517
+msgid ""
+"When testing ports where [.filename]#pkg-plist# is altered during build "
+"depending on the selected options, it is recommended to perform a test run "
+"with all options selected _and_ one with all options deselected."
+msgstr ""
+"При тестировании портов, где файл [.filename]#pkg-plist# изменяется во время "
+"сборки в зависимости от выбранных опций, рекомендуется выполнить тестовый "
+"запуск со всеми выбранными опциями _и_ один без выбранных опций."
+
+#. type: Title ===
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:520
+#, no-wrap
+msgid "Using Sets"
+msgstr "Использование наборов"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:525
+msgid ""
+"For all actions involving builds, a so-called _set_ can be specified using `-"
+"z _setname_`. A set refers to a fully independent build. This allows, for "
+"instance, usage of `testport` with non-standard options for the dependent "
+"ports."
+msgstr ""
+"Для всех действий, связанных со сборкой, можно указать так называемый "
+"_набор_ с помощью `-z _имя_набора_`. Набор относится к полностью независимой "
+"сборке. Это позволяет, например, использовать `testport` с нестандартными "
+"параметрами для зависимых портов."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:531
+msgid ""
+"To use sets, poudriere expects an existing directory structure similar to "
+"`PORT_DBDIR`, defaults to [.filename]#/var/db/ports# in its configuration "
+"directory. This directory is then man:nullfs[5]-mounted into the jails "
+"where the ports and their dependencies are built. Usually a suitable "
+"starting point can be obtained by recursively copying the existing "
+"`PORT_DBDIR` to [.filename]#/usr/local/etc/poudriere.d/jailname-portname-"
+"setname-options#. This is described in detail in man:poudriere[8]. For "
+"instance, testing package:www/firefox[] in a specific set named `devset`, "
+"add the `-z devset` parameter to the `testport` command:"
+msgstr ""
+"Для использования наборов poudriere ожидает, что будет использована "
+"структура каталогов, аналогичная `PORT_DBDIR`, по умолчанию [.filename]#/var/"
+"db/ports#, в его конфигурационной директории. Этот каталог затем монтируется "
+"с помощью man:nullfs[5] в клетки, где собираются порты и их зависимости. "
+"Обычно подходящую начальную точку можно получить, рекурсивно скопировав "
+"существующий `PORT_DBDIR` в [.filename]#/usr/local/etc/poudriere.d/jailname-"
+"portname-setname-options#. Это подробно описано в man:poudriere[8]. "
+"Например, для тестирования package:www/firefox[] в определённом наборе с "
+"именем `devset`, добавьте параметр `-z devset` к команде `testport`:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:535
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:579
+#, no-wrap
+msgid "# poudriere testport -j 131Ramd64 -p development -z devset -o www/firefox\n"
+msgstr "# poudriere testport -j 131Ramd64 -p development -z devset -o www/firefox\n"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:538
+msgid "This will look for the existence of these directories in this order:"
+msgstr "Это проверит наличие этих каталогов в следующем порядке:"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:540
+msgid ""
+"[.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-devset-options#"
+msgstr ""
+"[.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-devset-options#"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:541
+msgid "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-devset-options#"
+msgstr "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-devset-options#"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:542
+msgid "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-options#"
+msgstr "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-options#"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:543
+msgid "[.filename]#/usr/local/etc/poudriere.d/devset-options#"
+msgstr "[.filename]#/usr/local/etc/poudriere.d/devset-options#"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:544
+msgid "[.filename]#/usr/local/etc/poudriere.d/development-options#"
+msgstr "[.filename]#/usr/local/etc/poudriere.d/development-options#"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:545
+msgid "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-options#"
+msgstr "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-options#"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:546
+msgid "[.filename]#/usr/local/etc/poudriere.d/options#"
+msgstr "[.filename]#/usr/local/etc/poudriere.d/options#"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:549
+msgid ""
+"From this list, poudriere man:nullfs[5]-mounts the _first existing_ "
+"directory tree into the [.filename]#/var/db/ports# directory of the build "
+"jails. Hence, all custom options are used for all the ports during this run "
+"of `testport`."
+msgstr ""
+"Из этого списка poudriere man:nullfs[5] монтирует _первое существующее_ "
+"дерево каталогов в директорию [.filename]#/var/db/ports# сборных клеток. "
+"Таким образом, все пользовательские настройки используются для всех портов "
+"во время этого запуска `testport`."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:552
+msgid ""
+"After the directory structure for a set is provided, the options for a "
+"particular port can be altered. For example:"
+msgstr ""
+"После предоставления структуры каталогов для набора можно изменить параметры "
+"для конкретного порта. Например:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:556
+#, no-wrap
+msgid "# poudriere options -c www/firefox -z devset\n"
+msgstr "# poudriere options -c www/firefox -z devset\n"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:560
+msgid ""
+"The configuration dialog for package:www/firefox[] is shown, and options can "
+"be edited. The selected options are saved to the `devset` set."
+msgstr ""
+"Отображается диалог настройки package:www/firefox[], где можно редактировать "
+"параметры. Выбранные параметры сохраняются в набор `devset`."
+
+#. type: delimited block = 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:566
+msgid ""
+"poudriere is very flexible in the option configuration. poudriere can be "
+"set for particular jails, ports trees, and for multiple ports by one "
+"command. Refer to man:poudriere[8] for details."
+msgstr ""
+"poudriere очень гибок в настройке опций. poudriere можно настроить для "
+"конкретных клеток, деревьев портов и для нескольких портов одной командой. "
+"Подробности см. в man:poudriere[8]."
+
+#. type: Title ===
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:569
+#, no-wrap
+msgid "Providing a Custom [.filename]#make.conf# File"
+msgstr "Предоставление пользовательского файла [.filename]#make.conf#"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:575
+msgid ""
+"Similar to using sets, poudriere will also use a custom "
+"[.filename]#make.conf# if it is provided. No special command line argument "
+"is necessary. Instead, poudriere looks for existing files matching a name "
+"scheme derived from the command line. For instance:"
+msgstr ""
+"Подобно использованию наборов, poudriere также использует пользовательский "
+"[.filename]#make.conf#, если он предоставлен. Для этого не требуется "
+"специального аргумента командной строки. Вместо этого poudriere ищет "
+"существующие файлы, соответствующие схеме именования, производной от "
+"командной строки. Например:"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:582
+msgid ""
+"causes poudriere to check for the existence of these files in this order:"
+msgstr ""
+"заставляет poudriere проверять наличие этих файлов в следующем порядке:"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:584
+msgid "[.filename]#/usr/local/etc/poudriere.d/make.conf#"
+msgstr "[.filename]#/usr/local/etc/poudriere.d/make.conf#"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:585
+msgid "[.filename]#/usr/local/etc/poudriere.d/devset-make.conf#"
+msgstr "[.filename]#/usr/local/etc/poudriere.d/devset-make.conf#"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:586
+msgid "[.filename]#/usr/local/etc/poudriere.d/development-make.conf#"
+msgstr "[.filename]#/usr/local/etc/poudriere.d/development-make.conf#"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:587
+msgid "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-make.conf#"
+msgstr "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-make.conf#"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:588
+msgid "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-make.conf#"
+msgstr ""
+"[.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-make.conf#"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:589
+msgid "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-devset-make.conf#"
+msgstr "[.filename]#/usr/local/etc/poudriere.d/131Ramd64-devset-make.conf#"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:590
+msgid ""
+"[.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-devset-"
+"make.conf#"
+msgstr ""
+"[.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-devset-"
+"make.conf#"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:594
+msgid ""
+"Unlike with sets, all of the found files will be appended, _in that order_, "
+"into one [.filename]#make.conf# inside the build jails. It is hence "
+"possible to have general make variables, intended to affect all builds in "
+"[.filename]#/usr/local/etc/poudriere.d/make.conf#. Special variables, "
+"intended to affect only certain jails or sets can be set in specialised "
+"[.filename]#make.conf# files, such as [.filename]#/usr/local/etc/poudriere.d/"
+"131Ramd64-development-devset-make.conf#."
+msgstr ""
+"В отличие от наборов, все найденные файлы будут добавлены, _в указанном "
+"порядке_, в один [.filename]#make.conf# внутри клеток сборки. Таким образом, "
+"можно задать общие переменные make, предназначенные для влияния на все "
+"сборки, в файле [.filename]#/usr/local/etc/poudriere.d/make.conf#. "
+"Специальные переменные, предназначенные только для определённых клеток или "
+"наборов, можно задать в специализированных файлах [.filename]#make.conf#, "
+"например, в [.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-"
+"devset-make.conf#."
+
+#. type: Block title
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:596
+#, no-wrap
+msgid "Using [.filename]#make.conf# to Change Default Perl"
+msgstr "Использование [.filename]#make.conf# для изменения Perl по умолчанию"
+
+#. type: delimited block = 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:601
+msgid ""
+"To build a set with a non default Perl version, for example, `5.20`, using a "
+"set named `perl5-20`, create a [.filename]#perl5-20-make.conf# with this "
+"line:"
+msgstr ""
+"Для сборки набора с нестандартной версией Perl, например, `5.20`, используя "
+"набор с именем `perl5-20`, создайте файл [.filename]#perl5-20-make.conf# со "
+"следующей строкой:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:605
+#, no-wrap
+msgid "DEFAULT_VERSIONS+= perl=5.20\n"
+msgstr "DEFAULT_VERSIONS+= perl=5.20\n"
+
+#. type: delimited block * 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:609
+msgid ""
+"Note the use of `+=` so that if the variable is already set in the default "
+"[.filename]#make.conf# its content will not be overwritten."
+msgstr ""
+"Обратите внимание на использование `+=`, чтобы содержимое переменной не было "
+"перезаписано, если она уже установлена в стандартном [.filename]#make.conf#."
+
+#. type: Title ===
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:614
+#, no-wrap
+msgid "Pruning no Longer Needed Distfiles"
+msgstr "Удаление ненужных файлов дистрибутива"
+
+#. type: delimited block = 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:618
+msgid ""
+"poudriere comes with a built-in mechanism to remove outdated distfiles that "
+"are no longer used by any port of a given tree. The command"
+msgstr ""
+"poudriere имеет встроенный механизм для удаления устаревших файлов "
+"дистрибутива, которые больше не используются ни одним портом данного дерева. "
+"Команда"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:622
+#, no-wrap
+msgid "# poudriere distclean -p portstree\n"
+msgstr "# poudriere distclean -p portstree\n"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:627
+msgid ""
+"will scan the distfiles folder, `DISTFILES_CACHE` in "
+"[.filename]#poudriere.conf#, versus the ports tree given by the `-p "
+"_portstree_` argument and prompt for removal of those distfiles. To skip "
+"the prompt and remove all unused files unconditionally, the `-y` argument "
+"can be added:"
+msgstr ""
+"будет сканировать папку файлов дистрибутива, `DISTFILES_CACHE` в "
+"[.filename]#poudriere.conf#, сравнивая ее с деревом портов, указанным "
+"аргументом `-p _portstree_`, и запрашивать подтверждение на удаление этих "
+"файлов дистрибутива. Чтобы пропустить запрос и удалить все неиспользуемые "
+"файлы без подтверждения, можно добавить аргумент `-y`:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:631
+#, no-wrap
+msgid "# poudriere distclean -p portstree -y\n"
+msgstr "# poudriere distclean -p portstree -y\n"
+
+#. type: Title ==
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:634
+#, no-wrap
+msgid "Debugging ports"
+msgstr "Отладка портов"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:641
+msgid ""
+"Sometimes things go wrong and the port fails at run time. The framework "
+"provides some facilities to help in debugging ports. These helpers are "
+"limited since the way of debugging a port heavily depends on the technology "
+"used. The following variables help with debugging ports:"
+msgstr ""
+"Иногда что-то идёт не так, и порт не работает во время выполнения. Фреймворк "
+"предоставляет некоторые средства для отладки портов. Эти вспомогательные "
+"инструменты ограничены, поскольку способ отладки порта во многом зависит от "
+"используемой технологии. Следующие переменные помогают в отладке портов:"
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:643
+msgid "`WITH_DEBUG`. If set, ports are built with debugging symbols."
+msgstr ""
+"`WITH_DEBUG`. Если установлено, порты собираются с отладочными символами."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:644
+msgid ""
+"`WITH_DEBUG_PORTS`. Specifies a list of ports to be built with `WITH_DEBUG` "
+"set."
+msgstr ""
+"`WITH_DEBUG_PORTS`. Указывает список портов, которые должны собираться с "
+"установленным `WITH_DEBUG`."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:645
+msgid ""
+"`DEBUG_FLAGS`. Used to specify additional flags to `CFLAGS`. Defaults to `-"
+"g`."
+msgstr ""
+"`DEBUG_FLAGS`. Используется для указания дополнительных флагов для `CFLAGS`. "
+"По умолчанию `-g`."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:648
+msgid ""
+"When `WITH_DEBUG` is set, either globally or for a list of ports, the "
+"resulting binaries are not stripped."
+msgstr ""
+"Когда `WITH_DEBUG` установлен, глобально или для списка портов, "
+"результирующие бинарные файлы не лишаются символов."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:651
+msgid ""
+"These variables can be specified in [.filename]#make.conf# or in the command "
+"line:"
+msgstr ""
+"Эти переменные могут быть указаны в [.filename]#make.conf# или в командной "
+"строке:"
+
+#. type: delimited block . 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:655
+#, no-wrap
+msgid "# cd category/port && make -DWITH_DEBUG DEBUG_FLAGSS=\"-g -O0\"\n"
+msgstr "# cd category/port && make -DWITH_DEBUG DEBUG_FLAGSS=\"-g -O0\"\n"
+
+#. type: delimited block = 4
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:663
+msgid ""
+"If the port is built using package:ports-mgmt/poudriere[] the debugging "
+"variables must be specified in poudriere's [.filename]#make.conf# and not in "
+"[.filename]#/etc/make.conf#. Refer to package:ports-mgmt/poudriere[] "
+"documentation for details."
+msgstr ""
+"Если порт собирается с использованием package:ports-mgmt/poudriere[], "
+"отладочные переменные должны быть указаны в [.filename]#make.conf# "
+"poudriere, а не в [.filename]#/etc/make.conf#. Подробности см. в "
+"документации package:ports-mgmt/poudriere[]."
+
+#. type: Plain text
+#: documentation/content/en/books/porters-handbook/testing/_index.adoc:667
+msgid ""
+"Please refer to the debugging information in the extref:{developers-handbook}"
+"tools[Developer's Handbook, debugging] for more details about the debugging "
+"tools available."
+msgstr ""
+"Пожалуйста, обратитесь к отладочной информации в extref:{developers-handbook}"
+"tools[Руководстве разработчика, отладка] для получения более подробной "
+"информации о доступных инструментах отладки."
+
+#~ msgid ""
+#~ "Since `portlint` uses heuristics to try to figure out errors, it can "
+#~ "produce false positive warnings. In addition, occasionally something "
+#~ "that is flagged as a problem really cannot be done in any other way due "
+#~ "to limitations in the ports framework. pass:[<!-- vale Vale.Terms = NO --"
+#~ ">] When in doubt, the best thing to do is ask on {freebsd-ports}. pass:"
+#~ "[<!-- vale Vale.Terms = YES -->]"
+#~ msgstr ""
+#~ "Так как для обнаружения ошибок `portlint` использует эвристические "
+#~ "методы, то им могут выдаваться и ошибочные предупреждения. Кроме того, "
+#~ "время от времени нечто, отмечаемое как некорректность, из-за ограничений "
+#~ "механизма создания портов не может быть сделано никак иначе. pass:[<!-- "
+#~ "vale Vale.Terms = NO -->] Если вы сомневаетесь, то лучше всего спросить в "
+#~ "{freebsd-ports}. pass:[<!-- vale Vale.Terms = YES -->]"
+
+#~ msgid ""
+#~ "updates the specified jail to the latest version available. pass:[<!-- "
+#~ "vale Vale.Terms = NO -->] For FreeBSD releases, update to the latest "
+#~ "patchlevel with man:freebsd-update[8]. pass:[<!-- vale Vale.Terms = YES "
+#~ "-->] For FreeBSD versions built from source, update to the latest git "
+#~ "revision in the branch."
+#~ msgstr ""
+#~ "обновляет указанную клетку до последней доступной версии. pass:[<!-- "
+#~ "vale Vale.Terms = NO -->] Для релизов FreeBSD обновление до последнего "
+#~ "уровня исправлений с помощью man:freebsd-update[8]. pass:[<!-- vale "
+#~ "Vale.Terms = YES -->] Для версий FreeBSD, собранных из исходников, "
+#~ "обновление до последней ревизии git в ветке."