summaryrefslogtreecommitdiff
path: root/lfs-12.1-sysv/chapter02/hostreqs.html
diff options
context:
space:
mode:
authorSn4il <sn4il@thedroth.rocks>2024-03-06 10:25:41 +0300
committerSn4il <sn4il@thedroth.rocks>2024-03-06 10:25:41 +0300
commit5a6834585c43296c2207f5f251d3d5c237c7c8d2 (patch)
tree5c3f9adc4c5fd0b3bdc3b017b021a36016c0f15b /lfs-12.1-sysv/chapter02/hostreqs.html
parent2b6ec04f001bbdf660476a1275d90075d746833c (diff)
downloadsn4il-site-5a6834585c43296c2207f5f251d3d5c237c7c8d2.tar.gz
sn4il-site-5a6834585c43296c2207f5f251d3d5c237c7c8d2.zip
Update LFS mirror
Diffstat (limited to 'lfs-12.1-sysv/chapter02/hostreqs.html')
-rw-r--r--lfs-12.1-sysv/chapter02/hostreqs.html392
1 files changed, 392 insertions, 0 deletions
diff --git a/lfs-12.1-sysv/chapter02/hostreqs.html b/lfs-12.1-sysv/chapter02/hostreqs.html
new file mode 100644
index 0000000..589da18
--- /dev/null
+++ b/lfs-12.1-sysv/chapter02/hostreqs.html
@@ -0,0 +1,392 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
+ <title>
+ 2.2. Требования к хост-системе
+ </title>
+ <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
+ <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" />
+ <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
+ "text/css" media="print" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ </head>
+ <body class="lfs" id="lfs-12.1">
+ <div class="navheader">
+ <h4>
+ Линукс с нуля - Версия 12.1
+ </h4>
+ <h3>
+ Глава 2. Подготовка хост-системы
+ </h3>
+ <ul>
+ <li class="prev">
+ <a accesskey="p" href="introduction.html" title=
+ "Введение">Пред.</a>
+ <p>
+ Введение
+ </p>
+ </li>
+ <li class="next">
+ <a accesskey="n" href="stages.html" title=
+ "Этапы сборки системы LFS">След.</a>
+ <p>
+ Этапы сборки системы LFS
+ </p>
+ </li>
+ <li class="up">
+ <a accesskey="u" href="chapter02.html" title=
+ "Глава 2. Подготовка хост-системы">Наверх</a>
+ </li>
+ <li class="home">
+ <a accesskey="h" href="../index.html" title=
+ "Линукс с нуля - Версия 12.1">Начало</a>
+ </li>
+ </ul>
+ </div>
+ <h1 class="sect1">
+ <a id="ch-partitioning-hostreqs" name=
+ "ch-partitioning-hostreqs"></a>2.2. Требования к хост-системе
+ </h1>
+ <div class="sect1" lang="ru" xml:lang="ru">
+ <div class="sect2" lang="ru" xml:lang="ru">
+ <h2 class="sect2">
+ 2.2.1. Аппаратное обеспечение
+ </h2>
+ <p>
+ Редакторы LFS рекомендуют, чтобы процессор имел не менее четырех
+ ядер и не менее 8 ГБ памяти. Старые системы, не отвечающие этим
+ требованиям, будут по-прежнему работать, но время сборки пакетов
+ будет значительно больше, чем указано в документации.
+ </p>
+ </div>
+ <div class="sect2" lang="ru" xml:lang="ru">
+ <h2 class="sect2">
+ 2.2.2. Программное обеспечение
+ </h2>
+ <p>
+ Ваша хост-система должна иметь следующее программное обеспечение с
+ указанными минимальными версиями. Это не должно быть проблемой для
+ большинства современных дистрибутивов Linux. Также обратите
+ внимание на то, что многие дистрибутивы помещают заголовочные файлы
+ в отдельные пакеты, как правило в формате <code class=
+ "literal"><em class=
+ "replaceable"><code>&lt;package-name&gt;</code></em>-devel</code>
+ или <code class="literal"><em class=
+ "replaceable"><code>&lt;package-name&gt;</code></em>-dev</code>.
+ Обязательно установите эти пакеты, если ваш дистрибутив их
+ предоставляет.
+ </p>
+ <p>
+ Более ранние версии перечисленных ниже пакетов могут работать, но
+ это не проверялось.
+ </p>
+ <div class="itemizedlist">
+ <ul class="compact">
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>Bash-3.2</strong></span>
+ (/bin/sh должен быть символической или жесткой ссылкой на
+ bash)
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>Binutils-2.13.1</strong></span>
+ (Версия выше 2.42 не рекомендуется, так как она не
+ тестировалась)
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>Bison-2.7</strong></span>
+ (/usr/bin/yacc должен быть ссылкой на bison или небольшой
+ скрипт, запускающий bison)
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>Coreutils-8.1</strong></span>
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>Diffutils-2.8.1</strong></span>
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>Findutils-4.2.31</strong></span>
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>Gawk-4.0.1</strong></span>
+ (/usr/bin/awk должен быть ссылкой на gawk)
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>GCC-5.2</strong></span>, включая
+ компилятор C++, <span class=
+ "command"><strong>g++</strong></span> (версии выше 13.2.0 не
+ рекомендуются, поскольку они не тестировались). Также должны
+ присутствовать стандартные библиотеки C и C++ (с
+ заголовочными файлами), чтобы компилятор C++ мог осуществлять
+ сборку программ.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>Grep-2.5.1a</strong></span>
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>Gzip-1.3.12</strong></span>
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>Linux
+ Kernel-4.19</strong></span>
+ </p>
+ <p>
+ Причиной, по которой указаны минимальные требования к версии
+ ядра, является то, что мы указываем эту версию при сборке
+ <span class="application">glibc</span> в <a class="xref"
+ href="../chapter05/chapter05.html" title=
+ "Глава 5. Сборка кросс-тулчейна">Глава&nbsp;5</a> и <a class=
+ "xref" href="../chapter08/chapter08.html" title=
+ "Глава 8. Установка базового системного программного обеспечения">
+ Глава&nbsp;8</a>. Так как более старые ядра не
+ поддерживаются, скомпилированный пакет <span class=
+ "application">glibc</span> немного меньше и быстрее. По
+ состоянию на февраль 2024 г. 4.19 является самой старой
+ версией ядра, поддерживаемой разработчиками ядра. Некоторые
+ версии ядра, более старые, чем 4.19, могут по-прежнему
+ поддерживаться сторонними командами, но они не считаются
+ официальными выпусками ядра; подробности читайте на странице
+ <a class="ulink" href=
+ "https://kernel.org/category/releases.html">https://kernel.org/category/releases.html</a>
+ </p>
+ <p>
+ Если версия ядра хоста более ранняя, чем 4.19, вам необходимо
+ обновить ядро на более современную версию. Есть два способа
+ сделать это. Во-первых, посмотрите, предоставляет ли ваш
+ дистрибутив Linux пакет ядра 4.19 или более позднюю версию.
+ Если это так, установите его. Если ваш дистрибутив не
+ предлагает приемлемый пакет ядра или вы предпочитаете не
+ устанавливать его, вы можете скомпилировать ядро
+ самостоятельно. Инструкции по компиляции ядра и настройке
+ загрузчика (при условии, что хост использует GRUB) находятся
+ в <a class="xref" href="../chapter10/chapter10.html" title=
+ "Глава 10. Делаем систему LFS загрузочной">Глава&nbsp;10</a>.
+ </p>
+ <p>
+ Для сборки LFS необходимо, чтобы ядро хоста поддерживало
+ псевдотерминал UNIX 98 (PTY). Обычно он включен на всех
+ настольных или серверных дистрибутивах, поставляющих Linux
+ 4.19 или более новое ядро. Если на хосте вы используете
+ самостоятельно собранное ядро, убедитесь, что для параметра
+ <code class="option">CONFIG_UNIX98_PTYS</code> установлено
+ значение <code class="literal">y</code> в конфигурационном
+ файле ядра.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>M4-1.4.10</strong></span>
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>Make-4.0</strong></span>
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>Patch-2.5.4</strong></span>
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>Perl-5.8.8</strong></span>
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>Python-3.4</strong></span>
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>Sed-4.1.5</strong></span>
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>Tar-1.22</strong></span>
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>Texinfo-5.0</strong></span>
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <span class="strong"><strong>Xz-5.0.0</strong></span>
+ </p>
+ </li>
+ </ul>
+ </div>
+ <div class="admon important">
+ <img alt="[Важно]" src="../images/important.png" />
+ <h3>
+ Важно
+ </h3>
+ <p>
+ Обратите внимание, что упомянутые выше символические ссылки
+ необходимы для создания системы LFS с использованием инструкций,
+ содержащихся в этой книге. Симлинки, указывающие на другое
+ программное обеспечение (например, dash, mawk и т. д.), могут
+ работать, но не тестируются и не поддерживаются командой
+ разработчиков LFS, и могут потребовать либо отклонения от
+ инструкций, либо дополнительных исправлений для некоторых
+ пакетов.
+ </p>
+ </div>
+ <h2>
+ <a id="version-check" name="version-check"></a>
+ </h2>
+ <p>
+ Чтобы узнать, есть ли в вашей хост-системе все необходимые пакеты и
+ возможность компилировать программы, выполните следующий скрипт:
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">cat &gt; version-check.sh &lt;&lt; "EOF"
+<code class="literal">#!/bin/bash
+# A script to list version numbers of critical development tools
+
+# If you have tools installed in other directories, adjust PATH here AND
+# in ~lfs/.bashrc (section 4.4) as well.
+
+LC_ALL=C
+PATH=/usr/bin:/bin
+
+bail() { echo "FATAL: $1"; exit 1; }
+grep --version &gt; /dev/null 2&gt; /dev/null || bail "grep does not work"
+sed '' /dev/null || bail "sed does not work"
+sort /dev/null || bail "sort does not work"
+
+ver_check()
+{
+ if ! type -p $2 &amp;&gt;/dev/null
+ then
+ echo "ERROR: Cannot find $2 ($1)"; return 1;
+ fi
+ v=$($2 --version 2&gt;&amp;1 | grep -E -o '[0-9]+\.[0-9\.]+[a-z]*' | head -n1)
+ if printf '%s\n' $3 $v | sort --version-sort --check &amp;&gt;/dev/null
+ then
+ printf "OK: %-9s %-6s &gt;= $3\n" "$1" "$v"; return 0;
+ else
+ printf "ERROR: %-9s is TOO OLD ($3 or later required)\n" "$1";
+ return 1;
+ fi
+}
+
+ver_kernel()
+{
+ kver=$(uname -r | grep -E -o '^[0-9\.]+')
+ if printf '%s\n' $1 $kver | sort --version-sort --check &amp;&gt;/dev/null
+ then
+ printf "OK: Linux Kernel $kver &gt;= $1\n"; return 0;
+ else
+ printf "ERROR: Linux Kernel ($kver) is TOO OLD ($1 or later required)\n" "$kver";
+ return 1;
+ fi
+}
+
+# Coreutils first because --version-sort needs Coreutils &gt;= 7.0
+ver_check Coreutils sort 8.1 || bail "Coreutils too old, stop"
+ver_check Bash bash 3.2
+ver_check Binutils ld 2.13.1
+ver_check Bison bison 2.7
+ver_check Diffutils diff 2.8.1
+ver_check Findutils find 4.2.31
+ver_check Gawk gawk 4.0.1
+ver_check GCC gcc 5.2
+ver_check "GCC (C++)" g++ 5.2
+ver_check Grep grep 2.5.1a
+ver_check Gzip gzip 1.3.12
+ver_check M4 m4 1.4.10
+ver_check Make make 4.0
+ver_check Patch patch 2.5.4
+ver_check Perl perl 5.8.8
+ver_check Python python3 3.4
+ver_check Sed sed 4.1.5
+ver_check Tar tar 1.22
+ver_check Texinfo texi2any 5.0
+ver_check Xz xz 5.0.0
+ver_kernel 4.19
+
+if mount | grep -q 'devpts on /dev/pts' &amp;&amp; [ -e /dev/ptmx ]
+then echo "OK: Linux Kernel supports UNIX 98 PTY";
+else echo "ERROR: Linux Kernel does NOT support UNIX 98 PTY"; fi
+
+alias_check() {
+ if $1 --version 2&gt;&amp;1 | grep -qi $2
+ then printf "OK: %-4s is $2\n" "$1";
+ else printf "ERROR: %-4s is NOT $2\n" "$1"; fi
+}
+echo "Aliases:"
+alias_check awk GNU
+alias_check yacc Bison
+alias_check sh Bash
+
+echo "Compiler check:"
+if printf "int main(){}" | g++ -x c++ -
+then echo "OK: g++ works";
+else echo "ERROR: g++ does NOT work"; fi
+rm -f a.out
+
+if [ "$(nproc)" = "" ]; then
+ echo "ERROR: nproc is not available or it produces empty output"
+else
+ echo "OK: nproc reports $(nproc) logical cores are available"
+fi</code>
+EOF
+
+bash version-check.sh</kbd></pre>
+ </div>
+ </div>
+ <div class="navfooter">
+ <ul>
+ <li class="prev">
+ <a accesskey="p" href="introduction.html" title=
+ "Введение">Пред.</a>
+ <p>
+ Введение
+ </p>
+ </li>
+ <li class="next">
+ <a accesskey="n" href="stages.html" title=
+ "Этапы сборки системы LFS">След.</a>
+ <p>
+ Этапы сборки системы LFS
+ </p>
+ </li>
+ <li class="up">
+ <a accesskey="u" href="chapter02.html" title=
+ "Глава 2. Подготовка хост-системы">Наверх</a>
+ </li>
+ <li class="home">
+ <a accesskey="h" href="../index.html" title=
+ "Линукс с нуля - Версия 12.1">Начало</a>
+ </li>
+ </ul>
+ </div>
+ </body>
+</html>