# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR The FreeBSD Project # This file is distributed under the same license as the FreeBSD Documentation package. # Vladlen Popolitov , 2025. msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2025-05-01 19:56-0300\n" "PO-Revision-Date: 2025-11-25 04:45+0000\n" "Last-Translator: Vladlen Popolitov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 4.17\n" #. type: Title = #: documentation/content/en/books/porters-handbook/plist/_index.adoc:1 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:14 #, no-wrap msgid "Advanced pkg-plist Practices" msgstr "Продвинутые практики pkg-plist" #. type: YAML Front Matter: title #: documentation/content/en/books/porters-handbook/plist/_index.adoc:1 #, no-wrap msgid "Chapter 8. Advanced pkg-plist Practices" msgstr "Глава 8. Продвинутые практики pkg-plist" #. type: Title == #: documentation/content/en/books/porters-handbook/plist/_index.adoc:52 #, no-wrap msgid "Changing pkg-plist Based on Make Variables" msgstr "" "Изменение содержимого [.filename]#pkg-plist# в зависимости от make-переменных" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:59 msgid "" "Some ports, particularly the `p5-` ports, need to change their " "[.filename]#pkg-plist# depending on what options they are configured with " "(or version of `perl`, in the case of `p5-` ports). To make this easy, any " "instances in [.filename]#pkg-plist# of `%%OSREL%%`, `%%PERL_VER%%`, and `%" "%PERL_VERSION%%` will be substituted appropriately. The value of `%%OSREL%" "%` is the numeric revision of the operating system (for example, `4.9`). `%" "%PERL_VERSION%%` and `%%PERL_VER%%` is the full version number of `perl` " "(for example, `5.8.9`). Several other `%%_VARS_%%` related to port's " "documentation files are described in crossref:makefiles[install-" "documentation,the relevant section]." msgstr "" "Некоторые порты, в частности, порты `p5-`, должны менять содержимое своих " "файлов [.filename]#pkg-plist# в зависимости от того, с какими параметрами " "они были отконфигурированы (или в зависимости от версии языка `perl` в " "случае портов `p5-`). Чтобы облегчить этот процесс, любые вхождения ключевых " "слов `%%OSREL%%`, `%%PERL_VER%%` и `%%PERL_VERSION%%` в файле [.filename" "]#pkg-plist# будут заменяться соответствующими значениями. Значением " "`%%OSREL%%` является номер версии операционной системы (например, `4.9`). " "`%%PERL_VERSION%%` и `%%PERL_VER%%` обозначают полный номер версии `perl` (" "например, `5.8.9`). Некоторые другие `%%VARS%%`, имеющие отношение к файлам " "документации порта, описаны в crossref:makefiles[install-" "documentation,соответствующем разделе]." #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:61 msgid "" "To make other substitutions, set `PLIST_SUB` with a list of `_VAR=VALUE_` " "pairs and instances of `%%_VAR_%%` will be substituted with _VALUE_ in " "[.filename]#pkg-plist#." msgstr "" "Если вам нужно сделать другие подстановки, вы можете указать в переменной " "`PLIST_SUB` список пар `VAR=VALUE`, и все вхождения `%%VAR%%` в файле [." "filename]#pkg-plist# будут заменяться на значение _VALUE_." #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:64 msgid "" "For instance, if a port installs many files in a version-specific " "subdirectory, use a placeholder for the version so that [.filename]#pkg-" "plist# does not have to be regenerated every time the port is updated. For " "example, set:" msgstr "" "Например, если порт устанавливает множество файлов в подкаталоге, зависящем " "от версии, используйте заполнитель для версии, чтобы файл [.filename]#pkg-" "plist# не требовал перегенерации при каждом обновлении порта. Например, " "укажите:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:69 #, no-wrap msgid "" "OCTAVE_VERSION=\t${PORTREVISION}\n" "PLIST_SUB=\tOCTAVE_VERSION=${OCTAVE_VERSION}\n" msgstr "" "OCTAVE_VERSION=\t${PORTREVISION}\n" "PLIST_SUB=\tOCTAVE_VERSION=${OCTAVE_VERSION}\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:73 msgid "" "in the [.filename]#Makefile# and use `%%OCTAVE_VERSION%%` wherever the " "version shows up in [.filename]#pkg-plist#. When the port is upgraded, it " "will not be necessary to edit dozens (or in some cases, hundreds) of lines " "in [.filename]#pkg-plist#." msgstr "" "в файле [.filename]#Makefile# и использовать `%%OCTAVE_VERSION%%` везде, где " "нужно указать номер версии в файле [.filename]#pkg-plist#. Таким образом, " "при обновлении порта вам не нужно будет менять десятки (а в некоторых " "случаях и сотни) строк в файле [.filename]#pkg-plist#." #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:76 msgid "" "If files are installed conditionally on the options set in the port, the " "usual way of handling it is prefixing [.filename]#pkg-plist# lines with a `%" "%OPT%%` for lines needed when the option is enabled, or `%%NO_OPT%%` when " "the option is disabled, and adding `OPTIONS_SUB=yes` to the " "[.filename]#Makefile#. See crossref:makefiles[options_sub,`OPTIONS_SUB`] " "for more information." msgstr "" "Если файлы устанавливаются по условию в зависимости от опций, установленных " "в порте, обычный способ обработки — это добавление префикса `%%OPT%%` для " "строк в [.filename]#pkg-plist#, которые нужны при включении опции, или " "`%%NO_OPT%%`, когда опция отключена, а также добавление `OPTIONS_SUB=yes` в [" ".filename]#Makefile#. Подробнее см. " "crossref:makefiles[options_sub,`OPTIONS_SUB`]." #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:78 msgid "" "For instance, if there are files that are only installed when the `X11` " "option is enabled, and [.filename]#Makefile# has:" msgstr "" "Например, если есть файлы, которые устанавливаются только при включении " "опции `X11`, и в [.filename]#Makefile# указано:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:83 #, no-wrap msgid "" "OPTIONS_DEFINE=\tX11\n" "OPTIONS_SUB=\tyes\n" msgstr "" "OPTIONS_DEFINE=\tX11\n" "OPTIONS_SUB=\tyes\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:86 msgid "" "In [.filename]#pkg-plist#, put `%%X11%%` in front of the lines only being " "installed when the option is enabled, like this :" msgstr "" "В [.filename]#pkg-plist# укажите `%%X11%%` перед строками, которые " "устанавливаются только при включении опции, например:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:90 #, no-wrap msgid "%%X11%%bin/foo-gui\n" msgstr "%%X11%%bin/foo-gui\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:95 msgid "" "This substitution will be done between the `pre-install` and `do-install` " "targets, by reading from [.filename]#PLIST# and writing to " "[.filename]#TMPPLIST# (default: [.filename]#WRKDIR/.PLIST.mktmp#). So if " "the port builds [.filename]#PLIST# on the fly, do so in or before `pre-" "install`. Also, if the port needs to edit the resulting file, do so in " "`post-install` to a file named [.filename]#TMPPLIST#." msgstr "" "Эта подстановка будет сделана между выполнением целей `pre-install` и `do-" "install`, посредством чтения файла [.filename]#PLIST# и записью в файл [." "filename]#TMPPLIST# (по умолчанию это файл [.filename]#WRKDIR/.PLIST.mktmp#)" ". Так что если ваш порт строит [.filename]#PLIST# на лету, делайте это во " "время или до выполнения цели `pre-install`. Кроме того, если вашему порту " "требуется отредактировать получающийся файл, делайте это в цели `post-" "install` изменением файла [.filename]#TMPPLIST#." #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:101 msgid "" "Another way of modifying a port's packing list is based on setting the " "variables `PLIST_FILES` and `PLIST_DIRS`. The value of each variable is " "regarded as a list of pathnames to write to [.filename]#TMPPLIST# along with " "[.filename]#PLIST# contents. While names listed in `PLIST_FILES` and " "`PLIST_DIRS` are subject to `%%_VAR_%%` substitution as described above, it " "is better to use the `${_VAR_}` directly. Except for that, names from " "`PLIST_FILES` will appear in the final packing list unchanged, while `@dir` " "will be prepended to names from `PLIST_DIRS`. To take effect, `PLIST_FILES` " "and `PLIST_DIRS` must be set before [.filename]#TMPPLIST# is written, that " "is, in `pre-install` or earlier." msgstr "" "Ещё один способ изменения списка упаковки порта основан на установке " "переменных `PLIST_FILES` и `PLIST_DIRS`. Значение каждой переменной " "рассматривается как список путей для записи в [.filename]#TMPPLIST# вместе с " "содержимым [.filename]#PLIST#. Хотя имена, перечисленные в `PLIST_FILES` и " "`PLIST_DIRS`, подлежат замене `%%_VAR_%%`, как описано выше, лучше " "использовать `${_VAR_}` напрямую. За исключением этого, имена из " "`PLIST_FILES` появятся в итоговом списке упаковки без изменений, тогда как к " "именам из `PLIST_DIRS` будет добавлен префикс `@dir`. Чтобы вступить в силу, " "`PLIST_FILES` и `PLIST_DIRS` должны быть установлены до записи [." "filename]#TMPPLIST#, то есть в `pre-install` или ранее." #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:105 msgid "" "From time to time, using `OPTIONS_SUB` is not enough. In those cases, " "adding a specific `_TAG_` to `PLIST_SUB` inside the [.filename]#Makefile# " "with a special value of `@comment`, makes package tools to ignore the line. " "For instance, if some files are only installed when the `X11` option is on " "and the architecture is `i386`:" msgstr "" "Время от времени использования `OPTIONS_SUB` недостаточно. В таких случаях " "добавление специфичного `_TAG_` в `PLIST_SUB` внутри [.filename]#Makefile# " "со специальным значением `@comment` заставляет инструменты пакетирования " "игнорировать строку. Например, если некоторые файлы устанавливаются только " "при включённой опции `X11` и архитектуре `i386`:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:109 #, no-wrap msgid ".include \n" msgstr ".include \n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:115 #, no-wrap msgid "" ".if ${PORT_OPTIONS:MX11} && ${ARCH} == \"i386\"\n" "PLIST_SUB+=\tX11I386=\"\"\n" ".else\n" "PLIST_SUB+=\tX11I386=\"@comment \"\n" ".endif\n" msgstr "" ".if ${PORT_OPTIONS:MX11} && ${ARCH} == \"i386\"\n" "PLIST_SUB+=\tX11I386=\"\"\n" ".else\n" "PLIST_SUB+=\tX11I386=\"@comment \"\n" ".endif\n" #. type: Title == #: documentation/content/en/books/porters-handbook/plist/_index.adoc:118 #, no-wrap msgid "Empty Directories" msgstr "Пустые каталоги" #. type: Title === #: documentation/content/en/books/porters-handbook/plist/_index.adoc:121 #, no-wrap msgid "Cleaning Up Empty Directories" msgstr "Очистка пустых каталогов" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:127 msgid "" "When being de-installed, a port has to remove empty directories it created. " "Most of these directories are removed automatically by man:pkg[8], but for " "directories created outside of [.filename]#${PREFIX}#, or empty directories, " "some more work needs to be done. This is usually accomplished by adding " "`@dir` lines for those directories. Subdirectories must be deleted before " "deleting parent directories." msgstr "" "При удалении порт должен удалить пустые каталоги, которые он создал. " "Большинство этих каталогов автоматически удаляются с помощью man:pkg[8], но " "для каталогов, созданных вне [.filename]#${PREFIX}#, или пустых каталогов " "требуется дополнительная работа. Обычно это делается добавлением строк `@dir`" " для таких каталогов. Подкаталоги должны быть удалены до удаления " "родительских каталогов." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:133 #, no-wrap msgid "" "[...]\n" "@dir /var/games/oneko/saved-games\n" "@dir /var/games/oneko\n" msgstr "" "[...]\n" "@dir /var/games/oneko/saved-games\n" "@dir /var/games/oneko\n" #. type: Title === #: documentation/content/en/books/porters-handbook/plist/_index.adoc:136 #, no-wrap msgid "Creating Empty Directories" msgstr "Создание пустых каталогов" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:141 msgid "" "Empty directories created during port installation need special attention. " "They must be present when the package is created. If they are not created " "by the port code, create them in the [.filename]#Makefile#:" msgstr "" "Пустые каталоги, созданные во время установки порта, требуют особого " "внимания. Они должны присутствовать при создании пакета. Если они не созданы " "кодом порта, создайте их в [.filename]#Makefile#:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:146 #, no-wrap msgid "" "post-install:\n" "\t${MKDIR} ${STAGEDIR}${PREFIX}/some/directory\n" msgstr "" "post-install:\n" "\t${MKDIR} ${STAGEDIR}${PREFIX}/some/directory\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:150 msgid "" "Add the directory to [.filename]#pkg-plist# like any other. For example:" msgstr "" "Добавьте каталог в [.filename]#pkg-plist# так же, как и любой другой. " "Например:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:154 #, no-wrap msgid "@dir some/directory\n" msgstr "@dir some/directory\n" #. type: Title == #: documentation/content/en/books/porters-handbook/plist/_index.adoc:157 #, no-wrap msgid "Configuration Files" msgstr "Файлы конфигурации" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:161 msgid "" "If the port installs configuration files to [.filename]#PREFIX/etc# (or " "elsewhere) do _not_ list them in [.filename]#pkg-plist#. That will cause " "`pkg delete` to remove files that have been carefully edited by the user, " "and a re-installation will wipe them out." msgstr "" "Если порт устанавливает файлы конфигурации в [.filename]#PREFIX/etc# (или в " "другое место), _не_ указывайте их в [.filename]#pkg-plist#. Это приведёт к " "тому, что `pkg delete` удалит файлы, которые были тщательно отредактированы " "пользователем, а повторная установка перезапишет их." #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:165 msgid "" "Instead, install sample files with a [.filename]#filename.sample# " "extension. The `@sample` macro automates this, see crossref:plist[plist-" "keywords-sample, Expanding Package List with Keywords] for what it does " "exactly. For each sample file, add a line to [.filename]#pkg-plist#:" msgstr "" "Вместо этого устанавливайте образцы файлов с расширением [.filename]#filename" ".sample#. Макрос `@sample` автоматизирует этот процесс; подробности его " "работы см. в разделе crossref:plist[plist-keywords-sample, Расширение списка " "пакетов с помощью ключевых слов]. Для каждого образца файла добавьте строку " "в [.filename]#pkg-plist#:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:169 #, no-wrap msgid "@sample etc/orbit.conf.sample\n" msgstr "@sample etc/orbit.conf.sample\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:173 msgid "" "If there is a very good reason not to install a working configuration file " "by default, only list the sample filename in [.filename]#pkg-plist#, without " "the `@sample` followed by a space part, and add a crossref:pkg-files[porting-" "message,message] pointing out that the user must copy and edit the file " "before the software will work." msgstr "" "Если существует очень веская причина не устанавливать рабочий файл " "конфигурации по умолчанию, укажите только имя примера файла в [.filename" "]#pkg-plist#, без части `@sample` с последующим пробелом, и добавьте crossref" ":pkg-files[porting-message,сообщение], указывающее, что пользователь должен " "скопировать и отредактировать файл перед тем, как программа заработает." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:178 msgid "" "When a port installs its configuration in a subdirectory of [.filename]#$" "{PREFIX}/etc#, use `ETCDIR`, which defaults to `${PREFIX}/etc/${PORTNAME}`, " "it can be overridden in the ports [.filename]#Makefile# if there is a " "convention for the port to use some other directory. The `%%ETCDIR%%` macro " "will be used in its stead in [.filename]#pkg-plist#." msgstr "" "Когда порт устанавливает свою конфигурацию в подкаталоге [." "filename]#${PREFIX}/etc#, используйте `ETCDIR`, который по умолчанию равен " "`${PREFIX}/etc/${PORTNAME}`. Это значение может быть переопределено в [." "filename]#Makefile# порта, если для порта принято использовать другой " "каталог. Макрос `%%ETCDIR%%` будет использоваться вместо этого в [.filename" "]#pkg-plist#." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:184 msgid "" "The sample configuration files should always have the [.filename]#.sample# " "suffix. If for some historical reason using the standard suffix is not " "possible, or if the sample files come from some other directory, use this " "construct:" msgstr "" "Примеры конфигурационных файлов всегда должны иметь суффикс [.filename]#." "sample#. Если по каким-то историческим причинам использование стандартного " "суффикса невозможно, или если примеры файлов взяты из другого каталога, " "используйте эту конструкцию:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:188 #, no-wrap msgid "@sample etc/orbit.conf-dist etc/orbit.conf\n" msgstr "@sample etc/orbit.conf-dist etc/orbit.conf\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:191 msgid "or" msgstr "или" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:195 #, no-wrap msgid "@sample %%EXAMPLESDIR%%/orbit.conf etc/orbit.conf\n" msgstr "@sample %%EXAMPLESDIR%%/orbit.conf etc/orbit.conf\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:198 msgid "The format is `@sample _sample-file actual-config-file_`." msgstr "Формат: `@sample _файл-образец фактический-конфигурационный-файл_`." #. type: Title == #: documentation/content/en/books/porters-handbook/plist/_index.adoc:201 #, no-wrap msgid "Dynamic Versus Static Package List" msgstr "Динамический или статический список упаковки" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:205 msgid "" "A _static package list_ is a package list which is available in the Ports " "Collection either as [.filename]#pkg-plist# (with or without variable " "substitution), or embedded into the [.filename]#Makefile# via `PLIST_FILES` " "and `PLIST_DIRS`. Even if the contents are auto-generated by a tool or a " "target in the Makefile _before_ the inclusion into the Ports Collection by a " "committer (for example, using `make makeplist`), this is still considered a " "static list, since it is possible to examine it without having to download " "or compile the distfile." msgstr "" "_Статический список упаковки_ — это список упаковки, который доступен в " "Коллекции Портов или как файл [.filename]#pkg-plist# (с подстановкой " "переменных или без неё), или как встроенный в [.filename]#Makefile# через " "`PLIST_FILES` и `PLIST_DIRS`. Даже если содержимое было автоматически " "сгенерировано инструментом или целью в Makefile _до_ включения в Коллекцию " "портов коммиттером (например, с использованием `make makeplist`), такой " "список всё равно считается статическим, поскольку его можно посмотреть без " "необходимости загрузки или компиляции distfile." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:208 msgid "" "A _dynamic package list_ is a package list which is generated at the time " "the port is compiled based upon the files and directories which are " "installed. It is not possible to examine it before the source code of the " "ported application is downloaded and compiled, or after running a `make " "clean`." msgstr "" "_Динамический список упаковки_ — это список упаковки, который генерируется " "во время компиляции порта на основе установленных файлов и каталогов. " "Невозможно изучить его до загрузки и компиляции исходного кода " "портированного приложения или после выполнения команды `make clean`." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:212 msgid "" "While the use of dynamic package lists is not forbidden, maintainers should " "use static package lists wherever possible, as it enables users to " "man:grep[1] through available ports to discover, for example, which port " "installs a certain file. Dynamic lists should be primarily used for complex " "ports where the package list changes drastically based upon optional " "features of the port (and thus maintaining a static package list is " "infeasible), or ports which change the package list based upon the version " "of dependent software used. For example, ports which generate docs with " "Javadoc." msgstr "" "Хотя использование динамических списков упаковки не запрещено, " "сопровождающие должны использовать статические списки упаковки везде, где " "это возможно, поскольку это позволяет пользователям выполнять man:grep[1] по " "доступным портам для обнаружения, например, какой порт устанавливает " "определённый файл. Динамические списки должны быть использованы в основном " "для сложных портов, для которых изменения в списке упаковки кардинальным " "образом основаны на возможностях порта, настраиваемых параметрами, (и, таким " "образом, делая сопровождение статических списков упаковки невозможным), или " "портов, которые изменяют список упаковки на основе версии используемого им " "программного обеспечения (например, порты, которые порождают документы при " "помощи Javadoc)." #. type: Title == #: documentation/content/en/books/porters-handbook/plist/_index.adoc:214 #, no-wrap msgid "Automated Package List Creation" msgstr "Автоматическое создание списка упаковки" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:219 msgid "" "First, make sure the port is almost complete, with only [.filename]#pkg-" "plist# missing. Running `make makeplist` will show an example for " "[.filename]#pkg-plist#. The output of `makeplist` must be double checked " "for correctness as it tries to automatically guess a few things, and can get " "it wrong." msgstr "" "Сначала убедитесь, что порт почти готов, и отсутствует только файл [.filename" "]#pkg-plist#. Запуск команды `make makeplist` покажет пример для файла [." "filename]#pkg-plist#. Вывод `makeplist` необходимо дважды перепроверять на " "корректность, так как он пытается автоматически угадать некоторые вещи и " "может ошибаться." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:224 msgid "" "User configuration files should be installed as " "[.filename]#filename.sample#, as it is described in crossref:plist[plist-" "config, Configuration Files]. [.filename]#info/dir# must not be listed and " "appropriate [.filename]#install-info# lines must be added as noted in the " "crossref:makefiles[makefile-info,info files] section. Any libraries " "installed by the port must be listed as specified in the " "crossref:special[porting-shlibs,shared libraries] section." msgstr "" "Файлы конфигурации пользователя должны устанавливаться как [." "filename]#filename.sample#, как описано в разделе crossref:plist[plist-" "config,Файлы конфигурации]. [.filename]#info/dir# не должен быть указан, а " "соответствующие строки [.filename]#install-info# должны быть добавлены, как " "указано в разделе crossref:makefiles[makefile-info,info-файлы]. Любые " "библиотеки, устанавливаемые портом, должны быть перечислены, как указано в " "разделе crossref:special[porting-shlibs,общие библиотеки]." #. type: Title === #: documentation/content/en/books/porters-handbook/plist/_index.adoc:226 #, no-wrap msgid "Expanding `PLIST_SUB` with Regular Expressions" msgstr "Расширение `PLIST_SUB` с помощью регулярных выражений" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:230 msgid "" "Strings to be replaced sometimes need to be very specific to avoid undesired " "replacements. This is a common problem with shorter values." msgstr "" "Строки, которые нужно заменить, иногда должны быть очень конкретными, чтобы " "избежать нежелательных замен. Это распространённая проблема с короткими " "значениями." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:232 msgid "" "To address this problem, for each `_PLACEHOLDER_=_value_`, a " "`PLACEHOLDER_regex=regex` can be set, with the `_regex_` part matching " "_value_ more precisely." msgstr "" "Для решения этой проблемы для каждого `_PLACEHOLDER_=_значение_` можно " "задать `PLACEHOLDER_regex=регулярное_выражение`, где `_регулярное_выражение_`" " более точно соответствует _значению_." #. type: Block title #: documentation/content/en/books/porters-handbook/plist/_index.adoc:234 #, no-wrap msgid "Using PLIST_SUB with Regular Expressions" msgstr "Использование PLIST_SUB с регулярными выражениями" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:242 msgid "" "Perl ports can install architecture dependent files in a specific tree. On " "FreeBSD to ease porting, this tree is called `mach`. For example, a port " "that installs a file whose path contains `mach` could have that part of the " "path string replaced with the wrong values. Consider this " "[.filename]#Makefile#:" msgstr "" "Порты Perl могут устанавливать архитектурно-зависимые файлы в специальное " "дерево. В FreeBSD для упрощения портирования это дерево называется `mach`. " "Например, порт, который устанавливает файл, чей путь содержит `mach`, может " "иметь эту часть строки пути заменённой неправильными значениями. Рассмотрим " "этот [.filename]#Makefile#:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:250 #, no-wrap msgid "" "PORTNAME=\tMachine-Build\n" "DISTVERSION=\t1\n" "CATEGORIES=\tdevel perl5\n" "MASTER_SITES=\tCPAN\n" "PKGNAMEPREFIX=\tp5-\n" msgstr "" "PORTNAME=\tMachine-Build\n" "DISTVERSION=\t1\n" "CATEGORIES=\tdevel perl5\n" "MASTER_SITES=\tCPAN\n" "PKGNAMEPREFIX=\tp5-\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:254 #, no-wrap msgid "" "MAINTAINER=\tperl@FreeBSD.org\n" "COMMENT=\tBuilding machine\n" "WWW=\t\thttps://search.cpan.org/dist/Machine-Build\n" msgstr "" "MAINTAINER=\tperl@FreeBSD.org\n" "COMMENT=\tBuilding machine\n" "WWW=\t\thttps://search.cpan.org/dist/Machine-Build\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:257 #, no-wrap msgid "" "USES=\t\tperl5\n" "USE_PERL5=\tconfigure\n" msgstr "" "USES=\t\tperl5\n" "USE_PERL5=\tconfigure\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:259 #, no-wrap msgid "PLIST_SUB=\tPERL_ARCH=mach\n" msgstr "PLIST_SUB=\tPERL_ARCH=mach\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:262 msgid "The files installed by the port are:" msgstr "Файлы, установленные портом:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:270 #, no-wrap msgid "" "/usr/local/bin/machine-build\n" "/usr/local/lib/perl5/site_perl/man/man1/machine-build.1.gz\n" "/usr/local/lib/perl5/site_perl/man/man3/Machine::Build.3.gz\n" "/usr/local/lib/perl5/site_perl/Machine/Build.pm\n" "/usr/local/lib/perl5/site_perl/mach/5.20/Machine/Build/Build.so\n" msgstr "" "/usr/local/bin/machine-build\n" "/usr/local/lib/perl5/site_perl/man/man1/machine-build.1.gz\n" "/usr/local/lib/perl5/site_perl/man/man3/Machine::Build.3.gz\n" "/usr/local/lib/perl5/site_perl/Machine/Build.pm\n" "/usr/local/lib/perl5/site_perl/mach/5.20/Machine/Build/Build.so\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:273 msgid "Running `make makeplist` wrongly generates:" msgstr "Запуск `make makeplist` ошибочно создает:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:281 #, no-wrap msgid "" "bin/%%PERL_ARCH%%ine-build\n" "%%PERL5_MAN1%%/%%PERL_ARCH%%ine-build.1.gz\n" "%%PERL5_MAN3%%/Machine::Build.3.gz\n" "%%SITE_PERL%%/Machine/Build.pm\n" "%%SITE_PERL%%/%%PERL_ARCH%%/%%PERL_VER%%/Machine/Build/Build.so\n" msgstr "" "bin/%%PERL_ARCH%%ine-build\n" "%%PERL5_MAN1%%/%%PERL_ARCH%%ine-build.1.gz\n" "%%PERL5_MAN3%%/Machine::Build.3.gz\n" "%%SITE_PERL%%/Machine/Build.pm\n" "%%SITE_PERL%%/%%PERL_ARCH%%/%%PERL_VER%%/Machine/Build/Build.so\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:284 msgid "Change the `PLIST_SUB` line from the [.filename]#Makefile# to:" msgstr "Измените строку `PLIST_SUB` в [.filename]#Makefile# на:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:289 #, no-wrap msgid "" "PLIST_SUB=\tPERL_ARCH=mach \\\n" "\t\tPERL_ARCH_regex=\\bmach\\b\n" msgstr "" "PLIST_SUB=\tPERL_ARCH=mach \\\n" "\t\tPERL_ARCH_regex=\\bmach\\b\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:292 msgid "Now `make makeplist` correctly generates:" msgstr "Теперь `make makeplist` правильно генерирует:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:300 #, no-wrap msgid "" "bin/machine-build\n" "%%PERL5_MAN1%%/machine-build.1.gz\n" "%%PERL5_MAN3%%/Machine::Build.3.gz\n" "%%SITE_PERL%%/Machine/Build.pm\n" "%%SITE_PERL%%/%%PERL_ARCH%%/%%PERL_VER%%/Machine/Build/Build.so\n" msgstr "" "bin/machine-build\n" "%%PERL5_MAN1%%/machine-build.1.gz\n" "%%PERL5_MAN3%%/Machine::Build.3.gz\n" "%%SITE_PERL%%/Machine/Build.pm\n" "%%SITE_PERL%%/%%PERL_ARCH%%/%%PERL_VER%%/Machine/Build/Build.so\n" #. type: Title == #: documentation/content/en/books/porters-handbook/plist/_index.adoc:305 #, no-wrap msgid "Expanding Package List with Keywords" msgstr "Расширение списка пакетов, используя ключевые слова" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:311 msgid "" "All keywords can also take optional arguments in parentheses. The arguments " "are owner, group, and mode. This argument is used on the file or directory " "referenced. To change the owner, group, and mode of a configuration file, " "use:" msgstr "" "Все ключевые слова также могут принимать необязательные аргументы в скобках. " "Аргументами являются владелец, группа и режим доступа. Этот аргумент " "применяется к файлу или каталогу, на который ссылаются. Чтобы изменить " "владельца, группу и режим доступа конфигурационного файла, используйте:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:315 #, no-wrap msgid "@sample(games,games,640) etc/config.sample\n" msgstr "@sample(games,games,640) etc/config.sample\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:319 msgid "" "The arguments are optional. If only the group and mode need to be changed, " "use:" msgstr "" "Аргументы являются необязательными. Если необходимо изменить только группу и " "режим, используйте:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:323 #, no-wrap msgid "@sample(,games,660) etc/config.sample\n" msgstr "@sample(,games,660) etc/config.sample\n" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:329 msgid "" "If a keyword is used on an crossref:makefiles[makefile-options,optional] " "entry, it must to be added after the helper:" msgstr "" "Если ключевое слово используется в crossref:makefiles[makefile-" "options,необязательной записи], оно должно быть добавлено после помощника:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:333 #, no-wrap msgid "%%FOO%%@sample etc/orbit.conf.sample\n" msgstr "%%FOO%%@sample etc/orbit.conf.sample\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:337 msgid "" "This is because the options plist helpers are used to comment out the line, " "so they need to be put first. See " "crossref:makefiles[options_sub,`OPTIONS_SUB`] for more information." msgstr "" "Это происходит потому, что вспомогательные функции plist для опций " "используются для закомментирования строки, поэтому они должны быть указаны " "первыми. Дополнительную информацию см. в " "crossref:makefiles[options_sub,`OPTIONS_SUB`]." #. type: Title === #: documentation/content/en/books/porters-handbook/plist/_index.adoc:340 #, no-wrap msgid "`@desktop-file-utils`" msgstr "`@desktop-file-utils`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:344 msgid "" "Will run `update-desktop-database -q` after installation and " "deinstallation. _Never_ use directly, add crossref:uses[uses-desktop-file-" "utils,`USES=desktop-file-utils`] to the [.filename]#Makefile#." msgstr "" "Будет выполнять `update-desktop-database -q` после установки и удаления. " "_Никогда_ не используйте напрямую, добавьте crossref:uses[uses-desktop-file-" "utils,`USES=desktop-file-utils`] в [.filename]#Makefile#." #. type: Title === #: documentation/content/en/books/porters-handbook/plist/_index.adoc:346 #, no-wrap msgid "`@fc` _directory_" msgstr "`@fc` _каталог_" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:349 msgid "" "Add a `@dir` entry for the directory passed as an argument, and run `fc-" "cache -fs` on that directory after installation and deinstallation." msgstr "" "Добавить запись `@dir` для каталога, переданного в качестве аргумента, и " "выполнить `fc-cache -fs` для этого каталога после установки и удаления." #. type: Title === #: documentation/content/en/books/porters-handbook/plist/_index.adoc:351 #, no-wrap msgid "`@fontsdir` _directory_" msgstr "`@fontsdir` _каталог_" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:355 msgid "" "Add a `@dir` entry for the directory passed as an argument, and run " "`mkfontscale` and `mkfontdir` on that directory after installation and " "deinstallation. Additionally, on deinstallation, it removes the " "[.filename]#fonts.scale# and [.filename]#fonts.dir# cache files if they are " "empty." msgstr "" "Добавить запись `@dir` для каталога, переданного в качестве аргумента, и " "запустить `mkfontscale` и `mkfontdir` в этом каталоге после установки и " "удаления. Кроме того, при удалении удаляются кэш-файлы [.filename]#fonts." "scale# и [.filename]#fonts.dir#, если они пусты." #. type: Title === #: documentation/content/en/books/porters-handbook/plist/_index.adoc:357 #, no-wrap msgid "`@info` _file_" msgstr "`@info` _файл_" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:363 msgid "" "Add the file passed as argument to the plist, and updates the info document " "index on installation and deinstallation. Additionally, it removes the " "index if empty on deinstallation. This should never be used manually, but " "always through `INFO`. See crossref:makefiles[makefile-info,Info Files] for " "more information." msgstr "" "Добавляет файл, переданный в качестве аргумента, в plist и обновляет индекс " "документа info при установке и удалении. Кроме того, удаляет индекс, если он " "пуст, при удалении. Это никогда не следует использовать вручную, а только " "через `INFO`. Подробнее см. в crossref:makefiles[makefile-info,Файлы Info]." #. type: Title === #: documentation/content/en/books/porters-handbook/plist/_index.adoc:365 #, no-wrap msgid "`@kld` _directory_" msgstr "`@kld` _каталог_" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:369 msgid "" "Runs `kldxref` on the directory on installation and deinstallation. " "Additionally, on deinstallation, it will remove the directory if empty." msgstr "" "Выполняет `kldxref` для каталога при установке и удалении. Дополнительно при " "удалении каталог будет удалён, если он пуст." #. type: Title === #: documentation/content/en/books/porters-handbook/plist/_index.adoc:371 #, no-wrap msgid "`@rmtry` _file_" msgstr "`@rmtry` _файл_" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:374 msgid "" "Will remove the file on deinstallation, and not give an error if the file is " "not there." msgstr "Удаляет файл при удалении и не выдает ошибку, если файл отсутствует." #. type: Title === #: documentation/content/en/books/porters-handbook/plist/_index.adoc:376 #, no-wrap msgid "`@sample` _file_ [_file_]" msgstr "`@sample` _файл_ [_файл_]" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:380 msgid "" "This is used to handle installation of configuration files, through example " "files bundled with the package. The \"actual\", non-sample, file is either " "the second filename, if present, or the first filename without the " "[.filename]#.sample# extension." msgstr "" "Это используется для обработки установки файлов конфигурации, используя " "примеры файлов, поставляемых с пакетом. \"Реальный\" файл (не пример) — это " "либо второе имя файла, если оно присутствует, либо первое имя файла без " "расширения [.filename]#.sample#." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:385 msgid "" "This does three things. First, add the first file passed as argument, the " "sample file, to the plist. Then, on installation, if the actual file is not " "found, copy the sample file to the actual file. And finally, on " "deinstallation, remove the actual file if it has not been modified. See " "crossref:plist[plist-config, Configuration Files] for more information." msgstr "" "Это делает три вещи. Во-первых, добавляет первый переданный файл в качестве " "аргумента, образец файла, в plist. Затем, при установке, если фактический " "файл не найден, копирует образец файла в фактический файл. И наконец, при " "удалении, удаляет фактический файл, если он не был изменён. Дополнительную " "информацию см. в crossref:plist[plist-config, Файлы конфигурации]." #. type: Title === #: documentation/content/en/books/porters-handbook/plist/_index.adoc:387 #, no-wrap msgid "`@shared-mime-info` _directory_" msgstr "`@shared-mime-info` _каталог_" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:390 msgid "" "Runs `update-mime-database` on the directory on installation and " "deinstallation." msgstr "" "Выполняет `update-mime-database` для указанного каталога при установке и " "удалении." #. type: Title === #: documentation/content/en/books/porters-handbook/plist/_index.adoc:392 #, no-wrap msgid "`@shell` _file_" msgstr "`@shell` _файл_" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:395 msgid "Add the file passed as argument to the plist." msgstr "Добавить файл, переданный в качестве аргумента, в plist." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:398 msgid "" "On installation, add the full path to _file_ to [.filename]#/etc/shells#, " "while making sure it is not added twice. On deinstallation, remove it from " "[.filename]#/etc/shells#." msgstr "" "При установке добавить полный путь к _file_ в [.filename]#/etc/shells#, " "убедившись, что он не добавлен повторно. При удалении удалите его из [." "filename]#/etc/shells#." #. type: Title === #: documentation/content/en/books/porters-handbook/plist/_index.adoc:400 #, no-wrap msgid "`@terminfo`" msgstr "`@terminfo`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:404 msgid "" "Do not use by itself. If the port installs [.filename]#*.terminfo# files, " "add crossref:uses[uses-terminfo,`USES=terminfo`] to its " "[.filename]#Makefile#." msgstr "" "Не использовать самостоятельно. Если порт устанавливает файлы [.filename]#*." "terminfo#, добавьте crossref:uses[uses-terminfo,`USES=terminfo`] в его [." "filename]#Makefile#." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:406 msgid "" "On installation and deinstallation, if `tic` is present, refresh " "[.filename]#${PREFIX}/shared/misc/terminfo.db# from the " "[.filename]#*.terminfo# files in [.filename]#${PREFIX}/shared/misc#." msgstr "" "При установке и удалении, если присутствует `tic`, обновить [." "filename]#${PREFIX}/shared/misc/terminfo.db# из файлов [.filename]#*." "terminfo# в [.filename]#${PREFIX}/shared/misc#." #. type: Title === #: documentation/content/en/books/porters-handbook/plist/_index.adoc:408 #, no-wrap msgid "Base Keywords" msgstr "Основные ключевые слова" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:411 msgid "" "There are a few keywords that are hardcoded, and documented in man:pkg-" "create[8]. For the sake of completeness, they are also documented here." msgstr "" "Есть несколько ключевых слов, которые жёстко закодированы и документированы " "в man:pkg-create[8]. Для полноты изложения они также документированы здесь." #. type: Title ==== #: documentation/content/en/books/porters-handbook/plist/_index.adoc:413 #, no-wrap msgid "`@` [_file_]" msgstr "`@` [_файл_]" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:417 msgid "" "The empty keyword is a placeholder to use when the file's owner, group, or " "mode need to be changed. For example, to set the group of the file to " "`games` and add the setgid bit, add:" msgstr "" "Ключевое слово `empty` является заполнителем, используемым, когда необходимо " "изменить владельца, группу или права доступа к файлу. Например, чтобы " "установить группу файла в `games` и добавить бит setgid, добавьте:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:421 #, no-wrap msgid "@(,games,2755) sbin/daemon\n" msgstr "@(,games,2755) sbin/daemon\n" #. type: Title ==== #: documentation/content/en/books/porters-handbook/plist/_index.adoc:424 #, no-wrap msgid "`@preexec` _command_, `@postexec` _command_, `@preunexec` _command_, `@postunexec` _command_" msgstr "" "`@preexec` _команда_, `@postexec` _команда_, `@preunexec` _команда_, " "`@postunexec` _команда_" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:427 msgid "" "Execute _command_ as part of the package installation or deinstallation " "process." msgstr "Выполнить _команду_ как часть процесса установки или удаления пакета." #. type: Labeled list #: documentation/content/en/books/porters-handbook/plist/_index.adoc:428 #, no-wrap msgid "`@preexec` _command_" msgstr "`@preexec` _команда_" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:430 msgid "Execute _command_ as part of the [.filename]#pre-install# scripts." msgstr "Выполнить _команду_ как часть скриптов [.filename]#pre-install#." #. type: Labeled list #: documentation/content/en/books/porters-handbook/plist/_index.adoc:431 #, no-wrap msgid "`@postexec` _command_" msgstr "`@postexec` _команда_" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:433 msgid "Execute _command_ as part of the [.filename]#post-install# scripts." msgstr "Выполнить _команду_ как часть скриптов [.filename]#post-install#." #. type: Labeled list #: documentation/content/en/books/porters-handbook/plist/_index.adoc:434 #, no-wrap msgid "`@preunexec` _command_" msgstr "`@preunexec` _команда_" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:436 msgid "Execute _command_ as part of the [.filename]#pre-deinstall# scripts." msgstr "Выполнить _команду_ как часть скриптов [.filename]#pre-deinstall#." #. type: Labeled list #: documentation/content/en/books/porters-handbook/plist/_index.adoc:437 #, no-wrap msgid "`@postunexec` _command_" msgstr "`@postunexec` _команда_" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:439 msgid "Execute _command_ as part of the [.filename]#post-deinstall# scripts." msgstr "Выполнить _команду_ как часть скриптов [.filename]#post-deinstall#." #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:442 msgid "" "If _command_ contains any of these sequences somewhere in it, they are " "expanded inline. For these examples, assume that `@cwd` is set to " "[.filename]#/usr/local# and the last extracted file was [.filename]#bin/" "emacs#." msgstr "" "Если в _команде_ содержится любая из этих последовательностей, они " "раскрываются непосредственно. Для следующих примеров предположим, что `@cwd` " "установлен в [.filename]#/usr/local#, а последним извлечённым файлом был [." "filename]#bin/emacs#." #. type: Labeled list #: documentation/content/en/books/porters-handbook/plist/_index.adoc:443 #, no-wrap msgid "`%F`" msgstr "`%F`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:446 msgid "" "Expand to the last filename extracted (as specified). In the example case " "[.filename]#bin/emacs#." msgstr "" "Раскрывается до последнего извлеченного имени файла (как указано). В примере " "[.filename]#bin/emacs#." #. type: Labeled list #: documentation/content/en/books/porters-handbook/plist/_index.adoc:447 #, no-wrap msgid "`%D`" msgstr "`%D`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:450 msgid "" "Expand to the current directory prefix, as set with `@cwd`. In the example " "case [.filename]#/usr/local#." msgstr "" "Раскрыть до текущего префикса каталога, установленного с помощью `@cwd`. В " "этом примере [.filename]#/usr/local#." #. type: Labeled list #: documentation/content/en/books/porters-handbook/plist/_index.adoc:451 #, no-wrap msgid "`%B`" msgstr "`%B`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:454 msgid "" "Expand to the basename of the fully qualified filename, that is, the current " "directory prefix plus the last filespec, minus the trailing filename. In " "the example case, that would be [.filename]#/usr/local/bin#." msgstr "" "Раскрыть до базового имени полного имени файла, то есть префикс текущего " "каталога плюс последняя спецификация файла, за вычетом имени файла в конце " "спецификации. В данном примере это будет [.filename]#/usr/local/bin#." #. type: Labeled list #: documentation/content/en/books/porters-handbook/plist/_index.adoc:455 #, no-wrap msgid "`%f`" msgstr "`%f`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:458 msgid "" "Expand to the filename part of the fully qualified name, or the converse of " "`%B`. In the example case, [.filename]#emacs#." msgstr "" "Раскрывается до части имени файла в полном квалифицированном имени, или " "противоположный случай для `%B`. В примере, [.filename]#emacs#." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:463 msgid "" "These keywords are here to help you set up the package so that it is as " "ready to use as possible. They _must not_ be abused to start services, stop " "services, or run any other commands that will modify the currently running " "system." msgstr "" "Эти ключевые слова предназначены для помощи в настройке пакета, чтобы он был " "максимально готов к использованию. Они _не должны_ использоваться для " "запуска служб, остановки служб или выполнения любых других команд, которые " "изменяют текущую работающую систему." #. type: Title ==== #: documentation/content/en/books/porters-handbook/plist/_index.adoc:466 #, no-wrap msgid "`@mode` _mode_" msgstr "`@mode` _режим_" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:471 msgid "" "Set default permission for all subsequently extracted files to _mode_. " "Format is the same as that used by man:chmod[1]. Use without an arg to set " "back to default permissions (mode of the file while being packed)." msgstr "" "Установить разрешения по умолчанию для всех последующих извлекаемых файлов в " "_режим_. Формат такой же, как используется в man:chmod[1]. Использование без " "аргумента вернёт разрешения по умолчанию (режим файла при упаковке)." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:476 msgid "" "This must be a numeric mode, like `644`, `4755`, or `600`. It cannot be a " "relative mode like `u+s`." msgstr "" "Это должен быть числовой режим, например `644`, `4755` или `600`. Нельзя " "использовать относительный режим, например `u+s`." #. type: Title ==== #: documentation/content/en/books/porters-handbook/plist/_index.adoc:479 #, no-wrap msgid "`@owner` _user_" msgstr "`@owner` _пользователь_" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:483 msgid "" "Set default ownership for all subsequent files to _user_. Use without an " "argument to set back to default ownership (`root`)." msgstr "" "Установить владельца по умолчанию для всех последующих файлов в " "_пользователь_. Использование без аргумента вернёт владельца по умолчанию " "(`root`)." #. type: Title ==== #: documentation/content/en/books/porters-handbook/plist/_index.adoc:485 #, no-wrap msgid "`@group` _group_" msgstr "`@group` _группа_" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:489 msgid "" "Set default group ownership for all subsequent files to _group_. Use " "without an arg to set back to default group ownership (`wheel`)." msgstr "" "Установить группу-владельца по умолчанию для всех последующих файлов в " "_группу_. Использование без аргумента вернёт группу-владельца по умолчанию " "(`wheel`)." #. type: Title ==== #: documentation/content/en/books/porters-handbook/plist/_index.adoc:491 #, no-wrap msgid "`@comment` _string_" msgstr "`@comment` _строка_" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:494 msgid "This line is ignored when packing." msgstr "Эта строка игнорируется при упаковке." #. type: Title ==== #: documentation/content/en/books/porters-handbook/plist/_index.adoc:496 #, no-wrap msgid "`@dir` _directory_" msgstr "`@dir` _каталог_" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:502 msgid "" "Declare directory name. By default, directories created under `PREFIX` by a " "package installation are automatically removed. Use this when an empty " "directory under `PREFIX` needs to be created, or when the directory needs to " "have non default owner, group, or mode. Directories outside of `PREFIX` " "need to be registered. For example, [.filename]#/var/db/${PORTNAME}# needs " "to have a `@dir` entry whereas [.filename]#${PREFIX}/shared/${PORTNAME}# " "does not if it contains files or uses the default owner, group, and mode." msgstr "" "Объявить имя каталога. По умолчанию каталоги, созданные в `PREFIX` при " "установке пакета, автоматически удаляются. Используйте эту опцию, если " "необходимо создать пустой каталог в `PREFIX` или если каталогу требуется " "нестандартный владелец, группа или права. Каталоги за пределами `PREFIX` " "необходимо регистрировать. Например, [.filename]#/var/db/${PORTNAME}# " "требует записи `@dir`, тогда как [.filename]#${PREFIX}/shared/${PORTNAME}# — " "нет, если он содержит файлы или использует стандартные владельца, группу и " "права." #. type: Title ==== #: documentation/content/en/books/porters-handbook/plist/_index.adoc:504 #, no-wrap msgid "`@exec` _command_, `@unexec` _command_ (Deprecated)" msgstr "`@exec` _команда_, `@unexec` _команда_ (Устарело)" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:508 msgid "" "Execute _command_ as part of the installation or deinstallation process. " "Please use crossref:plist[plist-keywords-base-exec, `@preexec` _command_, " "`@postexec` _command_, `@preunexec` _command_, `@postunexec` _command_] " "instead." msgstr "" "Выполнить _команду_ как часть процесса установки или удаления. Рекомендуется " "использовать crossref:plist[plist-keywords-base-exec, `@preexec` _команда_, " "`@postexec` _команда_, `@preunexec` _команда_, `@postunexec` _команда_] " "вместо этого." #. type: Title ==== #: documentation/content/en/books/porters-handbook/plist/_index.adoc:510 #, no-wrap msgid "`@dirrm` _directory_ (Deprecated)" msgstr "`@dirrm` _каталог_ (Устарело)" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:514 msgid "" "Declare directory name to be deleted at deinstall time. By default, " "directories created under `PREFIX` by a package installation are deleted " "when the package is deinstalled." msgstr "" "Объявить имя каталога для удаления при деинсталляции. По умолчанию каталоги, " "созданные в `PREFIX` при установке пакета, удаляются при его деинсталляции." #. type: Title ==== #: documentation/content/en/books/porters-handbook/plist/_index.adoc:516 #, no-wrap msgid "`@dirrmtry` _directory_ (Deprecated)" msgstr "`@dirrmtry` _каталог_ (Устарело)" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:519 msgid "" "Declare directory name to be removed, as for `@dirrm`, but does not issue a " "warning if the directory cannot be removed." msgstr "" "Объявить имя каталога для удаления, аналогично `@dirrm`, но не выводить " "предупреждение, если каталог не может быть удален." #. type: Title === #: documentation/content/en/books/porters-handbook/plist/_index.adoc:521 #, no-wrap msgid "Creating New Keywords" msgstr "Создание новых ключевых слов" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:526 msgid "" "Package list files can be extended by keywords that are defined in the " "[.filename]#${PORTSDIR}/Keywords# directory. The settings for each keyword " "are stored in a UCL file named [.filename]#keyword.ucl#. The file must " "contain at least one of these sections:" msgstr "" "Файлы списка пакетов могут быть расширены ключевыми словами, которые " "определены в каталоге [.filename]#${PORTSDIR}/Keywords#. Настройки каждого " "ключевого слова хранятся в файле UCL с именем [.filename]#keyword.ucl#. Файл " "должен содержать как минимум один из следующих разделов:" #. type: Title ==== #: documentation/content/en/books/porters-handbook/plist/_index.adoc:528 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:537 #, no-wrap msgid "`attributes`" msgstr "`attributes`" #. type: Title ==== #: documentation/content/en/books/porters-handbook/plist/_index.adoc:529 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:550 #, no-wrap msgid "`action`" msgstr "`action`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:530 msgid "`pre-install`" msgstr "`pre-install`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:531 msgid "`post-install`" msgstr "`post-install`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:532 msgid "`pre-deinstall`" msgstr "`pre-deinstall`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:533 msgid "`post-deinstall`" msgstr "`post-deinstall`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:534 msgid "`pre-upgrade`" msgstr "`pre-upgrade`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:535 msgid "`post-upgrade`" msgstr "`post-upgrade`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:543 msgid "" "Changes the owner, group, or mode used by the keyword. Contains an " "associative array where the possible keys are `owner`, `group`, and `mode`. " "The values are, respectively, a user name, a group name, and a file mode. " "For example:" msgstr "" "Изменяет владельца, группу или режим доступа, используемые ключевым словом. " "Содержит ассоциативный массив, в котором возможными ключами являются `owner`" ", `group` и `mode`. Значениями являются, соответственно, имя пользователя, " "имя группы и режим доступа к файлу. Например:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:547 #, no-wrap msgid "attributes: { owner: \"games\", group: \"games\", mode: 0555 }\n" msgstr "attributes: { owner: \"games\", group: \"games\", mode: 0555 }\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:553 msgid "" "Defines what happens to the keyword's parameter. Contains an array where the " "possible values are:" msgstr "" "Определяет, что происходит с параметром ключевого слова. Содержит массив, " "где возможные значения:" #. type: Labeled list #: documentation/content/en/books/porters-handbook/plist/_index.adoc:554 #, no-wrap msgid "`setprefix`" msgstr "`setprefix`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:556 msgid "Set the prefix for the next plist entries." msgstr "Установите префикс для следующих записей в plist." #. type: Labeled list #: documentation/content/en/books/porters-handbook/plist/_index.adoc:557 #, no-wrap msgid "`dir`" msgstr "`dir`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:559 msgid "Register a directory to be created on install and removed on deinstall." msgstr "" "Зарегистрировать каталог для создания при установке и удаления при " "деинсталляции." #. type: Labeled list #: documentation/content/en/books/porters-handbook/plist/_index.adoc:560 #, no-wrap msgid "`dirrm`" msgstr "`dirrm`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:563 msgid "Register a directory to be deleted on deinstall. Deprecated." msgstr "Зарегистрировать каталог для удаления при деинсталляции. Устарело." #. type: Labeled list #: documentation/content/en/books/porters-handbook/plist/_index.adoc:564 #, no-wrap msgid "`dirrmtry`" msgstr "`dirrmtry`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:567 msgid "Register a directory to try and deleted on deinstall. Deprecated." msgstr "" "Зарегистрировать каталог для попытки удаления при деинсталляции. Устарело." #. type: Labeled list #: documentation/content/en/books/porters-handbook/plist/_index.adoc:568 #, no-wrap msgid "`file`" msgstr "`file`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:570 msgid "Register a file." msgstr "Зарегистрировать файл." #. type: Labeled list #: documentation/content/en/books/porters-handbook/plist/_index.adoc:571 #, no-wrap msgid "`setmode`" msgstr "`setmode`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:573 msgid "Set the mode for the next plist entries." msgstr "Установить режим для следующих записей plist." #. type: Labeled list #: documentation/content/en/books/porters-handbook/plist/_index.adoc:574 #, no-wrap msgid "`setowner`" msgstr "`setowner`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:576 msgid "Set the owner for the next plist entries." msgstr "Установить владельца для следующих записей plist." #. type: Labeled list #: documentation/content/en/books/porters-handbook/plist/_index.adoc:577 #, no-wrap msgid "`setgroup`" msgstr "`setgroup`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:579 msgid "Set the group for the next plist entries." msgstr "Установить группу для следующих записей в plist." #. type: Labeled list #: documentation/content/en/books/porters-handbook/plist/_index.adoc:580 #, no-wrap msgid "`comment`" msgstr "`comment`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:582 msgid "Does not do anything, equivalent to not entering an `action` section." msgstr "" "Не выполняет никаких действий, эквивалентно отсутствию раздела `action`." #. type: Labeled list #: documentation/content/en/books/porters-handbook/plist/_index.adoc:583 #, no-wrap msgid "`ignore_next`" msgstr "`ignore_next`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:585 msgid "Ignore the next entry in the plist." msgstr "Игнорировать следующую запись в plist." #. type: Title ==== #: documentation/content/en/books/porters-handbook/plist/_index.adoc:587 #, no-wrap msgid "`arguments`" msgstr "`arguments`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:591 msgid "" "If set to `true`, adds argument handling, splitting the whole line, `%@`, " "into numbered arguments, `%1`, `%2`, and so on. For example, for this line:" msgstr "" "Если установлено значение `true`, добавляется обработка аргументов, разделяя " "всю строку, `%@`, на нумерованные аргументы, `%1`, `%2`, и так далее. " "Например, для такой строки:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:595 #, no-wrap msgid "@foo some.content other.content\n" msgstr "@foo some.content other.content\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:598 msgid "`%1` and `%2` will contain:" msgstr "`%1` и `%2` будут содержать:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:603 #, no-wrap msgid "" "some.content\n" "other.content\n" msgstr "" "some.content\n" "other.content\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:608 msgid "" "It also affects how the crossref:plist[plist-keywords-action,`action`] entry " "works. When there is more than one argument, the argument number must be " "specified. For example:" msgstr "" "Это также влияет на работу записи crossref:plist[plist-keywords-" "action,`action`]. Если аргументов больше одного, необходимо указать номер " "аргумента. Например:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:612 #, no-wrap msgid "actions: [file(1)]\n" msgstr "actions: [file(1)]\n" #. type: Title ==== #: documentation/content/en/books/porters-handbook/plist/_index.adoc:615 #, no-wrap msgid "`pre-install`, `post-install`, `pre-deinstall`, `post-deinstall`, `pre-upgrade`, `post-upgrade`" msgstr "" "`pre-install`, `post-install`, `pre-deinstall`, `post-deinstall`, `pre-" "upgrade`, `post-upgrade`" #. type: Plain text #: documentation/content/en/books/porters-handbook/plist/_index.adoc:620 msgid "" "These keywords contains a man:sh[1] script to be executed before or after " "installation, deinstallation, or upgrade of the package. In addition to the " "usual `@exec %_foo_` placeholders described in crossref:plist[plist-keywords-" "base-exec, `@preexec` _command_, `@postexec` _command_, `@preunexec` " "_command_, `@postunexec` _command_], there is a new one, `%@`, which " "represents the argument of the keyword." msgstr "" "Эти ключевые слова содержат man:sh[1] скрипт, который выполняется до или " "после установки, удаления или обновления пакета. В дополнение к обычным " "заполнителям `@exec %_foo_`, описанным в crossref:plist[plist-keywords-base-" "exec, `@preexec` _команда_, `@postexec` _команда_, `@preunexec` _команда_, " "`@postunexec` _команда_], существует новый заполнитель `%@`, который " "представляет аргумент ключевого слова." #. type: Title ==== #: documentation/content/en/books/porters-handbook/plist/_index.adoc:622 #, no-wrap msgid "Custom Keyword Examples" msgstr "Примеры пользовательских ключевых слов" #. type: Block title #: documentation/content/en/books/porters-handbook/plist/_index.adoc:625 #, no-wrap msgid "Example of a `@dirrmtryecho` Keyword" msgstr "Пример ключевого слова `@dirrmtryecho`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:630 msgid "" "This keyword does two things, it adds a `@dirrmtry _directory_` line to the " "packing list, and echoes the fact that the directory is removed when " "deinstalling the package." msgstr "" "Это ключевое слово выполняет две функции: добавляет строку `@dirrmtry " "_directory_` в список упаковки и сообщает о том, что каталог удаляется при " "деинсталляции пакета." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/plist/_index.adoc:637 #, no-wrap msgid "" "actions: [dirrmtry]\n" "post-deinstall: <