lfs-ru/chapter08/ninja.xml
2023-08-04 01:54:52 +05:00

135 lines
5.3 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="ch-system-ninja" role="wrap">
<?dbhtml filename="ninja.html"?>
<sect1info condition="script">
<productname>ninja</productname>
<productnumber>&ninja-version;</productnumber>
<address>&ninja-url;</address>
</sect1info>
<title>Ninja-&ninja-version;</title>
<indexterm zone="ch-system-ninja">
<primary sortas="a-Ninja">Ninja</primary>
</indexterm>
<sect2 role="package">
<title/>
<para>Ninja - небольшая система сборки ориентированная на скорость.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem>
<seg>&ninja-fin-sbu;</seg>
<seg>&ninja-fin-du;</seg>
</seglistitem>
</segmentedlist>
<tip revision="sysv">
<para>Этот раздел не обязателен, если LFS не использует systemd. С другой стороны,
Ninja вместе с Meson составляет мощную комбинацию систем сборки, которая, вероятно,
будет использоваться все чаще и чаще. Ninja требуется для нескольких пакетов
в <ulink url="&blfs-book;">книге BLFS</ulink>.</para>
</tip>
</sect2>
<sect2 role="installation">
<title>Установка пакета Ninja</title>
<para>При запуске <command>ninja</command> обычно использует максимальное количество
процессов параллельно. По умолчанию это количество ядер в системе плюс два. В некоторых
случаях это может привести к перегреву процессора или нехватке памяти в системе.
Когда <command>ninja</command> вызывается из командной строки, передача параметра -jN
ограничит количество параллельных процессов. Некоторые пакеты встраивают выполнение
<command>ninja</command> и параметр -j не передается.</para>
<para>Использование приведенной ниже <emphasis>необязательной</emphasis> процедуры
позволяет пользователю ограничить количество параллельных процессов с помощью переменной
окружения NINJAJOBS. <emphasis role="bold">Пример</emphasis>, настройки:
<screen>export NINJAJOBS=4</screen>
ограничит <command>ninja</command> четырьмя параллельными процессами.</para>
<para>По желанию, добавьте возможность использовать переменную окружения NINJAJOBS, выполнив
следующую команду:</para>
<screen><userinput remap="pre">sed -i '/int Guess/a \
int j = 0;\
char* jobs = getenv( "NINJAJOBS" );\
if ( jobs != NULL ) j = atoi( jobs );\
if ( j > 0 ) return j;\
' src/ninja.cc</userinput></screen>
<para>Соберите Ninja с помощью команды:</para>
<screen><userinput remap="configure">python3 configure.py --bootstrap</userinput></screen>
<variablelist>
<title>Значение параметров сборки:</title>
<varlistentry>
<term><parameter>--bootstrap</parameter></term>
<listitem>
<para>Этот параметр перестраивает Ninja под текущую систему.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Чтобы протестировать пакет, выполните:</para>
<screen><userinput remap="test">./ninja ninja_test
./ninja_test --gtest_filter=-SubprocessTest.SetWithLots</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">install -vm755 ninja /usr/bin/
install -vDm644 misc/bash-completion /usr/share/bash-completion/completions/ninja
install -vDm644 misc/zsh-completion /usr/share/zsh/site-functions/_ninja</userinput></screen>
</sect2>
<sect2 id="contents-ninja" role="content">
<title>Содержимое пакета Ninja</title>
<segmentedlist>
<segtitle>Установленные программы</segtitle>
<seglistitem>
<seg>ninja</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Краткое описание</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="ninja">
<term><command>ninja</command></term>
<listitem>
<para>это система сборки Ninja</para>
<indexterm zone="ch-system-ninja ninja">
<primary sortas="b-ninja">ninja</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>