Mirror of GNU Guix
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

50699 lines
1.9 MiB

# guix manual Russian translation.
# Copyright (C) 2019 the authors of Guix (msgids)
# This file is distributed under the same license as the guix package.
# Znavko <znavko@tutanota.com>, 2019.
# Pavlo Marianov <acid@jack.kiev.ua>, 2019.
# Adam <rndd@tuta.io>, 2020.
#
msgid ""
msgstr ""
"Project-Id-Version: guix-manual 1.1.0-pre1\n"
"Report-Msgid-Bugs-To: ludo@gnu.org\n"
"POT-Creation-Date: 2020-02-12 00:12+0100\n"
"PO-Revision-Date: 2020-03-19 15:40+0200\n"
"Last-Translator: Pavlo Marianov <acid@jack.kiev.ua>\n"
"Language-Team: Russian <gnu@d07.ru>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: Poedit 2.2.3\n"
#. #-#-#-#-# contributing.pot (guix 1.1.0-pre1) #-#-#-#-#
#. type: chapter
#. #-#-#-#-# guix.pot (guix 1.1.0-pre1) #-#-#-#-#
#. type: menuentry
#: doc/contributing.texi:1 doc/contributing.texi:2 doc/guix.texi:151
#, no-wrap
msgid "Contributing"
msgstr "Содействие"
#. type: Plain text
#: doc/contributing.texi:9
msgid "This project is a cooperative effort, and we need your help to make it grow! Please get in touch with us on @email{guix-devel@@gnu.org} and @code{#guix} on the Freenode IRC network. We welcome ideas, bug reports, patches, and anything that may be helpful to the project. We particularly welcome help on packaging (@pxref{Packaging Guidelines})."
msgstr "Этот проект развивается совместными усилиями. Нам нужна ваша помощь! Пожалуйста, свяжитесь с нами через @email{guix-devel@@gnu.org} и @code{#guix} в сети Freenode IRC. Мы приветствуем идеи, принимаем отчёты об ошибках, патчи и любую помощь проекту. Например, вы можете создавать описания пакетов (@pxref{Packaging Guidelines})."
#. type: cindex
#: doc/contributing.texi:10
#, no-wrap
msgid "code of conduct, of contributors"
msgstr "кодекс поведения, разработчиков"
#. type: cindex
#: doc/contributing.texi:11
#, no-wrap
msgid "contributor covenant"
msgstr "соглашение разработчика"
#. type: Plain text
#: doc/contributing.texi:17
msgid "We want to provide a warm, friendly, and harassment-free environment, so that anyone can contribute to the best of their abilities. To this end our project uses a ``Contributor Covenant'', which was adapted from @url{http://contributor-covenant.org/}. You can find a local version in the @file{CODE-OF-CONDUCT} file in the source tree."
msgstr "Мы хотим предоставить ламповое окружение, которое не напрягает, так чтобы каждый мог внести вклад, занимаясь тем, что хорошо получается. Для этого наш проект использует \"Кодекс поведения участника\", наследованный из @url{http://contributor-covenant.org/}. Локальную версию документа можно найти в файле @file{CODE-OF-CONDUCT} в дереве исходников."
#. type: Plain text
#: doc/contributing.texi:21
msgid "Contributors are not required to use their legal name in patches and on-line communication; they can use any name or pseudonym of their choice."
msgstr "Участники не обязаны указывать реальные имена в патчах и в общении онлайн. Они могут пользоваться любым именем или псеводнимом по своему выбору."
#. type: section
#: doc/contributing.texi:31 doc/contributing.texi:33 doc/contributing.texi:34
#, no-wrap
msgid "Building from Git"
msgstr "Сборка из Git"
#. type: menuentry
#: doc/contributing.texi:31
msgid "The latest and greatest."
msgstr "Новейший и величайший."
#. type: section
#: doc/contributing.texi:31 doc/contributing.texi:150
#: doc/contributing.texi:151
#, no-wrap
msgid "Running Guix Before It Is Installed"
msgstr "Запуск Guix перед его устанвокой"
#. type: menuentry
#: doc/contributing.texi:31
msgid "Hacker tricks."
msgstr "Хакерские трюки"
#. type: section
#: doc/contributing.texi:31 doc/contributing.texi:214
#: doc/contributing.texi:215
#, no-wrap
msgid "The Perfect Setup"
msgstr "Совершенная установка"
#. type: menuentry
#: doc/contributing.texi:31
msgid "The right tools."
msgstr "Правильные инструменты."
#. type: section
#: doc/contributing.texi:31 doc/contributing.texi:278
#: doc/contributing.texi:279
#, no-wrap
msgid "Packaging Guidelines"
msgstr "Принципы опакечивания"
#. type: menuentry
#: doc/contributing.texi:31
msgid "Growing the distribution."
msgstr "Разрастание дистрибутива."
#. type: section
#: doc/contributing.texi:31 doc/contributing.texi:726
#: doc/contributing.texi:727
#, no-wrap
msgid "Coding Style"
msgstr "Стиль кодирования"
#. type: menuentry
#: doc/contributing.texi:31
msgid "Hygiene of the contributor."
msgstr "Гигиена участника."
#. type: section
#: doc/contributing.texi:31 doc/contributing.texi:824
#: doc/contributing.texi:825
#, no-wrap
msgid "Submitting Patches"
msgstr "Отправка патчей"
#. type: menuentry
#: doc/contributing.texi:31
msgid "Share your work."
msgstr "Поделитесь своей работой."
#. type: section
#: doc/contributing.texi:31 doc/contributing.texi:1048
#: doc/contributing.texi:1049
#, no-wrap
msgid "Tracking Bugs and Patches"
msgstr "Отслеживание ошибок и патчей"
#. type: menuentry
#: doc/contributing.texi:31
msgid "Using Debbugs."
msgstr ""
#. type: section
#: doc/contributing.texi:31 doc/contributing.texi:1097
#: doc/contributing.texi:1098
#, no-wrap
msgid "Commit Access"
msgstr ""
#. type: menuentry
#: doc/contributing.texi:31
msgid "Pushing to the official repository."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:38
msgid "If you want to hack Guix itself, it is recommended to use the latest version from the Git repository:"
msgstr "Если вы собираетесь хакать сам Guix, рекомендуется использовать последнюю версию из репозитория Git:"
#. type: example
#: doc/contributing.texi:41
#, no-wrap
msgid "git clone https://git.savannah.gnu.org/git/guix.git\n"
msgstr "git clone https://git.savannah.gnu.org/git/guix.git\n"
#. type: cindex
#: doc/contributing.texi:43
#, no-wrap
msgid "authentication, of a Guix checkout"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:48
msgid "How do you ensure that you obtained a genuine copy of the repository? Guix itself provides a tool to @dfn{authenticate} your checkout, but you must first make sure this tool is genuine in order to ``bootstrap'' the trust chain. To do that, run:"
msgstr ""
#. type: example
#: doc/contributing.texi:52
#, no-wrap
msgid "git verify-commit `git log --format=%H build-aux/git-authenticate.scm`\n"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:55
#, fuzzy
#| msgid "to something like:"
msgid "The output must look something like:"
msgstr "на примерно следующий:"
#. type: example
#: doc/contributing.texi:63
#, no-wrap
msgid ""
"gpg: Signature made Fri 27 Dec 2019 01:27:41 PM CET\n"
"gpg: using RSA key 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
"@dots{}\n"
"gpg: Signature made Fri 27 Dec 2019 01:25:22 PM CET\n"
"gpg: using RSA key 3CE464558A84FDC69DB40CFB090B11993D9AEBB5\n"
"@dots{}\n"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:69
msgid "... meaning that changes to this file are all signed with key @code{3CE464558A84FDC69DB40CFB090B11993D9AEBB5} (you may need to fetch this key from a key server, if you have not done it yet)."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:72
msgid "From there on, you can authenticate all the commits included in your checkout by running:"
msgstr ""
#. type: example
#: doc/contributing.texi:75
#, fuzzy, no-wrap
#| msgid "make check\n"
msgid "make authenticate\n"
msgstr "make check\n"
#. type: Plain text
#: doc/contributing.texi:78
msgid "The first run takes a couple of minutes, but subsequent runs are faster."
msgstr "Первый запуск занимает пару минут, но последующие запускаются быстрее."
#. type: quotation
#: doc/contributing.texi:79 doc/contributing.texi:1144 doc/guix.texi:492
#: doc/guix.texi:541 doc/guix.texi:1558 doc/guix.texi:1823 doc/guix.texi:2034
#: doc/guix.texi:2243 doc/guix.texi:2438 doc/guix.texi:4244 doc/guix.texi:4460
#: doc/guix.texi:4761 doc/guix.texi:5002 doc/guix.texi:5123 doc/guix.texi:5175
#: doc/guix.texi:6766 doc/guix.texi:6834 doc/guix.texi:8543 doc/guix.texi:8555
#: doc/guix.texi:10609 doc/guix.texi:11155 doc/guix.texi:11707
#: doc/guix.texi:14407 doc/guix.texi:20844 doc/guix.texi:26096
#: doc/guix.texi:26307 doc/guix.texi:26466 doc/guix.texi:26587
#: doc/guix.texi:26769
#, no-wrap
msgid "Note"
msgstr "Заметка"
#. type: quotation
#: doc/contributing.texi:83
msgid "You are advised to run @command{make authenticate} after every @command{git pull} invocation. This ensures you keep receiving valid changes to the repository"
msgstr "Рекомендуется запускать @command {make authenticate} после каждого вызова @command {git pull}. Это гарантирует, что вы продолжаете получать действительные изменения в репозитории"
#. type: Plain text
#: doc/contributing.texi:89
msgid "The easiest way to set up a development environment for Guix is, of course, by using Guix! The following command starts a new shell where all the dependencies and appropriate environment variables are set up to hack on Guix:"
msgstr "Лучший способ установить окружение разработки для Guix - это, конечно, использование Guix! Следующая команда запускает новую оболочку, в которой заданы все зависимости и соответствующие переменные окружения:"
#. type: example
#: doc/contributing.texi:92
#, fuzzy, no-wrap
#| msgid "guix environment guix\n"
msgid "guix environment guix --pure\n"
msgstr "guix environment guix\n"
#. type: Plain text
#: doc/contributing.texi:95
#, fuzzy
#| msgid "@xref{Invoking guix pack}, for more info on this handy tool."
msgid "@xref{Invoking guix environment}, for more information on that command."
msgstr "@xref{Invoking guix pack} для подробной информации об этом полезном инструменте."
#. type: Plain text
#: doc/contributing.texi:99
#, fuzzy
#| msgid "When building Guix from a checkout, the following packages are required in addition to those mentioned in the installation instructions (@pxref{Requirements})."
msgid "If you are unable to use Guix when building Guix from a checkout, the following are the required packages in addition to those mentioned in the installation instructions (@pxref{Requirements})."
msgstr "При сборке Guix из чекаута, необходимы следующие пакеты, кроме тех, которые упомянуты в инструкциях установки (@pxref{Requirements})."
#. type: item
#: doc/contributing.texi:101
#, no-wrap
msgid "@url{http://gnu.org/software/autoconf/, GNU Autoconf};"
msgstr "@url{http://gnu.org/software/autoconf/, GNU Autoconf};"
#. type: item
#: doc/contributing.texi:102
#, no-wrap
msgid "@url{http://gnu.org/software/automake/, GNU Automake};"
msgstr "@url{http://gnu.org/software/automake/, GNU Automake};"
#. type: item
#: doc/contributing.texi:103
#, no-wrap
msgid "@url{http://gnu.org/software/gettext/, GNU Gettext};"
msgstr "@url{http://gnu.org/software/gettext/, GNU Gettext};"
#. type: item
#: doc/contributing.texi:104
#, no-wrap
msgid "@url{http://gnu.org/software/texinfo/, GNU Texinfo};"
msgstr "@url{http://gnu.org/software/texinfo/, GNU Texinfo};"
#. type: item
#: doc/contributing.texi:105
#, no-wrap
msgid "@url{http://www.graphviz.org/, Graphviz};"
msgstr "@url{http://www.graphviz.org/, Graphviz};"
#. type: item
#: doc/contributing.texi:106
#, no-wrap
msgid "@url{http://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
msgstr "@url{http://www.gnu.org/software/help2man/, GNU Help2man (дополнительно)}."
#. type: Plain text
#: doc/contributing.texi:111
msgid "On Guix, extra dependencies can be added by instead running @command{guix environment} with @option{--ad-hoc}:"
msgstr "В Guix, дополнительные зависимости можно добавить, запустив @command{guix environment} вместе с @option{--ad-hoc}:"
#. type: example
#: doc/contributing.texi:114
#, fuzzy, no-wrap
#| msgid "guix environment guix --ad-hoc help2man git strace\n"
msgid "guix environment guix --pure --ad-hoc help2man git strace\n"
msgstr "guix environment guix --ad-hoc help2man git strace\n"
#. type: Plain text
#: doc/contributing.texi:118
msgid "Run @command{./bootstrap} to generate the build system infrastructure using Autoconf and Automake. If you get an error like this one:"
msgstr "Запустите @command{./bootstrap}, чтобы инициировать инфраструктуру сборки системы, используя Autoconf и Automake. Если вы получили такую ошибку:"
#. type: example
#: doc/contributing.texi:121
#, no-wrap
msgid "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n"
msgstr "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n"
#. type: Plain text
#: doc/contributing.texi:130
msgid "it probably means that Autoconf couldn’t find @file{pkg.m4}, which is provided by pkg-config. Make sure that @file{pkg.m4} is available. The same holds for the @file{guile.m4} set of macros provided by Guile. For instance, if you installed Automake in @file{/usr/local}, it wouldn’t look for @file{.m4} files in @file{/usr/share}. In that case, you have to invoke the following command:"
msgstr "это означает, скорее всего, что Autoconf не смог найти файл @file{pkg.m4}, который предоставляется pkg-config. Убедитесь, что файл @file{pkg.m4} доступен. То же относится к @file{guile.m4}, набору макросов, предоставляемых Guile. Например, если вы установили Automake в @file{/usr/local}, он не будет искать файлы @file{.m4} в @file{/usr/share}. Тогда нужно выполнить следующую команду:"
#. type: example
#: doc/contributing.texi:133
#, no-wrap
msgid "export ACLOCAL_PATH=/usr/share/aclocal\n"
msgstr "export ACLOCAL_PATH=/usr/share/aclocal\n"
#. type: Plain text
#: doc/contributing.texi:137
msgid "@xref{Macro Search Path,,, automake, The GNU Automake Manual}, for more information."
msgstr "см. @xref{Macro Search Path,,, automake, The GNU Automake Manual}, чтобы получить больше информации."
#. type: Plain text
#: doc/contributing.texi:143
#, fuzzy
#| msgid "Then, run @command{./configure} as usual. Make sure to pass @code{--localstatedir=@var{directory}} where @var{directory} is the @code{localstatedir} value used by your current installation (@pxref{The Store}, for information about this)."
msgid "Then, run @command{./configure} as usual. Make sure to pass @code{--localstatedir=@var{directory}} where @var{directory} is the @code{localstatedir} value used by your current installation (@pxref{The Store}, for information about this). We recommend to use the value @code{/var}."
msgstr "Затем запустите @command{./configure} как обычно. Убедитесь, что указана опция @code{--localstatedir=@var{directory}}, где @var{directory} имеет значение @code{localstatedir} и указывает на директорию текущей установки. См. @pxref{The Store}, чтобы получить больше информации об этом."
#. type: Plain text
#: doc/contributing.texi:148
msgid "Finally, you have to invoke @code{make check} to run tests (@pxref{Running the Test Suite}). If anything fails, take a look at installation instructions (@pxref{Installation}) or send a message to the @email{guix-devel@@gnu.org, mailing list}."
msgstr "Наконец, нужно вызвать @code{make check}, чтобы запустить тесты (@pxref{Running the Test Suite}). Если что-либо неудачно, изучите инструкции установки (@pxref{Installation}) или отправьте сообщение в рассылку @email{guix-devel@@gnu.org}."
#. type: Plain text
#: doc/contributing.texi:157
msgid "In order to keep a sane working environment, you will find it useful to test the changes made in your local source tree checkout without actually installing them. So that you can distinguish between your ``end-user'' hat and your ``motley'' costume."
msgstr "Чтобы держать в порядке рабочее окружение, удобно тестировать изменения, сделанные в вашем локальном дереве исходников, без их установки. Так вы сможете отличить 'наряд' вашего конечного пользователя от 'пёстрого костюма'."
#. type: Plain text
#: doc/contributing.texi:168
#, fuzzy
msgid "To that end, all the command-line tools can be used even if you have not run @code{make install}. To do that, you first need to have an environment with all the dependencies available (@pxref{Building from Git}), and then simply prefix each command with @command{./pre-inst-env} (the @file{pre-inst-env} script lives in the top build tree of Guix; it is generated by @command{./configure}). An example@footnote{The @option{-E} flag to @command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set such that @command{guix-daemon} and the tools it uses can find the Guile modules they need.}:"
msgstr "Так все утилиты командной строки могут использоваться, даже если вы не запустили @code{make install}. Чтобы сделать это, нужно получить окружение со всеми доступными зависимостями (@pxref{Building from Git}) и запускать команду с префиксом @command{./pre-inst-env} (скрипт @file{pre-inst-env} расположен в верхнем уровне дерева сборки Guix; он создаётся командой @command{./configure}), как тут@footnote{Флаг @option{-E} команды @command{sudo}) гарантирует, что @code{GUILE_LOAD_PATH} корректно установлена, так чтобы @command{guix-daemon} и утилиты, которые он использует, могли найти необходимые модули Guile.}:"
#. type: example
#: doc/contributing.texi:172
#, no-wrap
msgid ""
"$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
"$ ./pre-inst-env guix build hello\n"
msgstr ""
"$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
"$ ./pre-inst-env guix build hello\n"
#. type: Plain text
#: doc/contributing.texi:176
#, fuzzy
#| msgid "Similarly, for a Guile session using the Guix modules:"
msgid "Similarly, an example for a Guile session using the Guix modules:"
msgstr "Так же для сессии Guile, пользуясь модулями Guix:"
#. type: example
#: doc/contributing.texi:179
#, no-wrap
msgid ""
"$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n"
"\n"
msgstr ""
"$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n"
"\n"
#. type: example
#: doc/contributing.texi:181
#, no-wrap
msgid ";;; (\"x86_64-linux\")\n"
msgstr ";;; (\"x86_64-linux\")\n"
#. type: cindex
#: doc/contributing.texi:184
#, no-wrap
msgid "REPL"
msgstr "REPL"
#. type: cindex
#: doc/contributing.texi:185
#, no-wrap
msgid "read-eval-print loop"
msgstr "цикл чтение-вычисление-вывод"
#. type: Plain text
#: doc/contributing.texi:188
msgid "@dots{} and for a REPL (@pxref{Using Guile Interactively,,, guile, Guile Reference Manual}):"
msgstr "@dots{} и для REPL (@pxref{Using Guile Interactively,,, guile, Guile Reference Manual}):"
#. type: example
#: doc/contributing.texi:203
#, no-wrap
msgid ""
"$ ./pre-inst-env guile\n"
"scheme@@(guile-user)> ,use(guix)\n"
"scheme@@(guile-user)> ,use(gnu)\n"
"scheme@@(guile-user)> (define snakes\n"
" (fold-packages\n"
" (lambda (package lst)\n"
" (if (string-prefix? \"python\"\n"
" (package-name package))\n"
" (cons package lst)\n"
" lst))\n"
" '()))\n"
"scheme@@(guile-user)> (length snakes)\n"
"$1 = 361\n"
msgstr ""
"$ ./pre-inst-env guile\n"
"scheme@@(guile-user)> ,use(guix)\n"
"scheme@@(guile-user)> ,use(gnu)\n"
"scheme@@(guile-user)> (define snakes\n"
" (fold-packages\n"
" (lambda (package lst)\n"
" (if (string-prefix? \"python\"\n"
" (package-name package))\n"
" (cons package lst)\n"
" lst))\n"
" '()))\n"
"scheme@@(guile-user)> (length snakes)\n"
"$1 = 361\n"
#. type: Plain text
#: doc/contributing.texi:207
msgid "The @command{pre-inst-env} script sets up all the environment variables necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}."
msgstr "Скрипт @command{pre-inst-env} устанавливает все переменные окружения, которые необходимы для этой задачи, включая @env{PATH} и @env{GUILE_LOAD_PATH}."
#. type: Plain text
#: doc/contributing.texi:212
msgid "Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the local source tree; it simply updates the @file{~/.config/guix/current} symlink (@pxref{Invoking guix pull}). Run @command{git pull} instead if you want to upgrade your local source tree."
msgstr "Заметим, что @command{./pre-inst-env guix pull} @emph{не} обновляет локальное дерево исходников. Эта команда только обновляет символическую ссылку @file{~/.config/guix/current} (@pxref{Invoking guix pull}). Выполните @command{git pull}, если вы хотите обновить локальное дерево исходников."
#. type: Plain text
#: doc/contributing.texi:222
msgid "The Perfect Setup to hack on Guix is basically the perfect setup used for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference Manual}). First, you need more than an editor, you need @url{http://www.gnu.org/software/emacs, Emacs}, empowered by the wonderful @url{http://nongnu.org/geiser/, Geiser}. To set that up, run:"
msgstr "Совершенная установка для программирования Guix --- это лучший способ разработки Guix (@pxref{Using Guile in Emacs,,, guile, Guile Reference Manual}). Во-первых, здесь нужен мощный текстовый редактор, нужен @url{http://www.gnu.org/software/emacs, Emacs}, дополненный замечательным @url{http://nongnu.org/geiser/, Geiser}. Чтобы установить это, введите:"
#. type: example
#: doc/contributing.texi:225
#, no-wrap
msgid "guix package -i emacs guile emacs-geiser\n"
msgstr "guix package -i emacs guile emacs-geiser\n"
#. type: Plain text
#: doc/contributing.texi:234
msgid "Geiser allows for interactive and incremental development from within Emacs: code compilation and evaluation from within buffers, access to on-line documentation (docstrings), context-sensitive completion, @kbd{M-.} to jump to an object definition, a REPL to try out your code, and more (@pxref{Introduction,,, geiser, Geiser User Manual}). For convenient Guix development, make sure to augment Guile’s load path so that it finds source files from your checkout:"
msgstr "Geiser добавляет возможности интерактивной пошаговой разработки внутри Emacs: компиляция и запуск кода в буферах, доступ к онлайн-документации (docstrings), контекстные дополнения, @kbd{M-.} для перемещения к определениям объектов, REPL для тестирования кода и многое другое (@pxref{Introduction,,, geiser, Geiser User Manual}). Для удобной разработки Guix обязательно настройте Guile для загрузки файлов из вашей инстанции:"
#. type: lisp
#: doc/contributing.texi:239
#, no-wrap
msgid ""
";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
"(with-eval-after-load 'geiser-guile\n"
" (add-to-list 'geiser-guile-load-path \"~/src/guix\"))\n"
msgstr ""
";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
"(with-eval-after-load 'geiser-guile\n"
" (add-to-list 'geiser-guile-load-path \"~/src/guix\"))\n"
#. type: Plain text
#: doc/contributing.texi:247
#, fuzzy
#| msgid "To actually edit the code, Emacs already has a neat Scheme mode. But in addition to that, you must not miss @url{http://www.emacswiki.org/emacs/ParEdit, Paredit}. It provides facilities to directly operate on the syntax tree, such as raising an s-expression or wrapping it, swallowing or rejecting the following s-expression, etc."
msgid "To actually edit the code, Emacs already has a neat Scheme mode. But in addition to that, you must not miss @url{https://www.emacswiki.org/emacs/ParEdit, Paredit}. It provides facilities to directly operate on the syntax tree, such as raising an s-expression or wrapping it, swallowing or rejecting the following s-expression, etc."
msgstr "На самом деле, для редактирования кода в Emacs уже есть отличный режим Scheme. Но в дополнение к этому не забудьте @url{http://www.emacswiki.org/emacs/ParEdit, Paredit}. Он добавляет утилиты для непосредственной обработки синтаксиса, как например, вызов s-expression или покрытие его, принятие или отклонение следующего s-expression и т.д."
#. type: cindex
#: doc/contributing.texi:248
#, no-wrap
msgid "code snippets"
msgstr "сниппеты кода"
#. type: cindex
#: doc/contributing.texi:249
#, no-wrap
msgid "templates"
msgstr "шаблоны"
#. type: cindex
#: doc/contributing.texi:250
#, no-wrap
msgid "reducing boilerplate"
msgstr "сокращение шаблонов"
#. type: Plain text
#: doc/contributing.texi:257
msgid "We also provide templates for common git commit messages and package definitions in the @file{etc/snippets} directory. These templates can be used with @url{http://joaotavora.github.io/yasnippet/, YASnippet} to expand short trigger strings to interactive text snippets. You may want to add the snippets directory to the @var{yas-snippet-dirs} variable in Emacs."
msgstr "Также мы предоставляем шаблоны стандартных сообщений коммитов git и шаблоны определений пакетов в директории @file{etc/snippets}. Эти шаблоны можно использовать с @url{http://joaotavora.github.io/yasnippet/, YASnippet} и вставлять сниппеты кода, используя короткие строки-триггеры. Возможно, вы захотите добавить директорию сниппетов в переменную Emacs @var{yas-snippet-dirs}."
#. type: lisp
#: doc/contributing.texi:262
#, no-wrap
msgid ""
";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
"(with-eval-after-load 'yasnippet\n"
" (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets\"))\n"
msgstr ""
";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
"(with-eval-after-load 'yasnippet\n"
" (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets\"))\n"
#. type: Plain text
#: doc/contributing.texi:270
msgid "The commit message snippets depend on @url{https://magit.vc/, Magit} to display staged files. When editing a commit message type @code{add} followed by @kbd{TAB} to insert a commit message template for adding a package; type @code{update} followed by @kbd{TAB} to insert a template for updating a package; type @code{https} followed by @kbd{TAB} to insert a template for changing the home page URI of a package to HTTPS."
msgstr "Тексты сообщений коммитов зависят от отображения затронутых файлов @url{https://magit.vc/, Magit}. Во время редактирования сообщения коммита типа @code{add} нажмите @kbd{TAB} после его ввода, чтобы вставить шаблон сообщения коммита добавления пакета; редактируя тип @code{update}, нажмите @kbd{TAB}, чтобы вставить шаблон обновления пакета; тип @code{https} - кнопка @kbd{TAB} вставит шаблон изменения адреса домашней страницы пакета на HTTPS."
#. type: Plain text
#: doc/contributing.texi:276
msgid "The main snippet for @code{scheme-mode} is triggered by typing @code{package...} followed by @kbd{TAB}. This snippet also inserts the trigger string @code{origin...}, which can be expanded further. The @code{origin} snippet in turn may insert other trigger strings ending on @code{...}, which also can be expanded further."
msgstr "Основной код для @code{scheme-mode} вызывается при вводе @code{package...} и кнопки @kbd{TAB}. Этот код также вставляет строку триггера @code{origin...}, который может быть расширен в дальнейшем. Код @code{origin...}, в свою очередь, может вставить строки других триггеров, завершающихся @code{...}, который также может быть расширен в дальнейшем."
#. type: cindex
#: doc/contributing.texi:281
#, no-wrap
msgid "packages, creating"
msgstr "создание, пакетов"
#. type: Plain text
#: doc/contributing.texi:285
msgid "The GNU distribution is nascent and may well lack some of your favorite packages. This section describes how you can help make the distribution grow."
msgstr "Дистрибутив GNU - в процессе возникновения и может не содержать ваши любимые пакеты. Этот раздел описывает как можно помочь с развитием дистрибутива."
#. type: Plain text
#: doc/contributing.texi:293
msgid "Free software packages are usually distributed in the form of @dfn{source code tarballs}---typically @file{tar.gz} files that contain all the source files. Adding a package to the distribution means essentially two things: adding a @dfn{recipe} that describes how to build the package, including a list of other packages required to build it, and adding @dfn{package metadata} along with that recipe, such as a description and licensing information."
msgstr "Пакеты свободного программного обеспечения обычно распространяются в виде @dfn{архивов исходного кода} (файлы @file{tar.gz}), которые содержат все исходные файлы. Добавить пакет в дистрибутив означает, по существу, две вещи: добавление @dfn{рецепта}, в котором обозначено, как собирать пакет, включая список других пакетов, необходимых для сборки данного, а также добавление @dfn{метаданных пакета} вместе с рецептом, как например, описание информации о лицензировании."
#. type: Plain text
#: doc/contributing.texi:302
msgid "In Guix all this information is embodied in @dfn{package definitions}. Package definitions provide a high-level view of the package. They are written using the syntax of the Scheme programming language; in fact, for each package we define a variable bound to the package definition, and export that variable from a module (@pxref{Package Modules}). However, in-depth Scheme knowledge is @emph{not} a prerequisite for creating packages. For more information on package definitions, @pxref{Defining Packages}."
msgstr "В Guix вся эта информация включена в @dfn{определения пакетов}. Определения пакетов представляют собой высокоуровневый обзор пакета. Они написаны с использованием синтаксиса языка программирования Scheme. Для каждого пакета задаётся набор переменных, которые составляют определение пакета, и затем это определение пакета экспортируется из модуля (@pxref{Package Modules}). Однако основательные знания Scheme @emph{not} не обязательны для создания пакетов. Для информации об определении пакетов см. @pxref{Defining Packages}."
#. type: Plain text
#: doc/contributing.texi:308
msgid "Once a package definition is in place, stored in a file in the Guix source tree, it can be tested using the @command{guix build} command (@pxref{Invoking guix build}). For example, assuming the new package is called @code{gnew}, you may run this command from the Guix build tree (@pxref{Running Guix Before It Is Installed}):"
msgstr "Когда определение пакета создано, сохранено в файле в дереве исходников Guix, оно может быть протестировано командой @command{guix build} (@pxref{Invoking guix build}). Например, допустим, новый пакет называется @code{gnew}, тогда можно запустить эту команду из дерева сборки Guix (@pxref{Running Guix Before It Is Installed}):"
#. type: example
#: doc/contributing.texi:311
#, no-wrap
msgid "./pre-inst-env guix build gnew --keep-failed\n"
msgstr "./pre-inst-env guix build gnew --keep-failed\n"
#. type: Plain text
#: doc/contributing.texi:317
msgid "Using @code{--keep-failed} makes it easier to debug build failures since it provides access to the failed build tree. Another useful command-line option when debugging is @code{--log-file}, to access the build log."
msgstr "Использование @code{--keep-failed} помогает при отладке ошибок сборки, так как эта опция предоставляет доступ к дереву неудачных сборок. Другая полезная опция командной строки при отладке - @code{--log-file}, которая даёт доступ к логу сборки."
#. type: Plain text
#: doc/contributing.texi:322
msgid "If the package is unknown to the @command{guix} command, it may be that the source file contains a syntax error, or lacks a @code{define-public} clause to export the package variable. To figure it out, you may load the module from Guile to get more information about the actual error:"
msgstr "Если пакет не известен команде @command{guix}, это может означать, что файл исходника содержит синтаксическую ошибку или не имеет предложения @code{define-public}, которое экспортирует переменную пакета. Чтобы разобраться, можно загрузить модуль из Guile и получить больше информации о текущей ошибке:"
#. type: example
#: doc/contributing.texi:325
#, no-wrap
msgid "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n"
msgstr "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n"
#. type: Plain text
#: doc/contributing.texi:332
#, fuzzy
#| msgid "Once your package builds correctly, please send us a patch (@pxref{Submitting Patches}). Well, if you need help, we will be happy to help you too. Once the patch is committed in the Guix repository, the new package automatically gets built on the supported platforms by @url{http://hydra.gnu.org/jobset/gnu/master, our continuous integration system}."
msgid "Once your package builds correctly, please send us a patch (@pxref{Submitting Patches}). Well, if you need help, we will be happy to help you too. Once the patch is committed in the Guix repository, the new package automatically gets built on the supported platforms by @url{@value{SUBSTITUTE-SERVER}, our continuous integration system}."
msgstr "Если ваш пакет собран корректно, пожалуйста, отправьте нам патч (@pxref{Submitting Patches}). Нужна помощь? - Мы будем рады помочь вам тоже. Когда патч отправлен в репозиторий Guix, новый пакет автоматически будет собран для поддерживаемых платформ на @url{http://hydra.gnu.org/jobset/gnu/master, нашей системе непрерывной работы}."
#. type: cindex
#: doc/contributing.texi:333
#, no-wrap
msgid "substituter"
msgstr "заменяющий"
#. type: Plain text
#: doc/contributing.texi:340
msgid "Users can obtain the new package definition simply by running @command{guix pull} (@pxref{Invoking guix pull}). When @code{@value{SUBSTITUTE-SERVER}} is done building the package, installing the package automatically downloads binaries from there (@pxref{Substitutes}). The only place where human intervention is needed is to review and apply the patch."
msgstr "Пользователи могут получать новые доступные определения пакетов простым запуском @command{guix pull} (@pxref{Invoking guix pull}). Если @code{@value{SUBSTITUTE-SERVER}} выполнил сборку пакета, установка пакета выполнит автоматическое скачивание бинарных файлов оттуда (@pxref{Substitutes}). Единственное место, где нужна активность человека, - обзор и применение патча."
#. type: subsection
#: doc/contributing.texi:351 doc/contributing.texi:353
#: doc/contributing.texi:354
#, no-wrap
msgid "Software Freedom"
msgstr "Свобода программного обеспечения"
#. type: menuentry
#: doc/contributing.texi:351
msgid "What may go into the distribution."
msgstr "Что может быть принято в дистрибутив."
#. type: subsection
#: doc/contributing.texi:351 doc/contributing.texi:381
#: doc/contributing.texi:382
#, no-wrap
msgid "Package Naming"
msgstr "Как называть пакеты"
#. type: menuentry
#: doc/contributing.texi:351
msgid "What's in a name?"
msgstr "Что может быть в имени?"
#. type: subsection
#: doc/contributing.texi:351 doc/contributing.texi:406
#: doc/contributing.texi:407
#, no-wrap
msgid "Version Numbers"
msgstr "Номера версий"
#. type: menuentry
#: doc/contributing.texi:351
msgid "When the name is not enough."
msgstr "Когда имени не достаточно."
#. type: subsection
#: doc/contributing.texi:351 doc/contributing.texi:497
#: doc/contributing.texi:498
#, no-wrap
msgid "Synopses and Descriptions"
msgstr "Краткие обзоры и описания"
#. type: menuentry
#: doc/contributing.texi:351
msgid "Helping users find the right package."
msgstr "Помощь пользователю в поиске нужного пакета."
#. type: subsection
#: doc/contributing.texi:351 doc/contributing.texi:577
#: doc/contributing.texi:578
#, no-wrap
msgid "Python Modules"
msgstr "Модули Python"
#. type: menuentry
#: doc/contributing.texi:351
msgid "A touch of British comedy."
msgstr "Английский юмор."
#. type: subsection
#: doc/contributing.texi:351 doc/contributing.texi:652
#: doc/contributing.texi:653
#, no-wrap
msgid "Perl Modules"
msgstr "Модули Perl"
#. type: menuentry
#: doc/contributing.texi:351
msgid "Little pearls."
msgstr "Жемчужинки."
#. type: subsection
#: doc/contributing.texi:351 doc/contributing.texi:668
#: doc/contributing.texi:669
#, no-wrap
msgid "Java Packages"
msgstr "Пакеты Java"
#. type: menuentry
#: doc/contributing.texi:351
msgid "Coffee break."
msgstr "Кофе-брейк."
#. type: subsection
#: doc/contributing.texi:351 doc/contributing.texi:688
#: doc/contributing.texi:689
#, no-wrap
msgid "Fonts"
msgstr "Шрифты"
#. type: menuentry
#: doc/contributing.texi:351
msgid "Fond of fonts."
msgstr "Любителям шрифтов."
#. type: cindex
#: doc/contributing.texi:357
#, no-wrap
msgid "free software"
msgstr "свободное программное обеспечение"
#. type: Plain text
#: doc/contributing.texi:365
msgid "The GNU operating system has been developed so that users can have freedom in their computing. GNU is @dfn{free software}, meaning that users have the @url{http://www.gnu.org/philosophy/free-sw.html,four essential freedoms}: to run the program, to study and change the program in source code form, to redistribute exact copies, and to distribute modified versions. Packages found in the GNU distribution provide only software that conveys these four freedoms."
msgstr "Операционная система GNU разработана, чтобы пользователи имели свободу при работе за компьютером. GNU --- это @dfn{свободное программное обеспечение}, то есть пользователи могут иметь @url{http://www.gnu.org/philosophy/free-sw.html,четыре важнейшие свободы}: запускать программу, изучать и изменять исходный код программы, распространять самостоятельно точные копии и распространять изменённые версии. Пакеты, включенные в дистрибутив GNU, поставляют только программное обеспечение, которое даёт эти четыре свободы."
#. type: Plain text
#: doc/contributing.texi:371
msgid "In addition, the GNU distribution follow the @url{http://www.gnu.org/distros/free-system-distribution-guidelines.html,free software distribution guidelines}. Among other things, these guidelines reject non-free firmware, recommendations of non-free software, and discuss ways to deal with trademarks and patents."
msgstr "Также дистрибутив GNU следует @url{http://www.gnu.org/distros/free-system-distribution-guidelines.html,рекомендациям для свободных дистрибутивов}. Эти рекомендации, среди прочих указаний, также отклоняют несвободные встроенные программы, рекомендации несвободного программного обеспечения и содержат доводы о том, как взаимодействовать с торговыми марками и патентами."
#. type: Plain text
#: doc/contributing.texi:379
msgid "Some otherwise free upstream package sources contain a small and optional subset that violates the above guidelines, for instance because this subset is itself non-free code. When that happens, the offending items are removed with appropriate patches or code snippets in the @code{origin} form of the package (@pxref{Defining Packages}). This way, @code{guix build --source} returns the ``freed'' source rather than the unmodified upstream source."
msgstr "Но тем не менее, некоторые источники пакетов в оригинале содержат небольшие необязательные компоненты, которые нарушают указанные рекомендации, например, это может быть несвободный код. Если это происходит, такие компоненты удаляются применением соответствующих патчей или сниппетов в @code{исходный} код пакета @pxref{Defining Packages}). Так @code{guix build --source} возвращает \"восстановленный свободный\" исходный код вместо изначального исходника."
#. type: cindex
#: doc/contributing.texi:384
#, no-wrap
msgid "package name"
msgstr "имя пакета"
#. type: Plain text
#: doc/contributing.texi:392
msgid "A package has actually two names associated with it: First, there is the name of the @emph{Scheme variable}, the one following @code{define-public}. By this name, the package can be made known in the Scheme code, for instance as input to another package. Second, there is the string in the @code{name} field of a package definition. This name is used by package management commands such as @command{guix package} and @command{guix build}."
msgstr "Пакет, в действительности, имеет два имени, ассоциированных с ним: первое --- это имя @emph{переменной Scheme}, которая указана в @code{define-public}. Это имя делает пакет доступным в коде Scheme, например, может использоваться как входные данные другого пакета. Второе --- это строка в поле @code{name} в определении пакета. Это имя используется командами управления пакетами, например, @command{guix package} и @command{guix build}."
#. type: Plain text
#: doc/contributing.texi:397
msgid "Both are usually the same and correspond to the lowercase conversion of the project name chosen upstream, with underscores replaced with hyphens. For instance, GNUnet is available as @code{gnunet}, and SDL_net as @code{sdl-net}."
msgstr "Оба обычно представляют собой строки в нижнем регистре, содержащие имя оригинального проекта с дефисами вместо символов нижнего подчёркивания. Например, GNUnet доступен как @code{gnunet}, а SDL_net --- как @code{sdl-net}."
#. type: Plain text
#: doc/contributing.texi:402
msgid "We do not add @code{lib} prefixes for library packages, unless these are already part of the official project name. But @pxref{Python Modules} and @ref{Perl Modules} for special rules concerning modules for the Python and Perl languages."
msgstr "Мы не добавляем приставку @code{lib} для пакетов библиотек, несмотря на то, что это уже часть официального имени пакета. Но для @pxref{Python Modules} и @ref{Perl Modules} есть исключения, касающиеся модулей для языков Python и Perl."
#. type: Plain text
#: doc/contributing.texi:404
msgid "Font package names are handled differently, @pxref{Fonts}."
msgstr "При именовании пакетов шрифтов имена меняются, @pxref{Fonts}."
#. type: cindex
#: doc/contributing.texi:409
#, no-wrap
msgid "package version"
msgstr "версия пакета"
#. type: Plain text
#: doc/contributing.texi:418
msgid "We usually package only the latest version of a given free software project. But sometimes, for instance for incompatible library versions, two (or more) versions of the same package are needed. These require different Scheme variable names. We use the name as defined in @ref{Package Naming} for the most recent version; previous versions use the same name, suffixed by @code{-} and the smallest prefix of the version number that may distinguish the two versions."
msgstr "Обычно мы опакечиваем только последнюю версию некоторого программного обеспечения. Но иногда, например, при наличии несовместимых версий библиотек, нужны две (или более) версии одного пакета. Это требует разных имён переменных Scheme. Мы используем имя, определённое в @ref{Package Naming}, для самой последней версии; предыдущие версии используют такое же имя с добавлением @code{-} и номера версии, что позволяет отличить две версии."
#. type: Plain text
#: doc/contributing.texi:421
msgid "The name inside the package definition is the same for all versions of a package and does not contain any version number."
msgstr "Имя внутри описания пакета остаётся одно для всех версий пакета и не содержит номера версии."
#. type: Plain text
#: doc/contributing.texi:423
msgid "For instance, the versions 2.24.20 and 3.9.12 of GTK+ may be packaged as follows:"
msgstr "Например, версии GTK+ 2.24.20 и 3.9.12 могут опакечиваться так:"
#. type: lisp
#: doc/contributing.texi:435
#, no-wrap
msgid ""
"(define-public gtk+\n"
" (package\n"
" (name \"gtk+\")\n"
" (version \"3.9.12\")\n"
" ...))\n"
"(define-public gtk+-2\n"
" (package\n"
" (name \"gtk+\")\n"
" (version \"2.24.20\")\n"
" ...))\n"
msgstr ""
"(define-public gtk+\n"
" (package\n"
" (name \"gtk+\")\n"
" (version \"3.9.12\")\n"
" ...))\n"
"(define-public gtk+-2\n"
" (package\n"
" (name \"gtk+\")\n"
" (version \"2.24.20\")\n"
" ...))\n"
#. type: Plain text
#: doc/contributing.texi:437
msgid "If we also wanted GTK+ 3.8.2, this would be packaged as"
msgstr "Если нам также нужен GTK+ 3.8.2, он будет размещён в пакете"
#. type: lisp
#: doc/contributing.texi:443
#, no-wrap
msgid ""
"(define-public gtk+-3.8\n"
" (package\n"
" (name \"gtk+\")\n"
" (version \"3.8.2\")\n"
" ...))\n"
msgstr ""
"(define-public gtk+-3.8\n"
" (package\n"
" (name \"gtk+\")\n"
" (version \"3.8.2\")\n"
" ...))\n"
#. type: cindex
#: doc/contributing.texi:447
#, no-wrap
msgid "version number, for VCS snapshots"
msgstr "номер версии, для снимков СКВ"
#. type: Plain text
#: doc/contributing.texi:453
msgid "Occasionally, we package snapshots of upstream's version control system (VCS) instead of formal releases. This should remain exceptional, because it is up to upstream developers to clarify what the stable release is. Yet, it is sometimes necessary. So, what should we put in the @code{version} field?"
msgstr "Порой мы опакечиваем снепшоты исходников из системы контроля версий (СКВ) вместо официальных релизов. Это остаётся исключением, потому что только разработчики оригинальных программ решают, что является стабильным релизом. Иногда это имеет значение. Что же мы должны писать в поле @code{версия}?"
#. type: Plain text
#: doc/contributing.texi:461
msgid "Clearly, we need to make the commit identifier of the VCS snapshot visible in the version string, but we also need to make sure that the version string is monotonically increasing so that @command{guix package --upgrade} can determine which version is newer. Since commit identifiers, notably with Git, are not monotonically increasing, we add a revision number that we increase each time we upgrade to a newer snapshot. The resulting version string looks like this:"
msgstr "Ясно, что нужно сделать отображение идентификатора коммита снепшота СКВ внутри строки версии, но мы также должны убедиться, что строка \"версия\" монотонно увеличивается, так чтобы @command{guix package --upgrade} могла определить, какая версия новее. Так как идентификаторы коммитов, что точно, Git, не увеличиваются, мы добавляем номер ревизии, которую мы увеличиваем каждый раз, когда мы обновляем до нового снепшота. Результирующая строка версии выглядит так:"
#. type: example
#: doc/contributing.texi:470
#, no-wrap
msgid ""
"2.0.11-3.cabba9e\n"
" ^ ^ ^\n"
" | | `-- upstream commit ID\n"
" | |\n"
" | `--- Guix package revision\n"
" |\n"
"latest upstream version\n"
msgstr ""
"2.0.11-3.cabba9e\n"
" ^ ^ ^\n"
" | | `-- ID коммита оригинала\n"
" | |\n"
" | `--- версия пакета Guix \n"
" |\n"
"последняя версия оригинала\n"
#. type: Plain text
#: doc/contributing.texi:479
msgid "It is a good idea to strip commit identifiers in the @code{version} field to, say, 7 digits. It avoids an aesthetic annoyance (assuming aesthetics have a role to play here) as well as problems related to OS limits such as the maximum shebang length (127 bytes for the Linux kernel.) It is best to use the full commit identifiers in @code{origin}s, though, to avoid ambiguities. A typical package definition may look like this:"
msgstr "Хорошая идея обрезать идентификаторы коммитов в поле @code{version}, скажем, до 7 цифр. Это позволяет избежать эстетического раздражения (эстетика здесь имеет значение), а также проблем с ограничениями ОС, как например, максимальная длина (127 байт для ядра Linux). Лучшее - это использовать полный идентификатор коммита в поле источник --- @code{origin} --- что позволяет избегать повторов. Стандартное описание пакета может выглядеть так:"
#. type: lisp
#: doc/contributing.texi:495
#, no-wrap
msgid ""
"(define my-package\n"
" (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n"
" (revision \"1\")) ;Guix package revision\n"
" (package\n"
" (version (git-version \"0.9\" revision commit))\n"
" (source (origin\n"
" (method git-fetch)\n"
" (uri (git-reference\n"
" (url \"git://example.org/my-package.git\")\n"
" (commit commit)))\n"
" (sha256 (base32 \"1mbikn@dots{}\"))\n"
" (file-name (git-file-name name version))))\n"
" ;; @dots{}\n"
" )))\n"
msgstr ""
"(define my-package\n"
" (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n"
" (revision \"1\")) ;Guix package revision\n"
" (package\n"
" (version (git-version \"0.9\" revision commit))\n"
" (source (origin\n"
" (method git-fetch)\n"
" (uri (git-reference\n"
" (url \"git://example.org/my-package.git\")\n"
" (commit commit)))\n"
" (sha256 (base32 \"1mbikn@dots{}\"))\n"
" (file-name (git-file-name name version))))\n"
" ;; @dots{}\n"
" )))\n"
#. type: cindex
#: doc/contributing.texi:500
#, no-wrap
msgid "package description"
msgstr "описание пакета"
#. type: cindex
#: doc/contributing.texi:501
#, no-wrap
msgid "package synopsis"
msgstr "краткий обзор пакета"
#. type: Plain text
#: doc/contributing.texi:508
msgid "As we have seen before, each package in GNU@tie{}Guix includes a synopsis and a description (@pxref{Defining Packages}). Synopses and descriptions are important: They are what @command{guix package --search} searches, and a crucial piece of information to help users determine whether a given package suits their needs. Consequently, packagers should pay attention to what goes into them."
msgstr "Как мы видели ранее, каждый пакет в GNU@tie{}Guix включает краткое описание и полное описание (@pxref{Defining Packages}). Краткие описания и полные описания важны: по ним производится поиск @command{guix package --search}, и это важная информация, которая помогает пользователям определить, насколько пакет соответствует их потребностям. Следовательно, пакеты должны отвечать требованиям, предъявляемым к ним."
#. type: Plain text
#: doc/contributing.texi:516
msgid "Synopses must start with a capital letter and must not end with a period. They must not start with ``a'' or ``the'', which usually does not bring anything; for instance, prefer ``File-frobbing tool'' over ``A tool that frobs files''. The synopsis should say what the package is---e.g., ``Core GNU utilities (file, text, shell)''---or what it is used for---e.g., the synopsis for GNU@tie{}grep is ``Print lines matching a pattern''."
msgstr "Краткие описания должны начинаться с прописной буквы и не должны заканчиваться точкой. Они не должны начинаться с артикля (англ. \"a\" или \"the\"), что обычно ничего не значит; например, лучше начать \"File-frobbing tool\" вместо \"A tool that frobs files\". Краткое описание должно сообщать о том, что представляет собой пакет, то есть: \"Основные утилиты GNU (файлы, текст, оболочка)\", - или для чего он используется, то есть краткое описание для GNU@tie{}grep таково: \"Печать строк, содержащих паттерн\"."
#. type: Plain text
#: doc/contributing.texi:526
msgid "Keep in mind that the synopsis must be meaningful for a very wide audience. For example, ``Manipulate alignments in the SAM format'' might make sense for a seasoned bioinformatics researcher, but might be fairly unhelpful or even misleading to a non-specialized audience. It is a good idea to come up with a synopsis that gives an idea of the application domain of the package. In this example, this might give something like ``Manipulate nucleotide sequence alignments'', which hopefully gives the user a better idea of whether this is what they are looking for."
msgstr "Помните, что краткое описание должно быть понятным для очень широкой аудитории. Например, \"Манипулирование выравниванием в формате SAM\" может быть понятно продвинутым исследователям в области биоинформатики, но совершенно бесполезно или может ввести в заблужение не специалистов. Хорошая идея --- включать в краткое описание идею группы приложений, к которой относится пакет. В данном примере можно предложить такой вариант: \"Манипулирование выравниванием нуклеотидных последовательностей\", что, в целом, даёт пользователю лучшее представление о том, на что они смотрят."
#. type: Plain text
#: doc/contributing.texi:534
msgid "Descriptions should take between five and ten lines. Use full sentences, and avoid using acronyms without first introducing them. Please avoid marketing phrases such as ``world-leading'', ``industrial-strength'', and ``next-generation'', and avoid superlatives like ``the most advanced''---they are not helpful to users looking for a package and may even sound suspicious. Instead, try to be factual, mentioning use cases and features."
msgstr "Описания должны занимать от 5 до 10 строк. Используйте полные предложения, использование аббревиатур возможно при их первичной расшифровке. Пожалуйста, не пишите маркетинговые фразы типа \"мировой лидер\", \"промышленный\", \"следующего поколения\", также избегайте признаки превосходства, как \"самый продвинутый\" --- это не помогает пользователям отыскать пакет, и возможно, звучит сомнительно. Вместо этого рассказывайте о фактах, упоминая особенности и применение."
#. type: cindex
#: doc/contributing.texi:535
#, no-wrap
msgid "Texinfo markup, in package descriptions"
msgstr "Разметка Texinfo, в описаниях пакетов"
#. type: Plain text
#: doc/contributing.texi:544
msgid "Descriptions can include Texinfo markup, which is useful to introduce ornaments such as @code{@@code} or @code{@@dfn}, bullet lists, or hyperlinks (@pxref{Overview,,, texinfo, GNU Texinfo}). However you should be careful when using some characters for example @samp{@@} and curly braces which are the basic special characters in Texinfo (@pxref{Special Characters,,, texinfo, GNU Texinfo}). User interfaces such as @command{guix package --show} take care of rendering it appropriately."
msgstr "Описания могут содержать разметку Texinfo, которая полезна при введении использовании подсветки как @code{@@code} или @code{@@dfn}, списков или гиперссылок (@pxref{Overview,,, texinfo, GNU Texinfo}). Однако будьте внимательны при пользовании символов @samp{@@} и фигурных скобок, которые вляются основными спецсимволами в Texinfo (@pxref{Special Characters,,, texinfo, GNU Texinfo}). Пользовательский интерфейс, например, @command{guix package --show}, учитывает и выводит текст с разметкой."
#. type: Plain text
#: doc/contributing.texi:550
msgid "Synopses and descriptions are translated by volunteers @uref{http://translationproject.org/domain/guix-packages.html, at the Translation Project} so that as many users as possible can read them in their native language. User interfaces search them and display them in the language specified by the current locale."
msgstr "Краткие описания и полные описания переведены участниками @uref{http://translationproject.org/domain/guix-packages.html, проекта Переводов}, это позволяет многим пользователям читать их на родном языке. Пользовательские интерфейсы ищут и отображают их на языке, заданном для текущей локали."
#. type: Plain text
#: doc/contributing.texi:555
msgid "To allow @command{xgettext} to extract them as translatable strings, synopses and descriptions @emph{must be literal strings}. This means that you cannot use @code{string-append} or @code{format} to construct these strings:"
msgstr "Чтобы дать возможность @command{xgettext} извлекать их как текст для перевода, краткие и полные описания @emph{должны быть буквенными строками}. Это означает, что нельзя пользоваться @code{string-append} или @code{format} при составлении этих строк:"
#. type: lisp
#: doc/contributing.texi:561
#, no-wrap
msgid ""
"(package\n"
" ;; @dots{}\n"
" (synopsis \"This is translatable\")\n"
" (description (string-append \"This is \" \"*not*\" \" translatable.\")))\n"
msgstr ""
"(package\n"
" ;; @dots{}\n"
" (synopsis \"Эту строку можно переводить\")\n"
" (description (string-append \"Эта строка \" \"*не поддерживает*\" \" перевод.\")))\n"
#. type: Plain text
#: doc/contributing.texi:569
msgid "Translation is a lot of work so, as a packager, please pay even more attention to your synopses and descriptions as every change may entail additional work for translators. In order to help them, it is possible to make recommendations or instructions visible to them by inserting special comments like this (@pxref{xgettext Invocation,,, gettext, GNU Gettext}):"
msgstr "Перевод --- трудоёмкая работа. Как автор пакета, пожалуйста, уделите внимание краткому и полному описаниям, потому что каждое изменение влечет дополнительную работу для переводчиков. Чтобы помочь им, можно сделать рекомендации или инструкции, вставив специальные комментарии, как этот (@pxref{xgettext Invocation,,, gettext, GNU Gettext}):"
#. type: example
#: doc/contributing.texi:574
#, no-wrap
msgid ""
";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
"(description \"ARandR is designed to provide a simple visual front end\n"
"for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n"
msgstr ""
";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
"(description \"ARandR is designed to provide a simple visual front end\n"
"for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n"
#. type: cindex
#: doc/contributing.texi:580
#, no-wrap
msgid "python"
msgstr "python"
#. type: Plain text
#: doc/contributing.texi:586
msgid "We currently package Python 2 and Python 3, under the Scheme variable names @code{python-2} and @code{python} as explained in @ref{Version Numbers}. To avoid confusion and naming clashes with other programming languages, it seems desirable that the name of a package for a Python module contains the word @code{python}."
msgstr "В настоящее время мы поставляем пакеты Python 2 и Python 3 через переменную Scheme под именами @code{python-2} и @code{python} в соответствии с @ref{Version Numbers}. Чтобы предотвратить путанницу и конфликты имён других языков программирования, модули Python содержат слово @code{python}."
#. type: Plain text
#: doc/contributing.texi:592
msgid "Some modules are compatible with only one version of Python, others with both. If the package Foo compiles only with Python 3, we name it @code{python-foo}; if it compiles only with Python 2, we name it @code{python2-foo}. If it is compatible with both versions, we create two packages with the corresponding names."
msgstr "Некоторые модули совместимы только с одной версией Python, другие - с обоими. Если пакет Foo работает только с Python 3, мы называем его @code{python-foo}. Если он работает только с Python 2, мы называем его @code{python2-foo}. Если он совместим с обеими версиями, мы создаём два пакета с соответствующими именами."
#. type: Plain text
#: doc/contributing.texi:598
msgid "If a project already contains the word @code{python}, we drop this; for instance, the module python-dateutil is packaged under the names @code{python-dateutil} and @code{python2-dateutil}. If the project name starts with @code{py} (e.g.@: @code{pytz}), we keep it and prefix it as described above."
msgstr "Если проект уже содержит слово @code{python}, мы отбрасываем его; например, модуль python-dateutil опакечен под именем @code{python-dateutil} и @code{python2-dateutil}. Если имя проекта начинается с @code{py} (т.е.@: @code{pytz}), мы оставляем такое имя и добавляем префикс, как это описано выше."
#. type: subsubsection
#: doc/contributing.texi:599
#, no-wrap
msgid "Specifying Dependencies"
msgstr "Перечисление зависимостей"
#. type: cindex
#: doc/contributing.texi:600
#, no-wrap
msgid "inputs, for Python packages"
msgstr "входные данные, для пакетов Python"
#. type: Plain text
#: doc/contributing.texi:605
msgid "Dependency information for Python packages is usually available in the package source tree, with varying degrees of accuracy: in the @file{setup.py} file, in @file{requirements.txt}, or in @file{tox.ini}."
msgstr "Информация о зависимостях для пакетов Python обычно доступна в дереве исходников пакета с различной степенью точности --- в файле @file{setup.py}, в @file{requirements.txt} или в @file{tox.ini}."
#. type: Plain text
#: doc/contributing.texi:611
msgid "Your mission, when writing a recipe for a Python package, is to map these dependencies to the appropriate type of ``input'' (@pxref{package Reference, inputs}). Although the @code{pypi} importer normally does a good job (@pxref{Invoking guix import}), you may want to check the following check list to determine which dependency goes where."
msgstr "Ваша миссия при написании рецепта сборки пакета Python --- отобразить эти зависимости в должном типе \"input\" (@pxref{package Reference, inputs}). Хотя импортёр @code{pypi} обычно отрабатывает хорошо (@pxref{Invoking guix import}), возможно, вы желаете просмотреть приведённый чек-лист, чтобы узнать о зависимостях."
#. type: itemize
#: doc/contributing.texi:619
msgid "We currently package Python 2 with @code{setuptools} and @code{pip} installed like Python 3.4 has per default. Thus you don't need to specify either of these as an input. @command{guix lint} will warn you if you do."
msgstr "В настоящее время мы поставляем пакет Python 2 с @code{setuptools} и @code{pip}, установленные как Python 3.4 по умолчанию. Так что не нужно обозначать их как входные данные (input). @command{guix lint} сообщит об ошибке, если это происходит."
#. type: itemize
#: doc/contributing.texi:625
msgid "Python dependencies required at run time go into @code{propagated-inputs}. They are typically defined with the @code{install_requires} keyword in @file{setup.py}, or in the @file{requirements.txt} file."
msgstr "Зависимости Python, необходимые во время работы, идут в @code{propagated-inputs}. Они обычно определены с ключевым словом @code{install_requires} в @file{setup.py} или в файле @file{requirements.txt}."
#. type: itemize
#: doc/contributing.texi:633
msgid "Python packages required only at build time---e.g., those listed with the @code{setup_requires} keyword in @file{setup.py}---or only for testing---e.g., those in @code{tests_require}---go into @code{native-inputs}. The rationale is that (1) they do not need to be propagated because they are not needed at run time, and (2) in a cross-compilation context, it's the ``native'' input that we'd want."
msgstr "Пакеты Python, необходимые только во время сборки, то есть обозначенные в списке с ключевым словом @code{setup_requires} в @file{setup.py}, или только для тестов, то есть со словом @code{tests_require}, указываются в @code{native-inputs}. Основная причина в том, что, первое, они не должны распространяться, потому что они не нужны для запуска и работы, и второе, в контексте кросс-компиляции это \"нативные\" входные данные, которые нам требуются."
#. type: itemize
#: doc/contributing.texi:637
msgid "Examples are the @code{pytest}, @code{mock}, and @code{nose} test frameworks. Of course if any of these packages is also required at run-time, it needs to go to @code{propagated-inputs}."
msgstr "Примерами являются фреймворки тестирования @code{pytest}, @code{mock} и @code{nose}. Конечно, если какой-либо из этих пакетов также необходим во время запуска и работы, его следует указывать в @code{propagated-inputs}."
#. type: itemize
#: doc/contributing.texi:642
msgid "Anything that does not fall in the previous categories goes to @code{inputs}, for example programs or C libraries required for building Python packages containing C extensions."
msgstr "Всё, что не попало в предыдущие категории, указывается в @code{inputs}, например, программы или библиотеки C, необходимые для сборки пакетов Python, которые используют расширения C."
#. type: itemize
#: doc/contributing.texi:648
msgid "If a Python package has optional dependencies (@code{extras_require}), it is up to you to decide whether to add them or not, based on their usefulness/overhead ratio (@pxref{Submitting Patches, @command{guix size}})."
msgstr "Если пакет Python имеет опциональные зависимости (@code{extras_require}), вы можете самостотельно решать добавить их или нет, учитывая их использование или бесполезность (@pxref{Submitting Patches, @command{guix size}})."
#. type: cindex
#: doc/contributing.texi:655
#, no-wrap
msgid "perl"
msgstr "perl"
#. type: Plain text
#: doc/contributing.texi:666
msgid "Perl programs standing for themselves are named as any other package, using the lowercase upstream name. For Perl packages containing a single class, we use the lowercase class name, replace all occurrences of @code{::} by dashes and prepend the prefix @code{perl-}. So the class @code{XML::Parser} becomes @code{perl-xml-parser}. Modules containing several classes keep their lowercase upstream name and are also prepended by @code{perl-}. Such modules tend to have the word @code{perl} somewhere in their name, which gets dropped in favor of the prefix. For instance, @code{libwww-perl} becomes @code{perl-libwww}."
msgstr "Программы Perl именуются как и любой другой пакет, используя исходное имя в нижнем регистре. Для пакетов Perl, содержащих отдельный класс мы используем имя класса в нижнем регистре, заменяем все вхождения @code{::} на дефисы и добавляем приставку @code{perl-}. Так класс @code{XML::Parser} становится @code{perl-xml-parser}. Модули, содержащие несколько классов, сохраняют свои изначальные имена в нижнем регистре и также имеют префикс @code{perl-}. Подобные модули имеют тенденцию писать слово @code{perl} где-либо в их имени, так что это слово удаляется, так как префикс содержит это слово. Например, @code{libwww-perl} становится @code{perl-libwww}."
#. type: cindex
#: doc/contributing.texi:671
#, no-wrap
msgid "java"
msgstr "java"
#. type: Plain text
#: doc/contributing.texi:674
msgid "Java programs standing for themselves are named as any other package, using the lowercase upstream name."
msgstr "Программы Java именуются как любой другой пакет, используя исходное им в нижнем регистре."
#. type: Plain text
#: doc/contributing.texi:680
msgid "To avoid confusion and naming clashes with other programming languages, it is desirable that the name of a package for a Java package is prefixed with @code{java-}. If a project already contains the word @code{java}, we drop this; for instance, the package @code{ngsjava} is packaged under the name @code{java-ngs}."
msgstr "Чтобы избежать путанницы и конфликтов имён с другими языками программирования, желательно именовать пакет, поставляющий программу Java, с префиксом @code{java-}. Если проект уже содержит слово @code{java}, мы обрезаем его. Например, пакет @code{ngsjava} опакечивается под именем @code{java-ngs}."
#. type: Plain text
#: doc/contributing.texi:686
msgid "For Java packages containing a single class or a small class hierarchy, we use the lowercase class name, replace all occurrences of @code{.} by dashes and prepend the prefix @code{java-}. So the class @code{apache.commons.cli} becomes package @code{java-apache-commons-cli}."
msgstr "Для пакетов Java, содержащих отдельный класс или небольшую ирархию, мы используем имя в нижнем регистре, заменяя все вхождения @code{.} на дефисы, и указываем префикс @code{java-}. Так класс @code{apache.commons.cli} становится пакетом @code{java-apache-commons-cli}."
#. type: cindex
#: doc/contributing.texi:691 doc/guix.texi:1675
#, no-wrap
msgid "fonts"
msgstr "шрифты"
#. type: Plain text
#: doc/contributing.texi:697
msgid "For fonts that are in general not installed by a user for typesetting purposes, or that are distributed as part of a larger software package, we rely on the general packaging rules for software; for instance, this applies to the fonts delivered as part of the X.Org system or fonts that are part of TeX Live."
msgstr "Для шрифтов, которые не установлены пользователем, исходя из настроек печати, или рааспространяемые как часть большого пакета программного обеспечения, мы применяем обычные правила опакечивания программного обеспечения. Например, это относится к шрифтам, поставляемым как часть системы X.Org, или шрифтов TeX Live."
#. type: Plain text
#: doc/contributing.texi:701
msgid "To make it easier for a user to search for fonts, names for other packages containing only fonts are constructed as follows, independently of the upstream package name."
msgstr "Чтобы облегчить пользовательский поиск шрифтов, имена пакетов, содержащих только шрифты, создаются следующим образом, независимо от изначального имени пакета."
#. type: Plain text
#: doc/contributing.texi:709
msgid "The name of a package containing only one font family starts with @code{font-}; it is followed by the foundry name and a dash @code{-} if the foundry is known, and the font family name, in which spaces are replaced by dashes (and as usual, all upper case letters are transformed to lower case). For example, the Gentium font family by SIL is packaged under the name @code{font-sil-gentium}."
msgstr "Имя пакета, содержащего только одно семейство шрифтов, начинается с @code{font-}; далее идёт литейное имя и дефис @code{-}, если литейное имя известно, а затем - имя семейства шрифтов, в котором пробелы заменяются дефисами (и обычно все буквы в верхнем регистре заменяются на нижний регистр). Например, семейство шрифтов Gentium от SIL опакечивается под именем @code{font-sil-gentium}."
#. type: Plain text
#: doc/contributing.texi:718
msgid "For a package containing several font families, the name of the collection is used in the place of the font family name. For instance, the Liberation fonts consist of three families, Liberation Sans, Liberation Serif and Liberation Mono. These could be packaged separately under the names @code{font-liberation-sans} and so on; but as they are distributed together under a common name, we prefer to package them together as @code{font-liberation}."
msgstr "Пакет с несколькими семействами шрифтов имеет в названии имя коллекции вместо имени семейства. Например, шрифты Liberation состоят из трёх семейств: Liberation Sans, Liberation Serfif и Liberation Mono. Они могли бы опакечиваться отдельно под именами @code{font-liberation-sans} и так далее, но так как они распространяются вместе под общим именем, мы предпочитаем опакечивать их вместе как @code{font-liberation}."
#. type: Plain text
#: doc/contributing.texi:724
msgid "In the case where several formats of the same font family or font collection are packaged separately, a short form of the format, prepended by a dash, is added to the package name. We use @code{-ttf} for TrueType fonts, @code{-otf} for OpenType fonts and @code{-type1} for PostScript Type 1 fonts."
msgstr "В случае, когда несколько форматов одного семейства щрифтов или коллекции шрифтов опакечена отдельно, в имени присутствует небольшая отметка о формате с предваряющим дефисом. Мы используем @code{-ttf} для шрифтов TrueType, @code{-otf} - для шрифтов OpenType - и @code{-type1} - для шрифтов PostScript Type 1."
#. type: Plain text
#: doc/contributing.texi:732
msgid "In general our code follows the GNU Coding Standards (@pxref{Top,,, standards, GNU Coding Standards}). However, they do not say much about Scheme, so here are some additional rules."
msgstr "В основном наш код следует стандартам кодирования GNU (@pxref{Top,,, standards, GNU Coding Standards}). Но они не имеют исчерпывающих указаний для Scheme, так что есть дополнительные правила."
#. type: subsection
#: doc/contributing.texi:738 doc/contributing.texi:740
#: doc/contributing.texi:741
#, no-wrap
msgid "Programming Paradigm"
msgstr "Парадигма программирования"
#. type: menuentry
#: doc/contributing.texi:738
msgid "How to compose your elements."
msgstr "Как компоновать элементы"
#. type: subsection
#: doc/contributing.texi:738 doc/contributing.texi:747
#: doc/contributing.texi:748
#, no-wrap
msgid "Modules"
msgstr "Модули"
#. type: menuentry
#: doc/contributing.texi:738
msgid "Where to store your code?"
msgstr "Где разместить код?"
#. type: subsection
#: doc/contributing.texi:738 doc/contributing.texi:758
#: doc/contributing.texi:759
#, no-wrap
msgid "Data Types and Pattern Matching"
msgstr "Типы данных и поиск образцов"
#. type: menuentry
#: doc/contributing.texi:738
msgid "Implementing data structures."
msgstr "Использование структур данных."
#. type: subsection
#: doc/contributing.texi:738 doc/contributing.texi:772
#: doc/contributing.texi:773
#, no-wrap
msgid "Formatting Code"
msgstr "Форматирование кода"
#. type: menuentry
#: doc/contributing.texi:738
msgid "Writing conventions."
msgstr "Написание соглашений."
#. type: Plain text
#: doc/contributing.texi:746
msgid "Scheme code in Guix is written in a purely functional style. One exception is code that involves input/output, and procedures that implement low-level concepts, such as the @code{memoize} procedure."
msgstr "Код Scheme в Guix написан в чисто функциональном стиле. Одно исключение - это код, который вызывает ввод/вывод и процедуры, которые реализуют низкоровневые операции, как например, процедура @code{memoize}."
#. type: Plain text
#: doc/contributing.texi:754
msgid "Guile modules that are meant to be used on the builder side must live in the @code{(guix build @dots{})} name space. They must not refer to other Guix or GNU modules. However, it is OK for a ``host-side'' module to use a build-side module."
msgstr "Модули Guile, которые вызываются для сборки, должны жить в пространстве имён @code{(guix build @dots{})}. Они не должны ссылаться на другие модули Guix или GNU. Однако это нормально, если модуль типа \"host-side\" использует модуль типа build-side."
#. type: Plain text
#: doc/contributing.texi:757
msgid "Modules that deal with the broader GNU system should be in the @code{(gnu @dots{})} name space rather than @code{(guix @dots{})}."
msgstr "Модули, которые работают во всей системе GNU, должны быть в пространстве имён @code{(gnu @dots{})}, но не @code{(guix @dots{})}."
#. type: Plain text
#: doc/contributing.texi:766
msgid "The tendency in classical Lisp is to use lists to represent everything, and then to browse them ``by hand'' using @code{car}, @code{cdr}, @code{cadr}, and co. There are several problems with that style, notably the fact that it is hard to read, error-prone, and a hindrance to proper type error reports."
msgstr "Правило классического Lisp - использование списков для представления всего и просмотр списков \"вручную\", используя @code{car}, @code{cdr}, @code{cadr} и тому подобное. Возникают некоторые проблемы этого стиля, например, это тяжело читается, провоцирует ошибки, и создаёт отчёты об ошибках без должной детализации."
#. type: Plain text
#: doc/contributing.texi:771
msgid "Guix code should define appropriate data types (for instance, using @code{define-record-type*}) rather than abuse lists. In addition, it should use pattern matching, via Guile’s @code{(ice-9 match)} module, especially when matching lists."
msgstr "Код Guix должен определить соответствующие типы данных (то есть пользуясь, например, @code{define-record-type*}) вместо насущных списков. А также он должен использовать поиск по образцам с помощью модуля Guile @code{(ice-9 match)}, особенно для поиска списков."
#. type: cindex
#: doc/contributing.texi:775
#, no-wrap
msgid "formatting code"
msgstr "форматирование кода"
#. type: cindex
#: doc/contributing.texi:776
#, no-wrap
msgid "coding style"
msgstr "стиль кодирования"
#. type: Plain text
#: doc/contributing.texi:783
msgid "When writing Scheme code, we follow common wisdom among Scheme programmers. In general, we follow the @url{http://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp Style Rules}. This document happens to describe the conventions mostly used in Guile’s code too. It is very thoughtful and well written, so please do read it."
msgstr "При написании кода Scheme мы пользуемся мудростью программистов Scheme. В основном мы следуем @url{http://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp Style Rules}. Этот документ, к счастью, содержит большинство соглашений, которые применимы также для кода Guile. Это очень вдумчиая работа, пожалуйста, прочтите её."
#. type: Plain text
#: doc/contributing.texi:790
msgid "Some special forms introduced in Guix, such as the @code{substitute*} macro, have special indentation rules. These are defined in the @file{.dir-locals.el} file, which Emacs automatically uses. Also note that Emacs-Guix provides @code{guix-devel-mode} mode that indents and highlights Guix code properly (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual})."
msgstr "Некоторые специальные формы, вводимые в Guix, как например, макрос @code{substitute*}, имеют специальные правила отступов. Они определены в файле @file{.dir-locals.el}, которые использует Emacs автоматически. Также отметим, что Emacs-Guix предоставляет режим @code{guix-devel-mode}, который вставляет отступы и подсвечивает код Guix должным образом (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual})."
#. type: cindex
#: doc/contributing.texi:791
#, no-wrap
msgid "indentation, of code"
msgstr "отступы, в коде"
#. type: cindex
#: doc/contributing.texi:792
#, no-wrap
msgid "formatting, of code"
msgstr "форматировние, кода"
#. type: Plain text
#: doc/contributing.texi:795
msgid "If you do not use Emacs, please make sure to let your editor knows these rules. To automatically indent a package definition, you can also run:"
msgstr "Если вы не пользуетесь Emacs, пожалуйста убедитесь, что ваш редактор знает эти правила. Для автоматической расстановки отступов можно запустить:"
#. type: example
#: doc/contributing.texi:798
#, no-wrap
msgid "./etc/indent-code.el gnu/packages/@var{file}.scm @var{package}\n"
msgstr "./etc/indent-code.el gnu/packages/@var{file}.scm @var{package}\n"
#. type: Plain text
#: doc/contributing.texi:804
msgid "This automatically indents the definition of @var{package} in @file{gnu/packages/@var{file}.scm} by running Emacs in batch mode. To indent a whole file, omit the second argument:"
msgstr "Это автоматически расставит отступы в определении @var{package} в файле @file{gnu/packages/@var{file}.scm}, запустив Emacs в фоновом режиме. Чтобы расставить отступы во всём файле, приведите слеующий аргумент:"
#. type: example
#: doc/contributing.texi:807
#, no-wrap
msgid "./etc/indent-code.el gnu/services/@var{file}.scm\n"
msgstr "./etc/indent-code.el gnu/services/@var{file}.scm\n"
#. type: cindex
#: doc/contributing.texi:809
#, no-wrap
msgid "Vim, Scheme code editing"
msgstr "Vim, редактирование кода Scheme"
#. type: Plain text
#: doc/contributing.texi:815
msgid "If you are editing code with Vim, we recommend that you run @code{:set autoindent} so that your code is automatically indented as you type. Additionally, @uref{https://www.vim.org/scripts/script.php?script_id=3998, @code{paredit.vim}} may help you deal with all these parentheses."
msgstr "Если вы редактируете код в Vim, мы рекомендуем запустить @code{:set autoindent}, так отступы будут автоматически вставляться в ваш код, пока вы печатаете. В дополнение вам может помочь для работы со всеми этими скобками @uref{https://www.vim.org/scripts/script.php?script_id=3998, @code{paredit.vim}}."
#. type: Plain text
#: doc/contributing.texi:819
msgid "We require all top-level procedures to carry a docstring. This requirement can be relaxed for simple private procedures in the @code{(guix build @dots{})} name space, though."
msgstr "Мы требуем, чтобы все высокоуровневые процедуры содержали строки документации. Хотя это требование может не учитываться для простых приватных процедур в пространстве имён @code{(guix build @dots{})}."
#. type: Plain text
#: doc/contributing.texi:822
msgid "Procedures should not have more than four positional parameters. Use keyword parameters for procedures that take more than four parameters."
msgstr "Процедуры должны иметь не более четырёх параметров. Передавайте параметры по ключевым словам в процедурах, которые принимают более четырёх параметров."
#. type: Plain text
#: doc/contributing.texi:833
#, fuzzy
#| msgid "Development is done using the Git distributed version control system. Thus, access to the repository is not strictly necessary. We welcome contributions in the form of patches as produced by @code{git format-patch} sent to the @email{guix-patches@@gnu.org} mailing list."
msgid "Development is done using the Git distributed version control system. Thus, access to the repository is not strictly necessary. We welcome contributions in the form of patches as produced by @code{git format-patch} sent to the @email{guix-patches@@gnu.org} mailing list. Seasoned Guix developers may also want to look at the section on commit access (@pxref{Commit Access})."
msgstr "Разработка завершается использованием пставляемой системы контроля версиями Git. Доступ к репозиторию не обязателен. Мы приветствуем вклады в разработку в виде патчей, которые производит @code{git format-patch}, отправленных в рассылку @email{guix-patches@@gnu.org}."
#. type: Plain text
#: doc/contributing.texi:840
#, fuzzy
#| msgid "This mailing list is backed by a Debbugs instance accessible at @uref{https://bugs.gnu.org/guix-patches}, which allows us to keep track of submissions. Each message sent to that mailing list gets a new tracking number assigned; people can then follow up on the submission by sending email to @code{@var{NNN}@@debbugs.gnu.org}, where @var{NNN} is the tracking number (@pxref{Sending a Patch Series})."
msgid "This mailing list is backed by a Debbugs instance, which allows us to keep track of submissions (@pxref{Tracking Bugs and Patches}). Each message sent to that mailing list gets a new tracking number assigned; people can then follow up on the submission by sending email to @code{@var{NNN}@@debbugs.gnu.org}, where @var{NNN} is the tracking number (@pxref{Sending a Patch Series})."
msgstr "Бекап этой расылки создаёт Debbugs, архив доступен по адресу \"@uref{https://bugs.gnu.org/guix-patches}, там можно отследить сообщения. Каждое сообщение, отправленное в рассылку, нумеруется; можно затем просмотреть сообщения, отправив e-mail на @code{@var{NNN}@@debbugs.gnu.org}, где @var{NNN} - это номер отслеживания (@pxref{Sending a Patch Series})."
#. type: Plain text
#: doc/contributing.texi:844
msgid "Please write commit logs in the ChangeLog format (@pxref{Change Logs,,, standards, GNU Coding Standards}); you can check the commit history for examples."
msgstr "Пожалуйста, пишите логи коммита в формате ChangeLog (@pxref{Change Logs,,, standards, GNU Coding Standards}); можно просмотреть историю коммитов, например."
#. type: Plain text
#: doc/contributing.texi:847
msgid "Before submitting a patch that adds or modifies a package definition, please run through this check list:"
msgstr "Перед отправкой патча, который добавляет или изменяет описание пакета, пожалуйста, выполните следующие проверки:"
#. type: enumerate
#: doc/contributing.texi:854
msgid "If the authors of the packaged software provide a cryptographic signature for the release tarball, make an effort to verify the authenticity of the archive. For a detached GPG signature file this would be done with the @code{gpg --verify} command."
msgstr "Если авторы пакета программного обеспечения преоставляют криптографическую подпись для архива релиза, выполните проверку аутентичности архива. Для отдельного файла GPG-подписи это можно сделать командой @code{gpg --verify}."
#. type: enumerate
#: doc/contributing.texi:858
msgid "Take some time to provide an adequate synopsis and description for the package. @xref{Synopses and Descriptions}, for some guidelines."
msgstr "Потратьте немного времени, чтобы предоставить адекватное краткое описание и полное описание пакета. Смотрите @xref{Synopses and Descriptions} для подробностей."
#. type: enumerate
#: doc/contributing.texi:863
msgid "Run @code{guix lint @var{package}}, where @var{package} is the name of the new or modified package, and fix any errors it reports (@pxref{Invoking guix lint})."
msgstr "Запустите @code{guix lint @var{package}}, где @var{package} - это имя нового изменённого пакета, и устраните любые ошибки из отчёта (@pxref{Invoking guix lint})."
#. type: enumerate
#: doc/contributing.texi:867
msgid "Make sure the package builds on your platform, using @code{guix build @var{package}}."
msgstr "Убедитесь, что пакет собирается на вашей платформе, используя @code{guix build @var{package}}."
#. type: enumerate
#: doc/contributing.texi:874
msgid "We recommend you also try building the package on other supported platforms. As you may not have access to actual hardware platforms, we recommend using the @code{qemu-binfmt-service-type} to emulate them. In order to enable it, add the following service to the list of services in your @code{operating-system} configuration:"
msgstr "Мы рекомендуем вам также попробовать собрать пакет под другими поддерживаемыми платформами. Возможно, вы не имеете доступа к современным аппаратным платформам, тогда мы рекомендуем использовать @code{qemu-binfmt-service-type}, чтобы эмулировать их. Чтобы обеспечить это, добавьте следующий сервис в конфигурацию @code{operating-system}:"
#. type: lisp
#: doc/contributing.texi:880
#, no-wrap
msgid ""
"(service qemu-binfmt-service-type\n"
" (qemu-binfmt-configuration\n"
" (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))\n"
" (guix-support? #t)))\n"
msgstr ""
"(service qemu-binfmt-service-type\n"
" (qemu-binfmt-configuration\n"
" (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))\n"
" (guix-support? #t)))\n"
#. type: enumerate
#: doc/contributing.texi:883
msgid "Then reconfigure your system."
msgstr "И тогда запустите переконфигурирование системы."
#. type: enumerate
#: doc/contributing.texi:888
msgid "You can then build packages for different platforms by specifying the @code{--system} option. For example, to build the \"hello\" package for the armhf, aarch64, or mips64 architectures, you would run the following commands, respectively:"
msgstr "Также можно собирать пакеты под различные платформы, обозначив опцию @code{--system}. Например, чтобы собрать пакет \"hello\" для архитектур armhf, aarch64, или mips64 вы должны выполнить соответственно следующее:"
#. type: example
#: doc/contributing.texi:892
#, no-wrap
msgid ""
"guix build --system=armhf-linux --rounds=2 hello\n"
"guix build --system=aarch64-linux --rounds=2 hello\n"
"guix build --system=mips64el-linux --rounds=2 hello\n"
msgstr ""
"guix build --system=armhf-linux --rounds=2 hello\n"
"guix build --system=aarch64-linux --rounds=2 hello\n"
"guix build --system=mips64el-linux --rounds=2 hello\n"
#. type: cindex
#: doc/contributing.texi:895
#, no-wrap
msgid "bundling"
msgstr "сборка"
#. type: enumerate
#: doc/contributing.texi:898
msgid "Make sure the package does not use bundled copies of software already available as separate packages."
msgstr "Убедитесь, что пакет не использует связанные копии программ, которые уже доступны как отдельные пакеты."
#. type: enumerate
#: doc/contributing.texi:907
msgid "Sometimes, packages include copies of the source code of their dependencies as a convenience for users. However, as a distribution, we want to make sure that such packages end up using the copy we already have in the distribution, if there is one. This improves resource usage (the dependency is built and stored only once), and allows the distribution to make transverse changes such as applying security updates for a given software package in a single place and have them affect the whole system---something that bundled copies prevent."
msgstr "Иногда пакеты включают копии исходных кодов своих зависимостей, исходя из удобства для пользователей. Однако как дистрибутив, мы должны убедиться, что подобные пакеты ставятся, используя копию, которую мы уже имеем в дистрибутиве, если таковая имеется. Это улучшает использование ресурсов (зависимость собирается и сохраняется один раз) и позволяет дистрибутиву производить поперечные изменения, как например, применение обновлений безопасности для поставляемого пакета программного обеспечения в одном месте, и эти изменения будут иметь силу во всей системе, устраняя проблему лишних копий."
#. type: enumerate
#: doc/contributing.texi:916
msgid "Take a look at the profile reported by @command{guix size} (@pxref{Invoking guix size}). This will allow you to notice references to other packages unwillingly retained. It may also help determine whether to split the package (@pxref{Packages with Multiple Outputs}), and which optional dependencies should be used. In particular, avoid adding @code{texlive} as a dependency: because of its extreme size, use @code{texlive-tiny} or @code{texlive-union} instead."
msgstr "Просмотрите отчеты @command{guix size} (@pxref{Invoking guix size}). Это позволит найти связь с другими пакетами, сохранившуюся без необходимости. Это также позволяет решить, как разделить пакет (@pxref{Packages with Multiple Outputs}) и какие должны использоваться опциональные зависимости. В частности, это способ избежать использование большого @code{texlive} как зависимости и использовать @code{texlive-tiny} или @code{texlive-union} вместо него."
#. type: enumerate
#: doc/contributing.texi:921
msgid "For important changes, check that dependent package (if applicable) are not affected by the change; @code{guix refresh --list-dependent @var{package}} will help you do that (@pxref{Invoking guix refresh})."
msgstr "Для важных изменений проверьте, что зависимости пакета (если они есть) не затронуты изменениями. @code{guix refresh --list-dependent @var{package}} поможет вам сделать это (@pxref{Invoking guix refresh})."
#. type: cindex
#: doc/contributing.texi:923
#, no-wrap
msgid "branching strategy"
msgstr "стратегия бренчей"
#. type: cindex
#: doc/contributing.texi:924
#, no-wrap
msgid "rebuild scheduling strategy"
msgstr "стратегия планирования пересборки"
#. type: enumerate
#: doc/contributing.texi:927
msgid "Depending on the number of dependent packages and thus the amount of rebuilding induced, commits go to different branches, along these lines:"
msgstr "В зависимости от числа пакетов зависимостей и, как следствие, числа вызываемых пересборок, коммиты отправляются в разные бренчи следующим образом:"
#. type: item
#: doc/contributing.texi:929
#, no-wrap
msgid "300 dependent packages or less"
msgstr "300 пакетов зависимостей или менее"
#. type: table
#: doc/contributing.texi:931
msgid "@code{master} branch (non-disruptive changes)."
msgstr "бренч @code{master} (не разрушающие изменения)."
#. type: item
#: doc/contributing.texi:932
#, no-wrap
msgid "between 300 and 1,200 dependent packages"
msgstr "от 300 до 1200 пакетов зависимостей"
#. type: table
#: doc/contributing.texi:937
msgid "@code{staging} branch (non-disruptive changes). This branch is intended to be merged in @code{master} every 3 weeks or so. Topical changes (e.g., an update of the GNOME stack) can instead go to a specific branch (say, @code{gnome-updates})."
msgstr "бренч @code{staging} (не разрушающие изменения). Этот бренч предназначен для включения в @code{master} каждые 3 недели (примерно). Тематические изменения (т.е. обновление стека GNOME) могут отправляться в специальный бренч, скажем, @code{gnome-updates}."
#. type: item
#: doc/contributing.texi:938
#, no-wrap
msgid "more than 1,200 dependent packages"
msgstr "более 1200 пакетов зависимостей"
#. type: table
#: doc/contributing.texi:942
msgid "@code{core-updates} branch (may include major and potentially disruptive changes). This branch is intended to be merged in @code{master} every 2.5 months or so."
msgstr "бренч @code{core-updates} (может включать главные и потенциально разрушительные изменения). Этот бренч предназначен для включения в @code{master} каждые 2,5 месяца примерно."
#. type: enumerate
#: doc/contributing.texi:949
#, fuzzy
#| msgid "All these branches are @uref{https://hydra.gnu.org/project/gnu, tracked by our build farm} and merged into @code{master} once everything has been successfully built. This allows us to fix issues before they hit users, and to reduce the window during which pre-built binaries are not available."
msgid "All these branches are @uref{@value{SUBSTITUTE-SERVER}, tracked by our build farm} and merged into @code{master} once everything has been successfully built. This allows us to fix issues before they hit users, and to reduce the window during which pre-built binaries are not available."
msgstr "Все эти бренчи @uref{https://hydra.gnu.org/project/gnu, размещаются на ферме сборки} и включаются в @code{master} после первой удачной сборки. Это позволяет нам исправлять проблемы перед тем, как они дойдут до пользователей, и сократить окно, в течение которого собранные бинарники не доступны."
#. type: enumerate
#: doc/contributing.texi:956
msgid "Generally, branches other than @code{master} are considered @emph{frozen} if there has been a recent evaluation, or there is a corresponding @code{-next} branch. Please ask on the mailing list or IRC if unsure where to place a patch."
msgstr "Обычно бренчи, отличные от @code{master} считаются @emph{замороженными}, если существует поседнее определение или соответствующий бренч @code{-next}. Пожалуйста, задайте вопрос в рассылках или IRC, если не уверенны куда разместить патч."
#. type: cindex
#: doc/contributing.texi:958
#, no-wrap
msgid "determinism, of build processes"
msgstr "детерминизм, процесса сборки"
#. type: cindex
#: doc/contributing.texi:959
#, no-wrap
msgid "reproducible builds, checking"
msgstr "воспроизводимые сорки, проверка"
#. type: enumerate
#: doc/contributing.texi:963
msgid "Check whether the package's build process is deterministic. This typically means checking whether an independent build of the package yields the exact same result that you obtained, bit for bit."
msgstr "Проверьте, является ли процесс сборки пакета детеминистическим. Это обычно означает необходимость проверки того, что независимая сборка пакета производит точно такой же результат, которым вы располагаете, бит к биту."
#. type: enumerate
#: doc/contributing.texi:966
msgid "A simple way to do that is by building the same package several times in a row on your machine (@pxref{Invoking guix build}):"
msgstr "Простой способ выполнить это - собрать такой же пакет несколько раз подряд на вашей машине (@pxref{Invoking guix build}):"
#. type: example
#: doc/contributing.texi:969
#, no-wrap
msgid "guix build --rounds=2 my-package\n"
msgstr "guix build --rounds=2 my-package\n"
#. type: enumerate
#: doc/contributing.texi:973
msgid "This is enough to catch a class of common non-determinism issues, such as timestamps or randomly-generated output in the build result."
msgstr "Этого достаточно, чтобы отловить привычный набор проблем, нарушающих детерминизм, как например, отпечаток времени или случайно генерируемый выход на результате сборке."
#. type: enumerate
#: doc/contributing.texi:983
msgid "Another option is to use @command{guix challenge} (@pxref{Invoking guix challenge}). You may run it once the package has been committed and built by @code{@value{SUBSTITUTE-SERVER}} to check whether it obtains the same result as you did. Better yet: Find another machine that can build it and run @command{guix publish}. Since the remote build machine is likely different from yours, this can catch non-determinism issues related to the hardware---e.g., use of different instruction set extensions---or to the operating system kernel---e.g., reliance on @code{uname} or @file{/proc} files."
msgstr "Другой способ --- использовать @command{guix challenge} (@pxref{Invoking guix challenge}). Можно запустить это один раз, когда коммит пакета был отправлен, и собрать с помощью @code{@value{SUBSTITUTE-SERVER}}, чтобы проверить, что это даёт результат такой же, как у вас. Ещё лучше найти другую машину, на которой можно собрать это и выполнить @command{guix publish}. Так как другая удалённая машина дл сборки отличается от вашей, это может выявить проблемы, нарушающие детерминизм, связанные с аппаратным обеспечением, то есть вызванные использованием различных расширений ассемблера или другого ядра операционной системы, то есть касательно файлов @code{uname} или @file{/proc}."
#. type: enumerate
#: doc/contributing.texi:989
msgid "When writing documentation, please use gender-neutral wording when referring to people, such as @uref{https://en.wikipedia.org/wiki/Singular_they, singular ``they''@comma{} ``their''@comma{} ``them''}, and so forth."
msgstr "При написании документации, пожалуйста, используйте нейтральную по гендеру лексику, когда речь идёт о людях, как например, тут @uref{https://en.wikipedia.org/wiki/Singular_they, singular \"they\"@comma{} \"their\"@comma{} \"them\"} и т.д."
#. type: enumerate
#: doc/contributing.texi:993
msgid "Verify that your patch contains only one set of related changes. Bundling unrelated changes together makes reviewing harder and slower."
msgstr "Проверьте, что ваш патч содержит изменения, связанные только с одной темой. Связывая вместе изменения, касающиеся различных тем, делает обзор сложным и медленным."
#. type: enumerate
#: doc/contributing.texi:996
msgid "Examples of unrelated changes include the addition of several packages, or a package update along with fixes to that package."
msgstr "Примеры несвязанных изменений включают, в том числе, добавление некоторых пакетов или обновление пакета вместе с исправлениями в этом пакете."
#. type: enumerate
#: doc/contributing.texi:1001
msgid "Please follow our code formatting rules, possibly running the @command{etc/indent-code.el} script to do that automatically for you (@pxref{Formatting Code})."
msgstr "Пожалуйста, следуйте нашим правилам форматирования кода, по возможности запуская скрипт @command{etc/indent-code.el}, который сделает это автоматически (@pxref{Formatting Code})."
#. type: enumerate
#: doc/contributing.texi:1009
msgid "When possible, use mirrors in the source URL (@pxref{Invoking guix download}). Use reliable URLs, not generated ones. For instance, GitHub archives are not necessarily identical from one generation to the next, so in this case it's often better to clone the repository. Don't use the @command{name} field in the URL: it is not very useful and if the name changes, the URL will probably be wrong."
msgstr "Если это возможно, используйте зеркала при указании URL исходников (@pxref{Invoking guix download}). Используйте надёжные URL'ы, а не сгенерированные. Например, архивы GitHub не являются идентичными между поколениями, так что в этом случае часто лучше клонировать репозиторий. Не используйте поле @command{name} в URL, это не очень удобно: если имя изменится, тогда URL будет неправильным."
#. type: enumerate
#: doc/contributing.texi:1013
msgid "Check if Guix builds (@pxref{Building from Git}) and address the warnings, especially those about use of undefined symbols."
msgstr ""
#. type: enumerate
#: doc/contributing.texi:1016
msgid "Make sure your changes do not break Guix and simulate a @code{guix pull} with:"
msgstr "Убедитесь, что ваши изменения не ломают Guix и имитируйте @code{guix pull} вместе с:"
#. type: example
#: doc/contributing.texi:1018
#, no-wrap
msgid "guix pull --url=/path/to/your/checkout --profile=/tmp/guix.master\n"
msgstr "guix pull --url=/path/to/your/checkout --profile=/tmp/guix.master\n"
#. type: Plain text
#: doc/contributing.texi:1029
msgid "When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as a subject. You may use your email client or the @command{git send-email} command (@pxref{Sending a Patch Series}). We prefer to get patches in plain text messages, either inline or as MIME attachments. You are advised to pay attention if your email client changes anything like line breaks or indentation which could potentially break the patches."
msgstr "Когда отправляете патч в рассылку, используйте @samp{[PATCH] @dots{}} в теме письма. Можно пользоваться почтовым клиентом или командой @command{git send-email} (@pxref{Sending a Patch Series}). Мы предпочитаем получать патчи в виде простых текстовых сообщений внутри текста или отдельным вложением MIME. Рекомендуется уделять внимание вопросу, не изменяет ли почтовый клиент что-либо как символы новой строки или отступы, так как это потенциально может нарушить код патча."
#. type: Plain text
#: doc/contributing.texi:1032
msgid "When a bug is resolved, please close the thread by sending an email to @email{@var{NNN}-done@@debbugs.gnu.org}."
msgstr "Когда баг исправлен, пожалуйста, закройте тему, отправив сообщение на @email{@var{NNN}-done@@debbugs.gnu.org}."
#. type: anchor{#1}
#: doc/contributing.texi:1033 doc/contributing.texi:1035
#, no-wrap
msgid "Sending a Patch Series"
msgstr "Отправка группы патчей"
#. type: cindex
#: doc/contributing.texi:1035
#, no-wrap
msgid "patch series"
msgstr "группы патчей"
#. type: code{#1}
#: doc/contributing.texi:1036
#, no-wrap
msgid "git send-email"
msgstr "git send-email"
#. type: code{#1}
#: doc/contributing.texi:1037
#, no-wrap
msgid "git-send-email"
msgstr "git-send-email"
#. type: Plain text
#: doc/contributing.texi:1047
#, fuzzy
#| msgid "When sending a patch series (e.g., using @code{git send-email}), please first send one message to @email{guix-patches@@gnu.org}, and then send subsequent patches to @email{@var{NNN}@@debbugs.gnu.org} to make sure they are kept together. See @uref{https://debbugs.gnu.org/Advanced.html, the Debbugs documentation} for more information."
msgid "When sending a patch series (e.g., using @code{git send-email}), please first send one message to @email{guix-patches@@gnu.org}, and then send subsequent patches to @email{@var{NNN}@@debbugs.gnu.org} to make sure they are kept together. See @uref{https://debbugs.gnu.org/Advanced.html, the Debbugs documentation} for more information. You can install @command{git send-email} with @command{guix install git:send-email}."
msgstr "При отправке группы патчей (т.е. используя @code{git send-email}), пожалуйста, отправте вачале сообщение на @email{guix-patches@@gnu.org}, и затем отправьте патчи последовательно на @email{@var{NNN}@@debbugs.gnu.org}, чтобы убедиться, что они отправлены вместе. Подробнее --- @uref{https://debbugs.gnu.org/Advanced.html, the Debbugs documentation}."
#. type: cindex
#: doc/contributing.texi:1051
#, no-wrap
msgid "bug reports, tracking"
msgstr "сообщения об ошибке, отслеживание"
#. type: cindex
#: doc/contributing.texi:1052
#, no-wrap
msgid "patch submissions, tracking"
msgstr ""
#. type: cindex
#: doc/contributing.texi:1053
#, no-wrap
msgid "issue tracking"
msgstr "отслеживание заявок об ошибках"
#. type: cindex
#: doc/contributing.texi:1054
#, no-wrap
msgid "Debbugs, issue tracking system"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:1061
msgid "Bug reports and patch submissions are currently tracked using the Debbugs instance at @uref{https://bugs.gnu.org}. Bug reports are filed against the @code{guix} ``package'' (in Debbugs parlance), by sending email to @email{bug-guix@@gnu.org}, while patch submissions are filed against the @code{guix-patches} package by sending email to @email{guix-patches@@gnu.org} (@pxref{Submitting Patches})."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:1064
msgid "A web interface (actually @emph{two} web interfaces!) are available to browse issues:"
msgstr ""
#. type: itemize
#: doc/contributing.texi:1068
#, fuzzy
#| msgid "@url{http://gnupg.org/, GNU libgcrypt};"
msgid "@url{https://bugs.gnu.org/guix} lists bug reports;"
msgstr "@url{http://gnupg.org/, GNU libgcrypt};"
#. type: itemize
#: doc/contributing.texi:1070
msgid "@url{https://bugs.gnu.org/guix-patches} lists patch submissions."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:1080
msgid "You can also access both of these @i{via} the (nicer) @url{https://issues.guix.gnu.org} interface@footnote{The web interface at @url{https://issues.guix.gnu.org} is powered by Mumi, a nice piece of software written in Guile, and you can help! See @url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.}. To view discussions related to issue number @var{n}, go to @indicateurl{https://issues.guix.gnu.org/issue/@var{n}} or @indicateurl{https://bugs.gnu.org/@var{n}}."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:1083
msgid "If you use Emacs, you may find it more convenient to interact with issues using @file{debbugs.el}, which you can install with:"
msgstr "Если вы используете Emacs, вам может быть удобнее взаимодействовать с проблемами при помощи @file {debbugs.el}, который вы можете установить с помощью:"
#. type: example
#: doc/contributing.texi:1086
#, fuzzy, no-wrap
#| msgid "guix install emacs-guix\n"
msgid "guix install emacs-debbugs\n"
msgstr "guix install emacs-guix\n"
#. type: Plain text
#: doc/contributing.texi:1089
msgid "For example, to list all open issues on @code{guix-patches}, hit:"
msgstr "Например, чтбы уввидеть все открытые заявки на @code{guix-patches}, введите:"
#. type: example
#: doc/contributing.texi:1092
#, no-wrap
msgid "@kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y\n"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:1096
#, fuzzy
#| msgid "@xref{Invoking guix pack}, for more info on this handy tool."
msgid "@xref{Top,,, debbugs-ug, Debbugs User Guide}, for more information on this nifty tool!"
msgstr "@xref{Invoking guix pack} для подробной информации об этом полезном инструменте."
#. type: cindex
#: doc/contributing.texi:1100
#, no-wrap
msgid "commit access, for developers"
msgstr "доступ для отправки коммитов, для разработчиков"
#. type: Plain text
#: doc/contributing.texi:1104
msgid "For frequent contributors, having write access to the repository is convenient. When you deem it necessary, consider applying for commit access by following these steps:"
msgstr "Для постоянных участников удобно иметь доступ для записи в хранилище. Когда вы сочтете это необходимым, рассмотрите возможность подачи заявки на коммит, выполнив следующие действия:"
#. type: enumerate
#: doc/contributing.texi:1113
msgid "Find three committers who would vouch for you. You can view the list of committers at @url{https://savannah.gnu.org/project/memberlist.php?group=guix}. Each of them should email a statement to @email{guix-maintainers@@gnu.org} (a private alias for the collective of maintainers), signed with their OpenPGP key."
msgstr ""
#. type: enumerate
#: doc/contributing.texi:1119
msgid "Committers are expected to have had some interactions with you as a contributor and to be able to judge whether you are sufficiently familiar with the project's practices. It is @emph{not} a judgment on the value of your work, so a refusal should rather be interpreted as ``let's try again later''."
msgstr ""
#. type: enumerate
#: doc/contributing.texi:1126
msgid "Send @email{guix-maintainers@@gnu.org} a message stating your intent, listing the three committers who support your application, signed with the OpenPGP key you will use to sign commits, and giving its fingerprint (see below). See @uref{https://emailselfdefense.fsf.org/en/}, for an introduction to public-key cryptography with GnuPG."
msgstr ""
#. type: enumerate
#: doc/contributing.texi:1130
msgid "Maintainers ultimately decide whether to grant you commit access, usually following your referrals' recommendation."
msgstr ""
#. type: enumerate
#: doc/contributing.texi:1136
msgid "If and once you've been given access, please send a message to @email{guix-devel@@gnu.org} to say so, again signed with the OpenPGP key you will use to sign commits (do that before pushing your first commit). That way, everyone can notice and ensure you control that OpenPGP key."
msgstr ""
#. type: enumerate
#: doc/contributing.texi:1142
msgid "Make sure to read the rest of this section and... profit!"
msgstr ""
#. type: quotation
#: doc/contributing.texi:1148
msgid "Maintainers are happy to give commit access to people who have been contributing for some time and have a track record---don't be shy and don't underestimate your work!"
msgstr ""
#. type: quotation
#: doc/contributing.texi:1152
msgid "However, note that the project is working towards a more automated patch review and merging system, which, as a consequence, may lead us to have fewer people with commit access to the main repository. Stay tuned!"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:1157
msgid "If you get commit access, please make sure to follow the policy below (discussions of the policy can take place on @email{guix-devel@@gnu.org})."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:1162
msgid "Non-trivial patches should always be posted to @email{guix-patches@@gnu.org} (trivial patches include fixing typos, etc.). This mailing list fills the patch-tracking database (@pxref{Tracking Bugs and Patches})."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:1171
msgid "For patches that just add a new package, and a simple one, it's OK to commit, if you're confident (which means you successfully built it in a chroot setup, and have done a reasonable copyright and license auditing). Likewise for package upgrades, except upgrades that trigger a lot of rebuilds (for example, upgrading GnuTLS or GLib). We have a mailing list for commit notifications (@email{guix-commits@@gnu.org}), so people can notice. Before pushing your changes, make sure to run @code{git pull --rebase}."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:1177
msgid "All commits that are pushed to the central repository on Savannah must be signed with an OpenPGP key, and the public key should be uploaded to your user account on Savannah and to public key servers, such as @code{keys.openpgp.org}. To configure Git to automatically sign commits, run:"
msgstr ""
#. type: example
#: doc/contributing.texi:1181
#, no-wrap
msgid ""
"git config commit.gpgsign true\n"
"git config user.signingkey CABBA6EA1DC0FF33\n"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:1186
msgid "You can prevent yourself from accidentally pushing unsigned commits to Savannah by using the pre-push Git hook called located at @file{etc/git/pre-push}:"
msgstr ""
#. type: example
#: doc/contributing.texi:1189
#, no-wrap
msgid "cp etc/git/pre-push .git/hooks/pre-push\n"
msgstr "cp etc/git/pre-push .git/hooks/pre-push\n"
#. type: Plain text
#: doc/contributing.texi:1195
msgid "When pushing a commit on behalf of somebody else, please add a @code{Signed-off-by} line at the end of the commit log message---e.g., with @command{git am --signoff}. This improves tracking of who did what."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:1200
msgid "For anything else, please post to @email{guix-patches@@gnu.org} and leave time for a review, without committing anything (@pxref{Submitting Patches}). If you didn’t receive any reply after two weeks, and if you're confident, it's OK to commit."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:1203
msgid "That last part is subject to being adjusted, allowing individuals to commit directly on non-controversial changes on parts they’re familiar with."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:1208
msgid "One last thing: the project keeps moving forward because committers not only push their own awesome changes, but also offer some of their time @emph{reviewing} and pushing other people's changes. As a committer, you're welcome to use your expertise and commit rights to help other contributors, too!"
msgstr "И последнее: проект продолжает двигаться вперед, потому что коммиттеры не только вносят свои собственные потрясающие изменения, но также уделяют свое время на @emph{reviewing} и продвижение изменений других людей. Как коммиттер, вы можете использовать свой опыт и передавать права, чтобы помочь и другим участникам!"
#. type: Plain text
#: doc/guix.texi:7
msgid "@documentencoding UTF-8"
msgstr ""
"@documentencoding UTF-8\n"
"@documentlanguage ru\n"
"@frenchspacing on"
#. type: title
#: doc/guix.texi:7 doc/guix.texi:103
#, no-wrap
msgid "GNU Guix Reference Manual"
msgstr "Руководство GNU Guix"
#. type: include
#: doc/guix.texi:10
#, no-wrap
msgid "version.texi"
msgstr "version-ru.texi"
#. type: copying
#: doc/guix.texi:76
#, fuzzy
#| msgid "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018 Clément Lassieur@* Copyright @copyright{} 2017, 2018 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018 Marius Bakke@* Copyright @copyright{} 2017 Hartmut Goebel@* Copyright @copyright{} 2017 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018 Gábor Boskovits@* Copyright @copyright{} 2018 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@*"
msgid "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017, 2019 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* Copyright @copyright{} 2017, 2018 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018, 2019 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@* Copyright @copyright{} 2017, 2019, 2020 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* Copyright @copyright{} 2018, 2019 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019 Diego Nicola Barbato@* Copyright @copyright{} 2019 Ivan Petkov@* Copyright @copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle Andrews@* Copyright @copyright{} 2019 Alex Griffin@* Copyright @copyright{} 2019 Guillaume Le Vaillant@* Copyright @copyright{} 2020 Leo Prikler@* Copyright @copyright{} 2019, 2020 Simon Tournier@* Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@*"
msgstr "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018 Clément Lassieur@* Copyright @copyright{} 2017, 2018 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018 Marius Bakke@* Copyright @copyright{} 2017 Hartmut Goebel@* Copyright @copyright{} 2017 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018 Gábor Boskovits@* Copyright @copyright{} 2018 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@*"
#. type: copying
#: doc/guix.texi:83
msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''."
msgstr "Разрешено копирование, распространение и/или модификация этого документа на условиях лицензии свободной документации GNU (GNU FDL) версии 1.3 или любой более поздней версии, опубликованной Фондом свободного программного обеспечения (FSF), исключая неизменяемые секции, исключая тексты, размещенные на переплёте и задней стороне обложки. Копия лицензии включена в документ в разделе под названием \"GNU Free Documentation Licens\"."
#. type: dircategory
#: doc/guix.texi:85
#, no-wrap
msgid "System administration"
msgstr "Администрирование системы"
#. type: menuentry
#: doc/guix.texi:93
msgid "Guix: (guix)"
msgstr "Guix: (guix)"
#. type: menuentry
#: doc/guix.texi:93
msgid "Manage installed software and system configuration."
msgstr "Управление установленным проаграммным обеспеченем и конфигурирование системы."
#. type: menuentry
#: doc/guix.texi:93
msgid "guix package: (guix)Invoking guix package"
msgstr "guix package: (guix)Вызов guix package"
#. type: menuentry
#: doc/guix.texi:93
msgid "Installing, removing, and upgrading packages."
msgstr "Установка, удаление и обновление пакетов."
#. type: menuentry
#: doc/guix.texi:93
msgid "guix gc: (guix)Invoking guix gc"
msgstr "guix gc: (guix)Вызов guix gc"
#. type: menuentry
#: doc/guix.texi:93
msgid "Reclaiming unused disk space."
msgstr "Восстановление неиспользуемого места на диске."
#. type: menuentry
#: doc/guix.texi:93
msgid "guix pull: (guix)Invoking guix pull"
msgstr "guix pull: (guix)Вызов guix pull"
#. type: menuentry
#: doc/guix.texi:93
msgid "Update the list of available packages."
msgstr "Обновление списка доступных пакетов."
#. type: menuentry
#: doc/guix.texi:93
msgid "guix system: (guix)Invoking guix system"
msgstr "guix system: (guix)Вызов guix system"
#. type: menuentry
#: doc/guix.texi:93
msgid "Manage the operating system configuration."
msgstr "Управление конфигурацией операционной системы."
#. type: menuentry
#: doc/guix.texi:93
#, fuzzy
#| msgid "guix pull: (guix)Invoking guix pull"
msgid "guix deploy: (guix)Invoking guix deploy"
msgstr "guix pull: (guix)Вызов guix pull"
#. type: menuentry
#: doc/guix.texi:93
#, fuzzy
#| msgid "Manage the operating system configuration."
msgid "Manage operating system configurations for remote hosts."
msgstr "Управление конфигурацией операционной системы."
#. type: dircategory
#: doc/guix.texi:95
#, no-wrap
msgid "Software development"
msgstr "Разработка программного обеспечения"
#. type: menuentry
#: doc/guix.texi:100
msgid "guix environment: (guix)Invoking guix environment"
msgstr "guix environment: (guix)Вызов guix environment"
#. type: menuentry
#: doc/guix.texi:100
msgid "Building development environments with Guix."
msgstr "Сборка окружения для разработки с помощью Guix."
#. type: menuentry
#: doc/guix.texi:100
msgid "guix build: (guix)Invoking guix build"
msgstr "guix build: (guix)Вызов guix build"
#. type: menuentry
#: doc/guix.texi:100
msgid "Building packages."
msgstr "Сборка пакетов."
#. type: menuentry
#: doc/guix.texi:100
msgid "guix pack: (guix)Invoking guix pack"
msgstr "guix pack: (guix)Вызов guix pack"
#. type: menuentry
#: doc/guix.texi:100
msgid "Creating binary bundles."
msgstr "Создание бинарных пакетов"
#. type: subtitle
#: doc/guix.texi:104
#, no-wrap
msgid "Using the GNU Guix Functional Package Manager"
msgstr "Использование функционального пакетного менеджера GNU Guix"
#. type: author
#: doc/guix.texi:105
#, no-wrap
msgid "The GNU Guix Developers"
msgstr "Разработчики GNU Guix"
#. type: titlepage
#: doc/guix.texi:111
msgid "Edition @value{EDITION} @* @value{UPDATED} @*"
msgstr "Ревизия @value{EDITION} @* @value{UPDATED} @*"
#. type: node
#: doc/guix.texi:118
#, no-wrap
msgid "Top"
msgstr "Top"
#. type: top
#: doc/guix.texi:119
#, no-wrap
msgid "GNU Guix"
msgstr "GNU Guix"
#. type: Plain text
#: doc/guix.texi:123
msgid "This document describes GNU Guix version @value{VERSION}, a functional package management tool written for the GNU system."
msgstr "Этот документ описывает GNU Guix версии @value{VERSION}, пакетный менеджер, написанный для системы GNU."
#. type: Plain text
#: doc/guix.texi:135
#, fuzzy
#| msgid "This manual is also available in Simplified Chinese (@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}), French (@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix}), German (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}), and Spanish (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}). If you would like to translate it in your native language, consider joining the @uref{https://translationproject.org/domain/guix-manual.html, Translation Project}."
msgid "This manual is also available in Simplified Chinese (@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}), French (@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix}), German (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}), Spanish (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}), and Russian (@pxref{Top,,, guix.ru, Руководство GNU Guix}). If you would like to translate it in your native language, consider joining the @uref{https://translationproject.org/domain/guix-manual.html, Translation Project}."
msgstr "Это руководство доступно также на упрощённом китайском (@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}), французском (@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix}), немецком (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}) и испанском (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}). Если вы хотите перевести его на ваш родной язык, присоединяйтесь к @uref{https://translationproject.org/domain/guix-manual.html, Translation Project}."
#. type: chapter
#: doc/guix.texi:151 doc/guix.texi:161 doc/guix.texi:328 doc/guix.texi:329
#, no-wrap
msgid "Introduction"
msgstr "Введение"
#. type: menuentry
#: doc/guix.texi:151
msgid "What is Guix about?"
msgstr "Что такое Guix?"
#. type: chapter
#: doc/guix.texi:151 doc/guix.texi:166 doc/guix.texi:487 doc/guix.texi:488
#, no-wrap
msgid "Installation"
msgstr "Установка"
#. type: menuentry
#: doc/guix.texi:151
msgid "Installing Guix."
msgstr "Установка Guix."
#. type: chapter
#: doc/guix.texi:151 doc/guix.texi:181 doc/guix.texi:1812 doc/guix.texi:1813
#, no-wrap
msgid "System Installation"
msgstr "Установка системы"
#. type: menuentry
#: doc/guix.texi:151
msgid "Installing the whole operating system."
msgstr "Полная установка операционной системы."
#. type: chapter
#: doc/guix.texi:151 doc/guix.texi:198 doc/guix.texi:2533 doc/guix.texi:2534
#, no-wrap
msgid "Package Management"
msgstr "Управление пакетами"
#. type: menuentry
#: doc/guix.texi:151
msgid "Package installation, upgrade, etc."
msgstr "Установка пакетов, обновление и т.д."
#. type: chapter
#: doc/guix.texi:151 doc/guix.texi:221 doc/guix.texi:4627 doc/guix.texi:4628
#, no-wrap
msgid "Development"
msgstr "Разработка"
#. type: menuentry
#: doc/guix.texi:151
msgid "Guix-aided software development."
msgstr "Разработка программного обеспечения при поддержке Guix."
#. type: chapter
#: doc/guix.texi:151 doc/guix.texi:226 doc/guix.texi:5320 doc/guix.texi:5321
#, no-wrap
msgid "Programming Interface"
msgstr "Программный интерфейс"
#. type: menuentry
#: doc/guix.texi:151
msgid "Using Guix in Scheme."
msgstr "Использование Guix в Scheme."
#. type: chapter
#: doc/guix.texi:151 doc/guix.texi:242 doc/guix.texi:8048 doc/guix.texi:8049
#, no-wrap
msgid "Utilities"
msgstr "Утилиты"
#. type: menuentry
#: doc/guix.texi:151
msgid "Package management commands."
msgstr "Команды управления пакетами."
#. type: chapter
#: doc/guix.texi:151 doc/guix.texi:267 doc/guix.texi:10835 doc/guix.texi:10836
#, no-wrap
msgid "System Configuration"
msgstr "Конфигурирование системы"
#. type: menuentry
#: doc/guix.texi:151
msgid "Configuring the operating system."
msgstr "Конфигурирование операционной системы."
#. type: chapter
#: doc/guix.texi:151 doc/guix.texi:27696 doc/guix.texi:27697
#, no-wrap
msgid "Documentation"
msgstr "Документация"
#. type: menuentry
#: doc/guix.texi:151
msgid "Browsing software user manuals."
msgstr "Программы обзора пользовательских мануалов."
#. type: chapter
#: doc/guix.texi:151 doc/guix.texi:27760 doc/guix.texi:27761
#, no-wrap
msgid "Installing Debugging Files"
msgstr "Установка файлов отладки"
#. type: menuentry
#: doc/guix.texi:151
msgid "Feeding the debugger."
msgstr "Запуск отладчика."
#. type: chapter
#: doc/guix.texi:151 doc/guix.texi:27826 doc/guix.texi:27827
#, no-wrap
msgid "Security Updates"
msgstr "Обновления безопасности"
#. type: menuentry
#: doc/guix.texi:151
msgid "Deploying security fixes quickly."
msgstr "Быстрое применение исправлений безопасности."
#. type: chapter
#: doc/guix.texi:151 doc/guix.texi:27941 doc/guix.texi:27942
#, no-wrap
msgid "Bootstrapping"
msgstr "Начальная загрузка"
#. type: menuentry
#: doc/guix.texi:151
msgid "GNU/Linux built from scratch."
msgstr "Сборка GNU/Linux с нуля."
#. type: node
#: doc/guix.texi:151 doc/guix.texi:28219
#, no-wrap
msgid "Porting"
msgstr "Портирование"
#. type: menuentry
#: doc/guix.texi:151
msgid "Targeting another platform or kernel."
msgstr "Перевод на другую платформу или ядро."
#. type: menuentry
#: doc/guix.texi:151
msgid "Your help needed!"
msgstr "Нужна ваша помощь!"
#. type: chapter
#: doc/guix.texi:156 doc/guix.texi:28267 doc/guix.texi:28268
#, no-wrap
msgid "Acknowledgments"
msgstr "Благодарности"
#. type: menuentry
#: doc/guix.texi:156
msgid "Thanks!"
msgstr "Спасибо"
#. type: appendix
#: doc/guix.texi:156 doc/guix.texi:28289 doc/guix.texi:28290
#, no-wrap
msgid "GNU Free Documentation License"
msgstr "Лицензия свободной документации GNU"
#. type: menuentry
#: doc/guix.texi:156
msgid "The license of this manual."
msgstr "Лицензия этого руководства."
#. type: unnumbered
#: doc/guix.texi:156 doc/guix.texi:28295 doc/guix.texi:28296
#, no-wrap
msgid "Concept Index"
msgstr "Термины и указатели"
#. type: menuentry
#: doc/guix.texi:156
msgid "Concepts."
msgstr "Понятия."
#. type: unnumbered
#: doc/guix.texi:156 doc/guix.texi:28299 doc/guix.texi:28300
#, no-wrap
msgid "Programming Index"
msgstr "Программный индекс"
#. type: menuentry
#: doc/guix.texi:156
msgid "Data types, functions, and variables."
msgstr "Структуры данных, функции и переменные."
#. type: menuentry
#: doc/guix.texi:159
msgid "--- The Detailed Node Listing ---"
msgstr "--- Детальный список записей ---"
#. type: section
#: doc/guix.texi:164 doc/guix.texi:355 doc/guix.texi:357 doc/guix.texi:358
#, no-wrap
msgid "Managing Software the Guix Way"
msgstr "Управление программным обеспечением Guix Way"
#. type: menuentry
#: doc/guix.texi:164 doc/guix.texi:355
msgid "What's special."
msgstr "В чём особенности?"
#. type: section
#: doc/guix.texi:164 doc/guix.texi:355 doc/guix.texi:412 doc/guix.texi:413
#, no-wrap
msgid "GNU Distribution"
msgstr "Дистрибутив GNU"
#. type: menuentry
#: doc/guix.texi:164 doc/guix.texi:355
msgid "The packages and tools."
msgstr "Пакеты и утилиты."
#. type: section
#: doc/guix.texi:173 doc/guix.texi:527 doc/guix.texi:529 doc/guix.texi:530
#, no-wrap
msgid "Binary Installation"
msgstr "Бинарная установка"
#. type: menuentry
#: doc/guix.texi:173 doc/guix.texi:527
msgid "Getting Guix running in no time!"
msgstr "Запустить Guix в кратчайшие сроки!"
#. type: section
#: doc/guix.texi:173 doc/guix.texi:527 doc/guix.texi:735 doc/guix.texi:736
#, no-wrap
msgid "Requirements"
msgstr "Требования"
#. type: menuentry
#: doc/guix.texi:173 doc/guix.texi:527
msgid "Software needed to build and run Guix."
msgstr "Программное обеспечение, необходимое для запуска Guix."
#. type: section
#: doc/guix.texi:173 doc/guix.texi:527 doc/guix.texi:810 doc/guix.texi:811
#, no-wrap
msgid "Running the Test Suite"
msgstr "Запуск набора тестов"
#. type: menuentry
#: doc/guix.texi:173 doc/guix.texi:527
msgid "Testing Guix."
msgstr "Тестирование Guix."
#. type: section
#: doc/guix.texi:173 doc/guix.texi:175 doc/guix.texi:527 doc/guix.texi:875
#: doc/guix.texi:876
#, no-wrap
msgid "Setting Up the Daemon"
msgstr "Настройка демона"
#. type: menuentry
#: doc/guix.texi:173 doc/guix.texi:527
msgid "Preparing the build daemon's environment."
msgstr "Подготовка окружения демона сборки."
#. type: node
#: doc/guix.texi:173 doc/guix.texi:527 doc/guix.texi:1306
#, no-wrap
msgid "Invoking guix-daemon"
msgstr "Вызов guix-daemon"
#. type: menuentry
#: doc/guix.texi:173 doc/guix.texi:527
msgid "Running the build daemon."
msgstr "Запуск демона сборки."
#. type: section
#: doc/guix.texi:173 doc/guix.texi:527 doc/guix.texi:1572 doc/guix.texi:1573
#, no-wrap
msgid "Application Setup"
msgstr "Установка приложения"
#. type: menuentry
#: doc/guix.texi:173 doc/guix.texi:527
msgid "Application-specific setup."
msgstr "Установка в качестве приожения."
#. type: subsection
#: doc/guix.texi:179 doc/guix.texi:895 doc/guix.texi:897 doc/guix.texi:898
#, no-wrap
msgid "Build Environment Setup"
msgstr "Установка окружения сборки"
#. type: menuentry
#: doc/guix.texi:179 doc/guix.texi:895
msgid "Preparing the isolated build environment."
msgstr "Подготовка отдельного окружения сборки."
#. type: node
#: doc/guix.texi:179 doc/guix.texi:895 doc/guix.texi:1014
#, no-wrap
msgid "Daemon Offload Setup"
msgstr "Установка демона разгрузки"
#. type: menuentry
#: doc/guix.texi:179 doc/guix.texi:895
msgid "Offloading builds to remote machines."
msgstr "Разгрузка сборок по удалённым машинам."
#. type: subsection
#: doc/guix.texi:179 doc/guix.texi:895 doc/guix.texi:1220 doc/guix.texi:1221
#, no-wrap
msgid "SELinux Support"
msgstr "Поддержка SELinux"
#. type: menuentry
#: doc/guix.texi:179 doc/guix.texi:895
msgid "Using an SELinux policy for the daemon."
msgstr "Использование политики SELinux для демона."
#. type: section
#: doc/guix.texi:191 doc/guix.texi:1256 doc/guix.texi:1846 doc/guix.texi:1848
#: doc/guix.texi:1849
#, no-wrap
msgid "Limitations"
msgstr "Ограничения"
#. type: menuentry
#: doc/guix.texi:191 doc/guix.texi:1846
msgid "What you can expect."
msgstr "Что нужно учитывать."
#. type: section
#: doc/guix.texi:191 doc/guix.texi:1846 doc/guix.texi:1877 doc/guix.texi:1878
#, no-wrap
msgid "Hardware Considerations"
msgstr "По поводу железа"
#. type: menuentry
#: doc/guix.texi:191 doc/guix.texi:1846
msgid "Supported hardware."
msgstr "Поддерживаемое аппаратное обеспечение."
#. type: section
#: doc/guix.texi:191 doc/guix.texi:1846 doc/guix.texi:1912 doc/guix.texi:1913
#, no-wrap
msgid "USB Stick and DVD Installation"
msgstr "Установочная флеш и DVD"
#. type: menuentry
#: doc/guix.texi:191 doc/guix.texi:1846
msgid "Preparing the installation medium."
msgstr "Подготовка установочного носителя."
#. type: section
#: doc/guix.texi:191 doc/guix.texi:1846 doc/guix.texi:2017 doc/guix.texi:2018
#, no-wrap
msgid "Preparing for Installation"
msgstr "Подготовка к установке"
#. type: menuentry
#: doc/guix.texi:191 doc/guix.texi:1846
msgid "Networking, partitioning, etc."
msgstr "Сеть, разметка диска и т.д."
#. type: section
#: doc/guix.texi:191 doc/guix.texi:1846 doc/guix.texi:2040 doc/guix.texi:2041
#, no-wrap
msgid "Guided Graphical Installation"
msgstr "Графическая установка в GUI"
#. type: menuentry
#: doc/guix.texi:191 doc/guix.texi:1846
msgid "Easy graphical installation."
msgstr "Простая графическая установка."
#. type: section
#: doc/guix.texi:191 doc/guix.texi:193 doc/guix.texi:1846 doc/guix.texi:2071
#: doc/guix.texi:2072
#, no-wrap
msgid "Manual Installation"
msgstr "Ручная установка"
#. type: menuentry
#: doc/guix.texi:191 doc/guix.texi:1846
msgid "Manual installation for wizards."
msgstr "Ручная установка для магов."
#. type: section
#: doc/guix.texi:191 doc/guix.texi:1846 doc/guix.texi:2421 doc/guix.texi:2422
#, no-wrap
msgid "After System Installation"
msgstr "После установки системы"
#. type: menuentry
#: doc/guix.texi:191 doc/guix.texi:1846
msgid "When installation succeeded."
msgstr "Когда установка завершилась успешно."
#. type: node
#: doc/guix.texi:191 doc/guix.texi:1846 doc/guix.texi:2449
#, no-wrap
msgid "Installing Guix in a VM"
msgstr "Установка Guix на виртуальную машину"
#. type: menuentry
#: doc/guix.texi:191 doc/guix.texi:1846
msgid "Guix System playground."
msgstr "Площадка системы Guix"
#. type: section
#: doc/guix.texi:191 doc/guix.texi:1846 doc/guix.texi:2500 doc/guix.texi:2501
#, no-wrap
msgid "Building the Installation Image"
msgstr "Сборка установочного образа"
#. type: menuentry
#: doc/guix.texi:191 doc/guix.texi:1846
msgid "How this comes to be."
msgstr "Как это происходит."
#. type: node
#: doc/guix.texi:196 doc/guix.texi:2089 doc/guix.texi:2091
#, no-wrap
msgid "Keyboard Layout and Networking and Partitioning"
msgstr "Раскладка клавиатуры и работа с сетью и разбиение диска"
#. type: menuentry
#: doc/guix.texi:196 doc/guix.texi:2089
msgid "Initial setup."
msgstr "Начальная установка."
#. type: subsection
#: doc/guix.texi:196 doc/guix.texi:2089 doc/guix.texi:2333 doc/guix.texi:2334
#, no-wrap
msgid "Proceeding with the Installation"
msgstr "В продолжении установки"
#. type: menuentry
#: doc/guix.texi:196 doc/guix.texi:2089
msgid "Installing."
msgstr "Установка."
#. type: section
#: doc/guix.texi:210 doc/guix.texi:2566 doc/guix.texi:2568 doc/guix.texi:2569
#, no-wrap
msgid "Features"
msgstr "Особенности"
#. type: menuentry
#: doc/guix.texi:210 doc/guix.texi:2566
msgid "How Guix will make your life brighter."
msgstr "Как Guix делает жизнь ярче."
#. type: node
#: doc/guix.texi:210 doc/guix.texi:2566 doc/guix.texi:2654
#, no-wrap
msgid "Invoking guix package"
msgstr "Вызов guix package"
#. type: menuentry
#: doc/guix.texi:210 doc/guix.texi:2566
msgid "Package installation, removal, etc."
msgstr "Установка пакетов, удаление и т.д."
#. type: section
#: doc/guix.texi:210 doc/guix.texi:212 doc/guix.texi:2566 doc/guix.texi:3190
#: doc/guix.texi:3191
#, no-wrap
msgid "Substitutes"
msgstr "Подстановки"
#. type: menuentry
#: doc/guix.texi:210 doc/guix.texi:2566
msgid "Downloading pre-built binaries."
msgstr "Скачивание собранных бинарников."
#. type: section
#: doc/guix.texi:210 doc/guix.texi:2566 doc/guix.texi:3413 doc/guix.texi:3414
#, no-wrap
msgid "Packages with Multiple Outputs"
msgstr "Пакеты со множественным выходом"
#. type: menuentry
#: doc/guix.texi:210 doc/guix.texi:2566
msgid "Single source package, multiple outputs."
msgstr "Один исходный пакет, различные выходы."
#. type: node
#: doc/guix.texi:210 doc/guix.texi:2566 doc/guix.texi:3467
#, no-wrap
msgid "Invoking guix gc"
msgstr "Вызов guix gc"
#. type: menuentry
#: doc/guix.texi:210 doc/guix.texi:2566
msgid "Running the garbage collector."
msgstr "Запуск сборщика мусора."
#. type: node
#: doc/guix.texi:210 doc/guix.texi:2566 doc/guix.texi:3677
#, no-wrap
msgid "Invoking guix pull"
msgstr "Запуск guix pull"
#. type: menuentry
#: doc/guix.texi:210 doc/guix.texi:2566
msgid "Fetching the latest Guix and distribution."
msgstr "Закачка последнего Guix и дистрибуции."
#. type: section
#: doc/guix.texi:210 doc/guix.texi:2566 doc/guix.texi:3894 doc/guix.texi:3895
#, no-wrap
msgid "Channels"
msgstr "Каналы"
#. type: menuentry
#: doc/guix.texi:210 doc/guix.texi:2566
msgid "Customizing the package collection."
msgstr "Настройка коллекции пакетов."
#. type: node
#: doc/guix.texi:210 doc/guix.texi:2566 doc/guix.texi:4185
#, fuzzy, no-wrap
#| msgid "Invoking guix archive"
msgid "Invoking guix time-machine"
msgstr "Вызов guix archive"
#. type: menuentry
#: doc/guix.texi:210 doc/guix.texi:2566
#, fuzzy
#| msgid "Interacting with another revision of Guix."
msgid "Running an older revision of Guix."
msgstr "Взаимодействие с другими ревизиями Guix."
#. type: section
#: doc/guix.texi:210 doc/guix.texi:2566 doc/guix.texi:4240 doc/guix.texi:4241
#, no-wrap
msgid "Inferiors"
msgstr "Младшие версии"
#. type: menuentry
#: doc/guix.texi:210 doc/guix.texi:2566
msgid "Interacting with another revision of Guix."
msgstr "Взаимодействие с другими ревизиями Guix."
#. type: node
#: doc/guix.texi:210 doc/guix.texi:2566 doc/guix.texi:4368
#, no-wrap
msgid "Invoking guix describe"
msgstr "Вызов guix describe"
#. type: menuentry
#: doc/guix.texi:210 doc/guix.texi:2566
msgid "Display information about your Guix revision."
msgstr "Отобразить информацию о ревизии Guix."
#. type: node
#: doc/guix.texi:210 doc/guix.texi:2566 doc/guix.texi:4449
#, no-wrap
msgid "Invoking guix archive"
msgstr "Вызов guix archive"
#. type: menuentry
#: doc/guix.texi:210 doc/guix.texi:2566
msgid "Exporting and importing store files."
msgstr "Экспорт и импорт файлов склада."
#. type: subsection
#: doc/guix.texi:219 doc/guix.texi:3213 doc/guix.texi:3215 doc/guix.texi:3216
#, no-wrap
msgid "Official Substitute Server"
msgstr "Официальный сервер подстановок"
#. type: menuentry
#: doc/guix.texi:219 doc/guix.texi:3213
msgid "One particular source of substitutes."
msgstr "Отдельный источник подстановок."
#. type: subsection
#: doc/guix.texi:219 doc/guix.texi:3213 doc/guix.texi:3244 doc/guix.texi:3245
#, no-wrap
msgid "Substitute Server Authorization"
msgstr "Авторизация сервера подстановок"
#. type: menuentry
#: doc/guix.texi:219 doc/guix.texi:3213
msgid "How to enable or disable substitutes."
msgstr "Как включить или отключить подстановки."
#. type: subsection
#: doc/guix.texi:219 doc/guix.texi:3213 doc/guix.texi:3308 doc/guix.texi:3309
#, no-wrap
msgid "Substitute Authentication"
msgstr "Аутентификация подстановок"
#. type: menuentry
#: doc/guix.texi:219 doc/guix.texi:3213
msgid "How Guix verifies substitutes."
msgstr "Как Guix проверяет подстановки."
#. type: subsection
#: doc/guix.texi:219 doc/guix.texi:3213 doc/guix.texi:3343 doc/guix.texi:3344
#, no-wrap
msgid "Proxy Settings"
msgstr "Настройки proxy"
#. type: menuentry
#: doc/guix.texi:219 doc/guix.texi:3213
msgid "How to get substitutes via proxy."
msgstr "Как получить подстановки через proxy."
#. type: subsection
#: doc/guix.texi:219 doc/guix.texi:3213 doc/guix.texi:3355 doc/guix.texi:3356
#, no-wrap
msgid "Substitution Failure"
msgstr "Ошибки при подстановке"
#. type: menuentry
#: doc/guix.texi:219 doc/guix.texi:3213
msgid "What happens when substitution fails."
msgstr "Что происходит, когда подстановка завершается ошибкой."
#. type: subsection
#: doc/guix.texi:219 doc/guix.texi:3213 doc/guix.texi:3383 doc/guix.texi:3384
#, no-wrap
msgid "On Trusting Binaries"
msgstr "Касатеьно проверенных бинарников"
#. type: menuentry
#: doc/guix.texi:219 doc/guix.texi:3213
msgid "How can you trust that binary blob?"
msgstr "Как можно доверять определённому бинарному блоку?"
#. type: node
#: doc/guix.texi:224 doc/guix.texi:4644 doc/guix.texi:4646
#, no-wrap
msgid "Invoking guix environment"
msgstr "Вызов guix environment"
#. type: menuentry
#: doc/guix.texi:224 doc/guix.texi:4644
msgid "Setting up development environments."
msgstr "Установка окружения сборки."
#. type: node
#: doc/guix.texi:224 doc/guix.texi:4644 doc/guix.texi:4994
#, no-wrap
msgid "Invoking guix pack"
msgstr "Вызов guix pack"
#. type: menuentry
#: doc/guix.texi:224 doc/guix.texi:4644
msgid "Creating software bundles."
msgstr "Создание наборов программ"
#. type: section
#: doc/guix.texi:235 doc/guix.texi:5357 doc/guix.texi:5359 doc/guix.texi:5360
#, no-wrap
msgid "Package Modules"
msgstr "Пакетные модули"
#. type: menuentry
#: doc/guix.texi:235 doc/guix.texi:5357
msgid "Packages from the programmer's viewpoint."
msgstr "Пакеты с точки зрения программиста."
#. type: section
#: doc/guix.texi:235 doc/guix.texi:237 doc/guix.texi:5357 doc/guix.texi:5421
#: doc/guix.texi:5422
#, no-wrap
msgid "Defining Packages"
msgstr "Описание пакетов"
#. type: menuentry
#: doc/guix.texi:235 doc/guix.texi:5357
msgid "Defining new packages."
msgstr "Описание новых пакетов."
#. type: section
#: doc/guix.texi:235 doc/guix.texi:5357 doc/guix.texi:5921 doc/guix.texi:5922
#, no-wrap
msgid "Build Systems"
msgstr "Системы сборки"
#. type: menuentry
#: doc/guix.texi:235 doc/guix.texi:5357
msgid "Specifying how packages are built."
msgstr "Задание параметров сборки пакетов."
#. type: section
#: doc/guix.texi:235 doc/guix.texi:5357 doc/guix.texi:6744 doc/guix.texi:6745
#, no-wrap
msgid "The Store"
msgstr "Склад"
#. type: menuentry
#: doc/guix.texi:235 doc/guix.texi:5357
msgid "Manipulating the package store."
msgstr "Управление пакетами на складе."
#. type: section
#: doc/guix.texi:235 doc/guix.texi:5357 doc/guix.texi:6895 doc/guix.texi:6896
#, no-wrap
msgid "Derivations"
msgstr "Деривации"
#. type: menuentry
#: doc/guix.texi:235 doc/guix.texi:5357
msgid "Low-level interface to package derivations."
msgstr "Низкоуровневый интерфейс дериваций пакетов."
#. type: section
#: doc/guix.texi:235 doc/guix.texi:5357 doc/guix.texi:7089 doc/guix.texi:7090
#, no-wrap
msgid "The Store Monad"
msgstr "Устройство склада"
#. type: menuentry
#: doc/guix.texi:235 doc/guix.texi:5357
msgid "Purely functional interface to the store."
msgstr "Чисто функциональный интерфейс доступа к складу."
#. type: section
#: doc/guix.texi:235 doc/guix.texi:5357 doc/guix.texi:7404 doc/guix.texi:7405
#, no-wrap
msgid "G-Expressions"
msgstr "G-Expressions"
#. type: menuentry
#: doc/guix.texi:235 doc/guix.texi:5357
msgid "Manipulating build expressions."
msgstr "Управление механизмом сборки."
#. type: node
#: doc/guix.texi:235 doc/guix.texi:5357 doc/guix.texi:7983
#, no-wrap
msgid "Invoking guix repl"
msgstr "Вызов guix repl"
#. type: menuentry
#: doc/guix.texi:235 doc/guix.texi:5357
msgid "Fiddling with Guix interactively."
msgstr "Интерактивное общение с Guix"
#. type: node
#: doc/guix.texi:240 doc/guix.texi:5689 doc/guix.texi:5692
#, no-wrap
msgid "package Reference"
msgstr "Интерфейс package"
#. type: menuentry
#: doc/guix.texi:240 doc/guix.texi:5689
msgid "The package data type."
msgstr "Тип данных пакет"
#. type: node
#: doc/guix.texi:240 doc/guix.texi:5689 doc/guix.texi:5833
#, no-wrap
msgid "origin Reference"
msgstr "интерфейс origin"
#. type: menuentry
#: doc/guix.texi:240 doc/guix.texi:5689
msgid "The origin data type."
msgstr "Тип данных источник."
#. type: node
#: doc/guix.texi:258 doc/guix.texi:8072 doc/guix.texi:8074
#, no-wrap
msgid "Invoking guix build"
msgstr "Вызов guix build"
#. type: menuentry
#: doc/guix.texi:258 doc/guix.texi:8072
msgid "Building packages from the command line."
msgstr "Сборка пакетов в командной строке."
#. type: node
#: doc/guix.texi:258 doc/guix.texi:8072 doc/guix.texi:8730
#, no-wrap
msgid "Invoking guix edit"
msgstr "Вызов guix edit"
#. type: menuentry
#: doc/guix.texi:258 doc/guix.texi:8072
msgid "Editing package definitions."
msgstr "Редактирование описания пакета."
#. type: node
#: doc/guix.texi:258 doc/guix.texi:8072 doc/guix.texi:8760
#, no-wrap
msgid "Invoking guix download"
msgstr "Вызов guix download"
#. type: menuentry
#: doc/guix.texi:258 doc/guix.texi:8072
msgid "Downloading a file and printing its hash."
msgstr "Скачивание файла и печать его хеша."
#. type: node
#: doc/guix.texi:258 doc/guix.texi:8072 doc/guix.texi:8813
#, no-wrap
msgid "Invoking guix hash"
msgstr "Вызов guix hash"
#. type: menuentry
#: doc/guix.texi:258 doc/guix.texi:8072
msgid "Computing the cryptographic hash of a file."
msgstr "Вычисление криптографического хеша файла."
#. type: node
#: doc/guix.texi:258 doc/guix.texi:8072 doc/guix.texi:8875
#, no-wrap
msgid "Invoking guix import"
msgstr "Вызов guix import"
#. type: menuentry
#: doc/guix.texi:258 doc/guix.texi:8072
msgid "Importing package definitions."
msgstr "Импорт описаниий пакетов."
#. type: node
#: doc/guix.texi:258 doc/guix.texi:8072 doc/guix.texi:9306
#, no-wrap
msgid "Invoking guix refresh"
msgstr "Вызов guix refresh"
#. type: menuentry
#: doc/guix.texi:258 doc/guix.texi:8072
msgid "Updating package definitions."
msgstr "Обновление описаний пакетов."
#. type: node
#: doc/guix.texi:258 doc/guix.texi:8072 doc/guix.texi:9627
#, no-wrap
msgid "Invoking guix lint"
msgstr "Вызов guix lint"
#. type: menuentry
#: doc/guix.texi:258 doc/guix.texi:8072
msgid "Finding errors in package definitions."
msgstr "Поиск ошибок в описаниях пакетов."
#. type: node
#: doc/guix.texi:258 doc/guix.texi:8072 doc/guix.texi:9776
#, no-wrap
msgid "Invoking guix size"
msgstr "Вызов guix size"
#. type: menuentry
#: doc/guix.texi:258 doc/guix.texi:8072
msgid "Profiling disk usage."
msgstr "Обзор использования диска."
#. type: node
#: doc/guix.texi:258 doc/guix.texi:8072 doc/guix.texi:9907
#, no-wrap
msgid "Invoking guix graph"
msgstr "Вызов guix graph"
#. type: menuentry
#: doc/guix.texi:258 doc/guix.texi:8072
msgid "Visualizing the graph of packages."
msgstr "Визуализация графа пакета."
#. type: node
#: doc/guix.texi:258 doc/guix.texi:8072 doc/guix.texi:10129
#, no-wrap
msgid "Invoking guix publish"
msgstr "Вызов guix publish"
#. type: menuentry
#: doc/guix.texi:258 doc/guix.texi:8072
msgid "Sharing substitutes."
msgstr "Совместное использование подстановок."
#. type: node
#: doc/guix.texi:258 doc/guix.texi:8072 doc/guix.texi:10359
#, no-wrap
msgid "Invoking guix challenge"
msgstr "Вызов guix challenge"
#. type: menuentry
#: doc/guix.texi:258 doc/guix.texi:8072
msgid "Challenging substitute servers."
msgstr "Соперничающие серверы подстановок."
#. type: node
#: doc/guix.texi:258 doc/guix.texi:8072 doc/guix.texi:10542
#, no-wrap
msgid "Invoking guix copy"
msgstr "Вызов guix copy"
#. type: menuentry
#: doc/guix.texi:258 doc/guix.texi:8072
msgid "Copying to and from a remote store."
msgstr "Копирование из и в удалённый склад."
#. type: node
#: doc/guix.texi:258 doc/guix.texi:8072 doc/guix.texi:10605
#, no-wrap
msgid "Invoking guix container"
msgstr "Вызов guix container"
#. type: menuentry
#: doc/guix.texi:258 doc/guix.texi:8072
msgid "Process isolation."
msgstr "Изоляция процесса."
#. type: node
#: doc/guix.texi:258 doc/guix.texi:8072 doc/guix.texi:10659
#, no-wrap
msgid "Invoking guix weather"
msgstr "Вызов guix weather"
#. type: menuentry
#: doc/guix.texi:258 doc/guix.texi:8072
msgid "Assessing substitute availability."
msgstr "Оценка доступности подстановок."
#. type: node
#: doc/guix.texi:258 doc/guix.texi:8072 doc/guix.texi:10779
#, no-wrap
msgid "Invoking guix processes"
msgstr "Вызов guix processes"
#. type: menuentry
#: doc/guix.texi:258 doc/guix.texi:8072
msgid "Listing client processes."
msgstr "Чтение клиентских процессов."
#. type: section
#: doc/guix.texi:260 doc/guix.texi:8075
#, no-wrap
msgid "Invoking @command{guix build}"
msgstr "Вызов @command{guix build}"
#. type: subsection
#: doc/guix.texi:265 doc/guix.texi:8126 doc/guix.texi:8128 doc/guix.texi:8129
#, no-wrap
msgid "Common Build Options"
msgstr "Стандартные опции сборки"
#. type: menuentry
#: doc/guix.texi:265 doc/guix.texi:8126
msgid "Build options for most commands."
msgstr "Опции сборки для большинства команд."
#. type: subsection
#: doc/guix.texi:265 doc/guix.texi:8126 doc/guix.texi:8284 doc/guix.texi:8285
#, no-wrap
msgid "Package Transformation Options"
msgstr "Опции трансформации пакета"
#. type: menuentry
#: doc/guix.texi:265 doc/guix.texi:8126
msgid "Creating variants of packages."
msgstr "Создание вариация пакетов."
#. type: subsection
#: doc/guix.texi:265 doc/guix.texi:8126 doc/guix.texi:8433 doc/guix.texi:8434
#, no-wrap
msgid "Additional Build Options"
msgstr "Дополительные опции сборки"
#. type: menuentry
#: doc/guix.texi:265 doc/guix.texi:8126
msgid "Options specific to 'guix build'."
msgstr "Специфичные опции 'guix build'."
#. type: subsection
#: doc/guix.texi:265 doc/guix.texi:8126 doc/guix.texi:8650 doc/guix.texi:8651
#, no-wrap
msgid "Debugging Build Failures"
msgstr "Отладка ошибок сборки"
#. type: menuentry
#: doc/guix.texi:265 doc/guix.texi:8126
msgid "Real life packaging experience."
msgstr "Жизненный опыт в сборке пакетов."
#. type: section
#: doc/guix.texi:285 doc/guix.texi:10878 doc/guix.texi:10880
#: doc/guix.texi:10881
#, no-wrap
msgid "Using the Configuration System"
msgstr "Использование системы конфигурации"
#. type: menuentry
#: doc/guix.texi:285 doc/guix.texi:10878
msgid "Customizing your GNU system."
msgstr "Настройка вашей системы GNU."
#. type: node
#: doc/guix.texi:285 doc/guix.texi:10878 doc/guix.texi:11116
#, no-wrap
msgid "operating-system Reference"
msgstr "Интерфейс operating-system"
#. type: menuentry
#: doc/guix.texi:285 doc/guix.texi:10878
msgid "Detail of operating-system declarations."
msgstr "Детали объявления opertaing-system"
#. type: section
#: doc/guix.texi:285 doc/guix.texi:10878 doc/guix.texi:11320
#: doc/guix.texi:11321
#, no-wrap
msgid "File Systems"
msgstr "Файловые системы"
#. type: menuentry
#: doc/guix.texi:285 doc/guix.texi:10878
msgid "Configuring file system mounts."
msgstr "Настройка монтирования файловой систем"
#. type: section
#: doc/guix.texi:285 doc/guix.texi:10878 doc/guix.texi:11493
#: doc/guix.texi:11494
#, no-wrap
msgid "Mapped Devices"
msgstr "Размеченные устройства"
#. type: menuentry
#: doc/guix.texi:285 doc/guix.texi:10878
msgid "Block device extra processing."
msgstr "Дополнительные проверки блочных устройств."
#. type: section
#: doc/guix.texi:285 doc/guix.texi:10878 doc/guix.texi:11614
#: doc/guix.texi:11615
#, no-wrap
msgid "User Accounts"
msgstr "Учётные записи пользователей"
#. type: menuentry
#: doc/guix.texi:285 doc/guix.texi:10878
msgid "Specifying user accounts."
msgstr "Задание пользовательских учётных записей."
#. type: section
#: doc/guix.texi:285 doc/guix.texi:2098 doc/guix.texi:10878
#: doc/guix.texi:11767 doc/guix.texi:11768
#, no-wrap
msgid "Keyboard Layout"
msgstr "Раскладка клавиатуры"
#. type: menuentry
#: doc/guix.texi:285 doc/guix.texi:10878
msgid "How the system interprets key strokes."
msgstr "Как система интерпретирует нажатия клавиш"
#. type: section
#: doc/guix.texi:285 doc/guix.texi:1580 doc/guix.texi:10878
#: doc/guix.texi:11899 doc/guix.texi:11900
#, no-wrap
msgid "Locales"
msgstr "Локали"
#. type: menuentry
#: doc/guix.texi:285 doc/guix.texi:10878
msgid "Language and cultural convention settings."
msgstr "Настройка языка и культурных особенностей."
#. type: section
#: doc/guix.texi:285 doc/guix.texi:287 doc/guix.texi:10878 doc/guix.texi:12039
#: doc/guix.texi:12040
#, no-wrap
msgid "Services"
msgstr "Сервисы"
#. type: menuentry
#: doc/guix.texi:285 doc/guix.texi:10878
msgid "Specifying system services."
msgstr "Настройка системных сервисов."
#. type: section
#: doc/guix.texi:285 doc/guix.texi:10878 doc/guix.texi:25596
#: doc/guix.texi:25597
#, no-wrap
msgid "Setuid Programs"
msgstr "Программы setuid"
#. type: menuentry
#: doc/guix.texi:285 doc/guix.texi:10878
msgid "Programs running with root privileges."
msgstr "Программы, выполняемые с правами root."
#. type: section
#: doc/guix.texi:285 doc/guix.texi:1725 doc/guix.texi:10878
#: doc/guix.texi:25642 doc/guix.texi:25643
#, no-wrap
msgid "X.509 Certificates"
msgstr "Сертификаты X.509"
#. type: menuentry
#: doc/guix.texi:285 doc/guix.texi:10878
msgid "Authenticating HTTPS servers."
msgstr "Аутентификация серверов HTTPS."
#. type: section
#: doc/guix.texi:285 doc/guix.texi:1623 doc/guix.texi:10878
#: doc/guix.texi:25705 doc/guix.texi:25706
#, no-wrap
msgid "Name Service Switch"
msgstr "Служба выбора имён"
#. type: menuentry
#: doc/guix.texi:285 doc/guix.texi:10878
msgid "Configuring libc's name service switch."
msgstr "Настройка службы имён libc."
#. type: section
#: doc/guix.texi:285 doc/guix.texi:10878 doc/guix.texi:25843
#: doc/guix.texi:25844
#, no-wrap
msgid "Initial RAM Disk"
msgstr "Начальный RAM-диск"
#. type: menuentry
#: doc/guix.texi:285 doc/guix.texi:10878
msgid "Linux-Libre bootstrapping."
msgstr "Начальная загрузка Linux-Libre."
#. type: section
#: doc/guix.texi:285 doc/guix.texi:10878 doc/guix.texi:26017
#: doc/guix.texi:26018
#, no-wrap
msgid "Bootloader Configuration"
msgstr "Настройка загрузчика"
#. type: menuentry
#: doc/guix.texi:285 doc/guix.texi:10878
msgid "Configuring the boot loader."
msgstr "Конфигурирование загрузчика диска."
#. type: node
#: doc/guix.texi:285 doc/guix.texi:10878 doc/guix.texi:26238
#, no-wrap
msgid "Invoking guix system"
msgstr "Вызов guix system"
#. type: menuentry
#: doc/guix.texi:285 doc/guix.texi:10878
msgid "Instantiating a system configuration."
msgstr "Запуск инстанции операционной системы."
#. type: node
#: doc/guix.texi:285 doc/guix.texi:10878 doc/guix.texi:26759
#, fuzzy, no-wrap
#| msgid "Invoking guix repl"
msgid "Invoking guix deploy"
msgstr "Вызов guix repl"
#. type: menuentry
#: doc/guix.texi:285 doc/guix.texi:10878
#, fuzzy
#| msgid "Instantiating a system configuration."
msgid "Deploying a system configuration to a remote host."
msgstr "Запуск инстанции операционной системы."
#. type: node
#: doc/guix.texi:285 doc/guix.texi:10878 doc/guix.texi:26934
#, no-wrap
msgid "Running Guix in a VM"
msgstr "Запуск Guix на виртуальной машине"
#. type: menuentry
#: doc/guix.texi:285 doc/guix.texi:10878
msgid "How to run Guix System in a virtual machine."
msgstr "Как запускать систему Guix на виртуальной машине."
#. type: section
#: doc/guix.texi:285 doc/guix.texi:318 doc/guix.texi:10878 doc/guix.texi:27062
#: doc/guix.texi:27063
#, no-wrap
msgid "Defining Services"
msgstr "Создание сервисов"
#. type: menuentry
#: doc/guix.texi:285 doc/guix.texi:10878
msgid "Adding new service definitions."
msgstr "Добавление новых определений сервисов."
#. type: subsection
#: doc/guix.texi:316 doc/guix.texi:12119 doc/guix.texi:12121
#: doc/guix.texi:12122
#, no-wrap
msgid "Base Services"
msgstr "Базовые сервисы"
#. type: menuentry
#: doc/guix.texi:316 doc/guix.texi:12119
msgid "Essential system services."
msgstr "Ключевые сервисы системы."
#. type: subsection
#: doc/guix.texi:316 doc/guix.texi:12119 doc/guix.texi:12922
#: doc/guix.texi:12923
#, no-wrap
msgid "Scheduled Job Execution"
msgstr "Запланированное исполнения задач"
#. type: menuentry
#: doc/guix.texi:316 doc/guix.texi:12119
msgid "The mcron service."
msgstr "Сервис mcron."
#. type: subsection
#: doc/guix.texi:316 doc/guix.texi:12119 doc/guix.texi:13057
#: doc/guix.texi:13058
#, no-wrap
msgid "Log Rotation"
msgstr "Ротация логов"
#. type: menuentry
#: doc/guix.texi:316 doc/guix.texi:12119
msgid "The rottlog service."
msgstr "Сервис rottlog."
#. type: subsection
#: doc/guix.texi:316 doc/guix.texi:12119 doc/guix.texi:13160
#: doc/guix.texi:13161
#, no-wrap
msgid "Networking Services"
msgstr "Сервисы сети"
#. type: menuentry
#: doc/guix.texi:316 doc/guix.texi:12119
msgid "Network setup, SSH daemon, etc."
msgstr "Установка сети, демон SSH и т.д."
#. type: subsection
#: doc/guix.texi:316 doc/guix.texi:12119 doc/guix.texi:14275
#: doc/guix.texi:14276
#, no-wrap
msgid "X Window"
msgstr "Оконная система X"
#. type: menuentry
#: doc/guix.texi:316 doc/guix.texi:12119
msgid "Graphical display."
msgstr "Графический дисплей."
#. type: subsection
#: doc/guix.texi:316 doc/guix.texi:12119 doc/guix.texi:14652
#: doc/guix.texi:14653
#, no-wrap
msgid "Printing Services"
msgstr "Сервисы печати"
#. type: menuentry
#: doc/guix.texi:316 doc/guix.texi:12119
msgid "Local and remote printer support."
msgstr "Поддержка локальных и удалённых принтеров."
#. type: subsection
#: doc/guix.texi:316 doc/guix.texi:12119 doc/guix.texi:15504
#: doc/guix.texi:15505
#, no-wrap
msgid "Desktop Services"
msgstr "Сервисы рабочего стола"
#. type: menuentry
#: doc/guix.texi:316 doc/guix.texi:12119
msgid "D-Bus and desktop services."
msgstr "D-Bus и сервисы рабочего стола."
#. type: subsection
#: doc/guix.texi:316 doc/guix.texi:12119 doc/guix.texi:15956
#: doc/guix.texi:15957
#, no-wrap
msgid "Sound Services"
msgstr "Звуковые сервисы"
#. type: menuentry
#: doc/guix.texi:316 doc/guix.texi:12119
msgid "ALSA and Pulseaudio services."
msgstr "Сервисы ALSA и Pulseaudio."
#. type: subsection
#: doc/guix.texi:316 doc/guix.texi:12119 doc/guix.texi:16089
#: doc/guix.texi:16090
#, no-wrap
msgid "Database Services"
msgstr "Сервисы баз данных"
#. type: menuentry
#: doc/guix.texi:316 doc/guix.texi:12119
msgid "SQL databases, key-value stores, etc."
msgstr "Базы данных SQL, базы ключ-значение и т. д."
#. type: subsection
#: doc/guix.texi:316 doc/guix.texi:12119 doc/guix.texi:16249
#: doc/guix.texi:16250
#, no-wrap
msgid "Mail Services"
msgstr "Почтовые сервисы"
#. type: menuentry
#: doc/guix.texi:316 doc/guix.texi:12119
msgid "IMAP, POP3, SMTP, and all that."
msgstr "IMAP, POP3, SMTP и прочее."
#. type: subsection
#: doc/guix.texi:316 doc/guix.texi:12119 doc/guix.texi:18041
#: doc/guix.texi:18042
#, no-wrap
msgid "Messaging Services"
msgstr "Сервисы сообщений"
#. type: menuentry
#: doc/guix.texi:316 doc/guix.texi:12119
msgid "Messaging services."
msgstr "Сервисы сообщений."
#. type: subsection
#: doc/guix.texi:316 doc/guix.texi:12119 doc/guix.texi:18543
#: doc/guix.texi:18544
#, no-wrap
msgid "Telephony Services"
msgstr "Сервисы телефонии"
#. type: menuentry
#: doc/guix.texi:316 doc/guix.texi:12119
msgid "Telephony services."
msgstr "Сервисы телефонии."
#. type: subsection
#: doc/guix.texi:316 doc/guix.texi:12119 doc/guix.texi:18748
#: doc/guix.texi:18749
#, no-wrap
msgid "Monitoring Services"
msgstr "Сервисы мониторинга"
#. type: menuentry
#: doc/guix.texi:316 doc/guix.texi:12119
msgid "Monitoring services."
msgstr "Сервисы мониторинга."
#. type: subsection
#: doc/guix.texi:316 doc/guix.texi:12119 doc/guix.texi:19253
#: doc/guix.texi:19254
#, no-wrap
msgid "Kerberos Services"
msgstr "Сервисы Kerberos"
#. type: menuentry
#: doc/guix.texi:316 doc/guix.texi:12119
msgid "Kerberos services."
msgstr "Сервисы Kerberos."
#. type: subsection
#: doc/guix.texi:316 doc/guix.texi:12119 doc/guix.texi:19857
#: doc/guix.texi:19858
#, no-wrap
msgid "Web Services"
msgstr "Веб-сервисы"
#. type: menuentry
#: doc/guix.texi:316 doc/guix.texi:12119
msgid "Web servers."
msgstr "Веб-серверы."
#. type: subsection
#: doc/guix.texi:316 doc/guix.texi:12119 doc/guix.texi:20855
#: doc/guix.texi:20856
#, no-wrap
msgid "Certificate Services"
msgstr "Сервисы сертификатов"
#. type: menuentry
#: doc/guix.texi:316 doc/guix.texi:12119
msgid "TLS certificates via Let's Encrypt."
msgstr "Сертификаты TLS через Let's Encrypt."
#. type: subsection
#: doc/guix.texi:316 doc/guix.texi:12119 doc/guix.texi:21023
#: doc/guix.texi:21024
#, no-wrap
msgid "DNS Services"
msgstr "Сервисы DNS"
#. type: menuentry
#: doc/guix.texi:316 doc/guix.texi:12119
msgid "DNS daemons."
msgstr "DNS-демоны."
#. type: subsection