Files
LFS_Book/chapter06/ninja.xml
Anton Maisak 03e0be9a47 Revision: 11638
Author: bdubbs
Date: 14 июля 2019 г. 22:03:27
Message:
Typos and cleanup
----
Modified : /trunk/BOOK/chapter01/changelog.xml
Modified : /trunk/BOOK/chapter06/ninja.xml
Modified : /trunk/BOOK/chapter09/reboot.xml
2020-09-14 14:44:23 +03:00

124 lines
5.4 KiB
XML
Raw Permalink 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-ch6-sbu;</seg>
<seg>&ninja-ch6-du;</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Установка пакета Ninja</title>
<para>Когда программа ninja запущена, как правило, используется максимальное количество процессов параллельно. По умолчанию этому числу присваивается значение количество ядер компьютера плюс два. В некоторых случаях это может привести к перегреву центрального процессора, и (или) переполнению оперативной памяти. Если выполнять запуск через командную строку, можно передать аргумент -jN, в котором можно явно указать количество потоков для выполнения. Но в некоторых пакетах данное значение встроено и аргумент -jN будет игнорирован.</para>
<para>Можно использовать <emphasis>опциональный</emphasis> патч, который позволит устанавливать количество потоков выполнения через переменную среды, NINJAJOBS. <command>Например</command> указание значения переменной среды:
<!-- Using <command> here to make the output bold. We really don't want
users setting this now and experience shows that many users blindly
copy/paste anything in a box. -->
<screen>export NINJAJOBS=4</screen>
ограничит одновременное выполнение ninja в четыре процесса.</para>
<para>If desired, add the capability to use the environment variable
NINJAJOBS by running:</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 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>