mirror of
https://github.com/Poltern/lfs-ru.git
synced 2024-10-18 11:50:21 +03:00
Translated pages with libffi until ninja inclusively
This commit is contained in:
parent
4d7ee9e57a
commit
ebfcb0d4f0
@ -26,6 +26,11 @@
|
||||
<para>Библиотека Libffi предоставляет переносимый высокоуровневый программный
|
||||
интерфейс для различных соглашений о вызовах. Это позволяет программисту вызывать
|
||||
любую функцию, указанную в описании интерфейса вызова во время выполнения.</para>
|
||||
|
||||
<para>FFI расшифровывается как интерфейс внешних функций. FFI позволяет программе,
|
||||
написанной на одном языке, вызывать программу, написанную на другом языке. В
|
||||
частности, Libffi может обеспечить связь между интерпретатором, таким как Perl или
|
||||
Python, и подпрограммами общей библиотеки, написанными на C или C++.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -43,19 +48,19 @@
|
||||
<title>Установка пакета Libffi</title>
|
||||
|
||||
<note>
|
||||
<para>Подобно GMP, libffi собирается с оптимизацией, специфичной для используемого
|
||||
<para>Как и GMP, Libffi собирается с учетом оптимизаций, специфичных для используемого
|
||||
процессора. При сборке для другой системы измените значение параметра
|
||||
<parameter>--with-gcc-arch=</parameter> в следующей команде на имя архитектуры,
|
||||
полностью реализованной процессором в этой системе. Если этого не сделать,
|
||||
все приложения, ссылающиеся на libffi, будут выдавать ошибку <quote>Illegal Operation Errors</quote>.</para>
|
||||
все приложения, ссылающиеся на <filename class='libraryfile'>libffi</filename>,
|
||||
будут вызывать ошибку <quote>Illegal Operation - недопустимая операция</quote>.</para>
|
||||
</note>
|
||||
|
||||
<para>Подготовьте libffi к компиляции:</para>
|
||||
<para>Подготовьте Libffi к компиляции:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/usr \
|
||||
--disable-static \
|
||||
--with-gcc-arch=native \
|
||||
--disable-exec-static-tramp</userinput></screen>
|
||||
--with-gcc-arch=native</userinput></screen>
|
||||
|
||||
<variablelist>
|
||||
<title>Значение параметров configure:</title>
|
||||
@ -63,26 +68,15 @@
|
||||
<varlistentry>
|
||||
<term><parameter>--with-gcc-arch=native</parameter></term>
|
||||
<listitem>
|
||||
<para>Убедитесь, что GCC оптимизируется для текущей системы. Если значение
|
||||
не указано, то архитектура системы угадывается, и созданный код может
|
||||
быть неправильным для некоторых систем. Если созданный код будет скопирован
|
||||
из родной системы в менее мощную, используйте менее мощную систему в качестве
|
||||
параметра. Дополнительные сведения об альтернативных типах систем см. в <ulink
|
||||
url='https://gcc.gnu.org/onlinedocs/gcc-&gcc-version;/gcc/x86-Options.html'>
|
||||
<para>Убедитесь, что GCC оптимизируется для текущей системы. Если значение
|
||||
не указано, то архитектура системы угадывается и сгенерированный код может
|
||||
быть неправильным. Если сгенерированный код будет скопирован из родной
|
||||
системы в менее мощную, используйте архитектуру менее мощной системы в качестве
|
||||
параметра. Дополнительные сведения об альтернативных типах систем смотрите в
|
||||
<ulink url='https://gcc.gnu.org/onlinedocs/gcc-&gcc-version;/gcc/x86-Options.html'>
|
||||
описании параметров x86 в руководстве GCC</ulink>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<!-- To editors: try to remove it once GJS fixed (at GNOME 43) -->
|
||||
<term><parameter>--disable-exec-static-tramp</parameter></term>
|
||||
<listitem>
|
||||
<para>Отключить поддержку предотвращения наращивания стека. Это новая функция
|
||||
безопасности в libffi, но некоторые пакеты BLFS (в частности,
|
||||
<application>GJS</application>) не были адаптированы для работы с ней</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<para>Скомпилируйте пакет:</para>
|
||||
@ -118,7 +112,7 @@
|
||||
<varlistentry id="libffi">
|
||||
<term><filename class="libraryfile">libffi</filename></term>
|
||||
<listitem>
|
||||
<para>содержит внешний интерфейс для API-функций</para>
|
||||
<para>Содержит внешний интерфейс для API-функций</para>
|
||||
<indexterm zone="ch-system-libffi">
|
||||
<primary sortas="c-libffi">libffi</primary>
|
||||
</indexterm>
|
||||
|
@ -23,9 +23,9 @@
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<para>Пакет Libtool содержит сценарий поддержки универсальной библиотеки GNU.
|
||||
Он преобразует сложный механизм использования общих библиотек в согласованный
|
||||
переносимый интерфейс.</para>
|
||||
<para>Пакет Libtool содержит сценарий поддержки универсальной библиотеки GNU.
|
||||
Это упрощает использование общих библиотек благодаря согласованному переносимому
|
||||
интерфейсу.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -52,16 +52,17 @@
|
||||
|
||||
<para>Чтобы протестировать пакет<!--(about 11.0 SBU)-->, выполните:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
<screen><userinput remap="test">make -k check</userinput></screen>
|
||||
|
||||
<note><para>Время тестирования libtool может быть значительно сокращено в системе
|
||||
<note><para>Время тестирования Libtool может быть значительно сокращено в системе
|
||||
с несколькими ядрами. Для этого добавьте <command>TESTSUITEFLAGS=-j<N></command>
|
||||
к строке выше. Например, использование -j4 может сократить время тестирования
|
||||
более чем на 60 процентов.</para></note>
|
||||
|
||||
<para>Известно, что пять тестов в среде сборки LFS завершаются неудачно из-за
|
||||
круговой зависимости, но все тесты проходят успешно, если они повторно запускаются
|
||||
после установки automake.</para>
|
||||
циклической зависимости, но эти тесты проходят успешно, если запустить их повторно
|
||||
после установки automake. Кроме того, в grep-3.8 два теста вызовут предупреждение
|
||||
для регулярных выражений, несовместимых с POSIX и завершатся с ошибкой.</para>
|
||||
|
||||
<para>Установите пакет:</para>
|
||||
|
||||
@ -121,7 +122,7 @@
|
||||
<varlistentry id="libltdl">
|
||||
<term><filename class="libraryfile">libltdl</filename></term>
|
||||
<listitem>
|
||||
<para>Скрывает различные трудности, связанные с динамически загружаемыми библиотеками</para>
|
||||
<para>Скрывает различные проблемы, связанные с открытием динамически загружаемых библиотек</para>
|
||||
<indexterm zone="ch-system-libtool libltdl">
|
||||
<primary sortas="c-libltdl">libltdl</primary>
|
||||
</indexterm>
|
||||
|
@ -81,7 +81,7 @@ echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h</userinput></screen>
|
||||
|
||||
<varlistentry id="m4">
|
||||
<!-- Don't remove the extra space, it prevet a FOP warning. -->
|
||||
<term><command>m4 </command></term>
|
||||
<term><command>m4</command></term>
|
||||
<listitem>
|
||||
<para>Копирует указанные файлы, одновременно расширяя содержащиеся в них
|
||||
макросы. Эти макросы являются либо встроенными, либо определяемыми
|
||||
@ -89,7 +89,7 @@ echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h</userinput></screen>
|
||||
выполнения макросов, <command>m4</command> имеет встроенные функции для
|
||||
включения указанных файлов, выполнения команд Unix, выполнения целочисленной
|
||||
арифметики, манипулирования текстом, рекурсии и т.д. Программа <command>m4</command>
|
||||
может использоваться либо как интерфейс компилятора, либо как самостоятельный
|
||||
может использоваться либо как интерфейс к компилятору, либо как самостоятельный
|
||||
макропроцессор</para>
|
||||
<indexterm zone="ch-system-m4 m4">
|
||||
<primary sortas="b-m4">m4</primary>
|
||||
|
@ -39,11 +39,13 @@
|
||||
|
||||
<sect2 role="installation">
|
||||
<title>Установка пакета Make</title>
|
||||
<!--
|
||||
<para>Again, work around an error caused by glibc-2.27 and later:</para>
|
||||
|
||||
<screen><userinput remap="pre">sed -i '211,217 d; 219,229 d; 232 d' glob/glob.c</userinput></screen>
|
||||
-->
|
||||
<para>Во-первых, исправьте некоторые проблемы, выявленные разработчиками:</para>
|
||||
|
||||
<screen><userinput remap="pre">sed -e '/ifdef SIGPIPE/,+2 d' \
|
||||
-e '/undef FATAL_SIG/i FATAL_SIG (SIGPIPE);' \
|
||||
-i src/main.c</userinput></screen>
|
||||
|
||||
<para>Подготовьте Make к компиляции:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
|
||||
@ -82,7 +84,8 @@
|
||||
<varlistentry id="make">
|
||||
<term><command>make</command></term>
|
||||
<listitem>
|
||||
<para>Автоматически определяет, какие части пакета необходимо (пере)компилировать и запускает соответствующие команды.</para>
|
||||
<para>Автоматически определяет, какие части пакета необходимо (пере)компилировать
|
||||
и запускает соответствующие команды.</para>
|
||||
<indexterm zone="ch-system-make make">
|
||||
<primary sortas="b-make">make</primary>
|
||||
</indexterm>
|
||||
|
@ -77,7 +77,7 @@
|
||||
<varlistentry>
|
||||
<term><parameter>--enable-cache-owner=bin</parameter></term>
|
||||
<listitem>
|
||||
<para>Устаналивает владельцем файлов общесистемного кеша пользователя
|
||||
<para>Изменяет владельца файлов общесистемного кеша на пользователя
|
||||
<systemitem class="username">bin</systemitem>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
@ -23,7 +23,7 @@
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<para>Пакет Man-pages содержит более 2,200 справочных руководств.</para>
|
||||
<para>Пакет Man-pages содержит более 2400 справочных руководств.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
|
@ -43,7 +43,7 @@
|
||||
|
||||
<screen><userinput remap="make">pip3 wheel -w dist --no-build-isolation --no-deps $PWD</userinput></screen>
|
||||
|
||||
<para>С этим пакетом не поставляется набор тестов.</para>
|
||||
<para>С этим пакетом не поставляется тестов.</para>
|
||||
|
||||
<para>Установите пакет:</para>
|
||||
|
||||
|
@ -23,8 +23,8 @@
|
||||
<sect2 role="package">
|
||||
<title/>
|
||||
|
||||
<para>Meson — это система сборки с открытым исходным кодом, призванная быть
|
||||
чрезвычайно быстрой и максимально удобной для пользователя.</para>
|
||||
<para>Meson — это система сборки с открытым исходным кодом, разработанная таким
|
||||
образом, чтобы быть очень быстрой и максимально удобной для пользователя.</para>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>&buildtime;</segtitle>
|
||||
@ -36,10 +36,10 @@
|
||||
</segmentedlist>
|
||||
|
||||
<tip revision="sysv">
|
||||
<para>Этот раздел не является строго обязательным, если LFS не использует
|
||||
systemd. С другой стороны, meson/ninja - это мощная система сборки,
|
||||
которая, скорее всего, будет использоваться все чаще и чаще. Meson необходим для
|
||||
нескольких пакетов в <ulink url="&blfs-book;">книге BLFS</ulink>.</para>
|
||||
<para>Этот раздел не обязателен, если LFS не использует systemd. С другой стороны,
|
||||
Meson вместе с Ninja составляет мощную комбинацию систем сборки, которая, вероятно,
|
||||
будет использоваться все чаще и чаще. Meson необходим для нескольких пакетов
|
||||
в <ulink url="&blfs-book;">книге BLFS</ulink>.</para>
|
||||
</tip>
|
||||
|
||||
</sect2>
|
||||
@ -69,7 +69,7 @@ install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/
|
||||
<varlistentry>
|
||||
<term><parameter>-w dist</parameter></term>
|
||||
<listitem>
|
||||
<para> Поместить собранный wheels в каталог
|
||||
<para>Помещает собранный wheels в каталог
|
||||
<filename class='directory'>dist</filename>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -77,7 +77,7 @@ install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/
|
||||
<varlistentry>
|
||||
<term><parameter>--find-links dist</parameter></term>
|
||||
<listitem>
|
||||
<para>Установить wheels из каталога
|
||||
<para>Устанавливает wheels из каталога
|
||||
<filename class='directory'>dist</filename>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
@ -40,6 +40,20 @@
|
||||
<sect2 role="installation">
|
||||
<title>Установка пакета MPFR</title>
|
||||
|
||||
<!-- https://sympa.inria.fr/sympa/arc/mpfr/2023-01/msg00002.html
|
||||
https://gitlab.inria.fr/mpfr/mpfr/-/commit/5172494c
|
||||
|
||||
Note that it's a different issue from Glibc #30068 we've fixed in
|
||||
chapter08/glibc.xml with a sed. Normally we just document the
|
||||
test failure, but in this case the particular subtest also serves
|
||||
as an additional guard against Glibc #30068. So we apply the
|
||||
upstream fix here. -->
|
||||
<para>Исправьте тестовый пример, приводящий к ошибке в старых версиях Glibc:</para>
|
||||
|
||||
<screen><userinput remap="pre">sed -e 's/+01,234,567/+1,234,567 /' \
|
||||
-e 's/13.10Pd/13Pd/' \
|
||||
-i tests/tsprintf.c</userinput></screen>
|
||||
|
||||
<para>Подготовьте MPFR к компиляции:</para>
|
||||
|
||||
<screen><userinput remap="configure">./configure --prefix=/usr \
|
||||
@ -57,7 +71,7 @@ make html</userinput></screen>
|
||||
случае не пропускайте его.</para>
|
||||
</important>
|
||||
|
||||
<para>Выполните тестирование и убедитесь, что все тесты пройдены:</para>
|
||||
<para>Выполните тестирование и убедитесь, что все 197 тестов пройдены:</para>
|
||||
|
||||
<screen><userinput remap="test">make check</userinput></screen>
|
||||
|
||||
|
@ -129,9 +129,7 @@
|
||||
<filename class="libraryfile">libncursesw.so.&ncurses-version;</filename>. Это
|
||||
может привести к сбою процесса оболочки, который использует код и данные из
|
||||
файла библиотеки. Установите пакет с помощью <literal>DESTDIR</literal> и правильно
|
||||
замените файл библиотеки с помощью команды <command>install</command>. Ненужный
|
||||
статический архив, который не обрабатывается <command>configure</command>, также
|
||||
удаляется:</para>
|
||||
замените файл библиотеки с помощью команды <command>install</command>.</para>
|
||||
|
||||
<screen><userinput remap="install">make DESTDIR=$PWD/dest install
|
||||
install -vm755 dest/usr/lib/libncursesw.so.&ncurses-version; /usr/lib
|
||||
@ -211,6 +209,7 @@ cp -av lib/lib*.so.5* /usr/lib</userinput></screen>
|
||||
libformw.so,
|
||||
libmenuw.so,
|
||||
libncursesw.so,
|
||||
libncurses++w.so,
|
||||
libpanelw.so, и их аналоги без "w" в именах библиотек.</seg>
|
||||
<seg>
|
||||
/usr/share/tabset,
|
||||
@ -363,6 +362,16 @@ cp -av lib/lib*.so.5* /usr/lib</userinput></screen>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libncurses__w">
|
||||
<term><filename class="libraryfile">libncurses++w</filename></term>
|
||||
<listitem>
|
||||
<para>Содержит функции связывания C++ с другими библиотеками в пакете</para>
|
||||
<indexterm zone="ch-system-ncurses libncurses__w">
|
||||
<primary sortas="c-libncurses++w">libncurses++w</primary>
|
||||
</indexterm>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="libformw">
|
||||
<term><filename class="libraryfile">libformw</filename></term>
|
||||
<listitem>
|
||||
|
@ -36,10 +36,10 @@
|
||||
</segmentedlist>
|
||||
|
||||
<tip revision="sysv">
|
||||
<para>Этот раздел необязателен, если LFS не использует systemd.
|
||||
С другой стороны, связка ninja/meson - это мощная система сборки,
|
||||
которая, скорее всего, будет использоваться все чаще и чаще. Она
|
||||
необходима для нескольких пакетов из <ulink url="&blfs-book;">книги BLFS</ulink>.</para>
|
||||
<para>Этот раздел не обязателен, если LFS не использует systemd. С другой стороны,
|
||||
Ninja вместе с Meson составляет мощную комбинацию систем сборки, которая, вероятно,
|
||||
будет использоваться все чаще и чаще. Ninja требуется для нескольких пакетов
|
||||
в <ulink url="&blfs-book;">книге BLFS</ulink>.</para>
|
||||
</tip>
|
||||
|
||||
</sect2>
|
||||
@ -47,12 +47,12 @@
|
||||
<sect2 role="installation">
|
||||
<title>Установка пакета Ninja</title>
|
||||
|
||||
<para>При работе ninja обычно запускает максимальное количество процессов
|
||||
параллельно. По умолчанию это количество ядер в системе плюс два. В некоторых
|
||||
случаях это может привести к перегреву процессора или к нехватке памяти в
|
||||
системе. При запуске из командной строки передача параметра -jN ограничит
|
||||
количество параллельных процессов, у некоторых пакетов запуск ninja встроен
|
||||
и параметр -j не передается.</para>
|
||||
<para>При запуске <command>ninja</command> обычно использует максимальное количество
|
||||
процессов параллельно. По умолчанию это количество ядер в системе плюс два. В некоторых
|
||||
случаях это может привести к перегреву процессора или нехватке памяти в системе.
|
||||
Когда <command>ninja</command> вызывается из командной строки, передача параметра -jN
|
||||
ограничит количество параллельных процессов. Некоторые пакеты встраивают выполнение
|
||||
<command>ninja</command> и параметр -j не передается.</para>
|
||||
|
||||
<para>Использование приведенной ниже <emphasis>необязательной</emphasis> процедуры
|
||||
позволяет пользователю ограничить количество параллельных процессов с помощью переменной
|
||||
@ -60,9 +60,10 @@
|
||||
|
||||
<screen>export NINJAJOBS=4</screen>
|
||||
|
||||
ограничит ninja четырьмя параллельными процессами.</para>
|
||||
ограничит <command>ninja</command> четырьмя параллельными процессами.</para>
|
||||
|
||||
<para>По желанию добавьте возможность использовать переменную окружения NINJAJOBS, запустив:</para>
|
||||
<para>По желанию, добавьте возможность использовать переменную окружения NINJAJOBS, выполнив
|
||||
следующую команду:</para>
|
||||
|
||||
<screen><userinput remap="pre">sed -i '/int Guess/a \
|
||||
int j = 0;\
|
||||
@ -81,7 +82,7 @@
|
||||
<varlistentry>
|
||||
<term><parameter>--bootstrap</parameter></term>
|
||||
<listitem>
|
||||
<para>Этот параметр перестраивает ninja под текущую систему.</para>
|
||||
<para>Этот параметр перестраивает Ninja под текущую систему.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user