diff options
Diffstat (limited to 'documentation/content/ru/books/porters-handbook/testing/_index.po')
-rw-r--r-- | documentation/content/ru/books/porters-handbook/testing/_index.po | 1685 |
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 в ветке." |