mirror of
https://github.com/avmaisak/LFS_Book.git
synced 2026-01-14 02:00:45 +00:00
Revision: 11446 Author: bdubbs Date: 12 августа 2018 г. 19:35:49 Message: Add LANG to vim test instructions. Ensure grep tests run to completion. Run gcc tests in Chapter 6 as a non-privileged user. Move shadow to before gcc so the gcc tests can use su to run as a non-privileged user. Add perl Configure options in Chapter 5 to ensure no host system libraries are used. Update minimum make version to 4.0 required by glibc-2.28. Update bzip2 url to a new location. Update to linux-4.17.14. ---- Modified : /trunk/BOOK/appendices/dependencies.xml Modified : /trunk/BOOK/chapter01/changelog.xml Modified : /trunk/BOOK/chapter02/hostreqs.xml Modified : /trunk/BOOK/chapter03/packages.xml Modified : /trunk/BOOK/chapter05/perl.xml Modified : /trunk/BOOK/chapter06/chapter06.xml Modified : /trunk/BOOK/chapter06/gcc.xml Modified : /trunk/BOOK/chapter06/grep.xml Modified : /trunk/BOOK/chapter06/vim.xml Modified : /trunk/BOOK/general.ent Modified : /trunk/BOOK/packages.ent
219 lines
9.3 KiB
XML
219 lines
9.3 KiB
XML
<?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="pre-hostreqs" xreflabel="Host System Requirements">
|
||
<?dbhtml filename="hostreqs.html"?>
|
||
|
||
<title>Требования к хост-системе</title>
|
||
|
||
<para>Ваша хост система должна иметь следующее программное обеспечение с
|
||
минимальными версиями, которые будут указаны. На современных дистрибутивах проблем не должно быть, однако,
|
||
необходимо знать, что некоторые дистрибутивы хранят заголовочные файлы в отдельных пакетах, как правило, в таком формате:
|
||
<quote><package-name>-devel</quote> или
|
||
<quote><package-name>-dev</quote>.
|
||
Убедитесь что они были установлены, в случае если ваш дистрибутив их предоставляет.</para>
|
||
|
||
<para>
|
||
Более ранние версии из списка программного обеспечения могут работать, но этот момент
|
||
не проверялся (тестирование не производилось).</para>
|
||
|
||
<itemizedlist spacing="compact">
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">Bash-3.2</emphasis> (/bin/sh
|
||
должен быть символической или жесткой ссылкой на bash)</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">Binutils-2.25</emphasis> (Версия старше чем
|
||
&binutils-version; не рекомендуется, потому что тестирование таковой не проводилось.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">Bison-2.7</emphasis> (/usr/bin/yacc
|
||
должен быть ссылкой на bison или небольшим скриптом который выполняет bison)</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">Bzip2-1.0.4</emphasis></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">Coreutils-6.9</emphasis></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">Diffutils-2.8.1</emphasis></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">Findutils-4.2.31</emphasis></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">Gawk-4.0.1</emphasis> (/usr/bin/awk
|
||
должен быть ссылкой на gawk)</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">GCC-4.9</emphasis> включая компилятор Си++
|
||
, <command>g++</command> (Версия старше чем &gcc-version; не рекомендуется,
|
||
потому что тестирование таковой не проводилось.)</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">Glibc-2.11</emphasis> (Версия старше чем
|
||
&glibc-version; не рекомендуется,
|
||
потому что тестирование таковой не проводилось.)</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">Grep-2.5.1a</emphasis></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">Gzip-1.3.12</emphasis></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">Ядро Linux &min-kernel;</emphasis></para>
|
||
|
||
<para>Причина минимальной версии ядра - указание такой версии при сборке пакета <application>glibc</application> в главе 6, которая является рекомендацией разработчиков. Она также необходима для пакета udev.</para>
|
||
|
||
<para>Если версия ядра хост системы более ранняя, чем &min-kernel; вам придется заменить его на более свежую. Существует как минимум два способа как это сделать. Сперва посмотрите, предоставляет ли дистрибутив хост системы ядро версии &min-kernel; или более позднюю. Если этот так - нужно его обновить. В ином случае, вы можете выполнить сборку
|
||
ядра самостоятельно. Инструкции для компиляции ядра и настройка загрузчика представлены в
|
||
главе <xref linkend="chapter-bootable"/> (При условии что в хост системе используется загрузчик GRUB).</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">M4-1.4.10</emphasis></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">Make-4.0</emphasis></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">Patch-2.5.4</emphasis></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">Perl-5.8.8</emphasis></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">Sed-4.1.5</emphasis></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">Tar-1.22</emphasis></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">Texinfo-4.7</emphasis></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis role="strong">Xz-5.0.0</emphasis></para>
|
||
</listitem>
|
||
|
||
</itemizedlist>
|
||
|
||
<important>
|
||
<para>Обратите внимание, что упомянутые выше символические ссылки необходимы для создания системы LFS используя инструкции, содержащиеся в этой книге. Символические ссылки которые
|
||
указывают на программы (такие как dash, mawk, и т.д.) могут работать, но они не тестировались и не поддерживаются командой разработчиков LFS и возможно потребуются отклонения от инструкций или применение дополнительных патчей для некоторых пакетов.</para>
|
||
</important>
|
||
|
||
<!-- Use an empty sect2 element to prevent a pdf warning. -->
|
||
<bridgehead renderas="sect2"
|
||
id="version-check"
|
||
xreflabel="Требования к хост-системе">
|
||
</bridgehead>
|
||
<!--<title> </title>-->
|
||
|
||
<para >Чтобы узнать, имеет ли ваша хост-система все соответствующие версии и
|
||
возможность компиляции программ, выполните следующие действия:</para>
|
||
|
||
<!-- ANY additional lines in the script cause a pdf rendering problem-->
|
||
<screen role="nodump"><userinput>cat > version-check.sh << "EOF"
|
||
<literal>#!/bin/bash
|
||
# Simple script to list version numbers of critical development tools
|
||
export LC_ALL=C
|
||
bash --version | head -n1 | cut -d" " -f2-4
|
||
MYSH=$(readlink -f /bin/sh)
|
||
echo "/bin/sh -> $MYSH"
|
||
echo $MYSH | grep -q bash || echo "ERROR: /bin/sh does not point to bash"
|
||
unset MYSH
|
||
|
||
echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
|
||
bison --version | head -n1
|
||
|
||
if [ -h /usr/bin/yacc ]; then
|
||
echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
|
||
elif [ -x /usr/bin/yacc ]; then
|
||
echo yacc is `/usr/bin/yacc --version | head -n1`
|
||
else
|
||
echo "yacc not found"
|
||
fi
|
||
|
||
bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6-
|
||
echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
|
||
diff --version | head -n1
|
||
find --version | head -n1
|
||
gawk --version | head -n1
|
||
|
||
if [ -h /usr/bin/awk ]; then
|
||
echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`";
|
||
elif [ -x /usr/bin/awk ]; then
|
||
echo awk is `/usr/bin/awk --version | head -n1`
|
||
else
|
||
echo "awk not found"
|
||
fi
|
||
|
||
gcc --version | head -n1
|
||
g++ --version | head -n1
|
||
ldd --version | head -n1 | cut -d" " -f2- # glibc version
|
||
grep --version | head -n1
|
||
gzip --version | head -n1
|
||
cat /proc/version
|
||
m4 --version | head -n1
|
||
make --version | head -n1
|
||
patch --version | head -n1
|
||
echo Perl `perl -V:version`
|
||
sed --version | head -n1
|
||
tar --version | head -n1
|
||
makeinfo --version | head -n1
|
||
xz --version | head -n1
|
||
<?hard-pagebreak?>
|
||
echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c
|
||
if [ -x dummy ]
|
||
then echo "g++ compilation OK";
|
||
else echo "g++ compilation failed"; fi
|
||
rm -f dummy.c dummy</literal>
|
||
EOF
|
||
|
||
bash version-check.sh</userinput></screen>
|
||
<!--
|
||
<para>Also check for some library consistency:</para>
|
||
|
||
<screen role="nodump"><userinput>cat > library-check.sh << "EOF"
|
||
<literal>#!/bin/bash
|
||
for lib in lib{gmp,mpfr,mpc}.la; do
|
||
echo $lib: $(if find /usr/lib* -name $lib|
|
||
grep -q $lib;then :;else echo not;fi) found
|
||
done
|
||
unset lib</literal>
|
||
EOF
|
||
|
||
bash library-check.sh</userinput></screen>
|
||
|
||
<para>The files identified by this script should be all present
|
||
or all absent, but not only one or two present.</para>
|
||
-->
|
||
|
||
</sect1>
|