Инструменты пользователя

Инструменты сайта


software:linux_server:lfs-example:chapter07

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
software:linux_server:lfs-example:chapter07 [2024/07/15 14:34] – [7.3.1. Монтирование и заполнение /dev] vladpolskiysoftware:linux_server:lfs-example:chapter07 [2024/07/15 17:53] (текущий) – [7.13.3. Восстановление] vladpolskiy
Строка 82: Строка 82:
 mount -vt tmpfs tmpfs $LFS/run mount -vt tmpfs tmpfs $LFS/run
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_209.png?|}}
 Значение параметров монтирования для devpts: Значение параметров монтирования для devpts:
  
Строка 102: Строка 102:
 fi fi
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_210.png?|}}
  
 =====7.4. Вход в окружение Chroot===== =====7.4. Вход в окружение Chroot=====
Строка 118: Строка 118:
     /bin/bash --login     /bin/bash --login
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_211.png?|}}
 Если вы не хотите использовать все доступные логические ядра, замените параметр $(nproc) количеством логических ядер, которые вы хотите использовать для сборки пакетов в этой и последующих главах. На наборы тестов некоторых пакетов (в частности Autoconf, Libtool и Tar) в [[software:linux_server:lfs:chapter08|Главе 8]] не влияет установка переменной MAKEFLAGS, вместо этого они используют переменную среды TESTSUITEFLAGS. Мы также установили её здесь для запуска тестов с поддержкой нескольких ядер. Если вы не хотите использовать все доступные логические ядра, замените параметр $(nproc) количеством логических ядер, которые вы хотите использовать для сборки пакетов в этой и последующих главах. На наборы тестов некоторых пакетов (в частности Autoconf, Libtool и Tar) в [[software:linux_server:lfs:chapter08|Главе 8]] не влияет установка переменной MAKEFLAGS, вместо этого они используют переменную среды TESTSUITEFLAGS. Мы также установили её здесь для запуска тестов с поддержкой нескольких ядер.
  
Строка 147: Строка 147:
 mkdir -pv /{boot,home,mnt,opt,srv} mkdir -pv /{boot,home,mnt,opt,srv}
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_212.png?|}}
 Создайте необходимые подкаталоги, выполнив следующие команды: Создайте необходимые подкаталоги, выполнив следующие команды:
  
Строка 168: Строка 168:
 install -dv -m 1777 /tmp /var/tmp install -dv -m 1777 /tmp /var/tmp
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_213.png?|}} 
 +Вывод результата выполнения команд 
 +{{:software:linux_server:lfs-example:lfs_example_214.png?|}}
 По умолчанию каталоги создаются с правами 755, но это нежелательно делать для всех каталогов. В приведенных выше командах вносятся два изменения — одно в домашний каталог пользователя root, а другое в каталоги для временных файлов. По умолчанию каталоги создаются с правами 755, но это нежелательно делать для всех каталогов. В приведенных выше командах вносятся два изменения — одно в домашний каталог пользователя root, а другое в каталоги для временных файлов.
  
Строка 189: Строка 191:
 ln -sv /proc/self/mounts /etc/mtab ln -sv /proc/self/mounts /etc/mtab
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_215.png?|}}
 Создайте файл **/etc/hosts**, на который будут ссылаться некоторые наборы тестов, а также один из файлов конфигурации Perl: Создайте файл **/etc/hosts**, на который будут ссылаться некоторые наборы тестов, а также один из файлов конфигурации Perl:
  
Строка 198: Строка 200:
 EOF EOF
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_216.png?|}}
 Чтобы пользователь **root** мог войти в систему и распознавался системой, в файлах **/etc/passwd** и **/etc/group** должны быть соответствующие записи. Чтобы пользователь **root** мог войти в систему и распознавался системой, в файлах **/etc/passwd** и **/etc/group** должны быть соответствующие записи.
  
Строка 221: Строка 223:
 EOF EOF
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_217.png?|}}
 Пароль пользователя **root** будет задан позднее. Пароль пользователя **root** будет задан позднее.
  
Строка 263: Строка 265:
 EOF EOF
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_218.png?|}}
 Созданные группы не являются частью какого-либо стандарта — это группы, определяемые частично требованиями конфигурации Udev в [[software:linux_server:lfs:chapter09|Главе 9]], а частично общими соглашениями, используемыми в ряде существующих дистрибутивов Linux. Кроме того, некоторые наборы тестов зависят от конкретных пользователей или групп. Спецификация LSB (доступна по адресу https://refspecs.linuxfoundation.org/lsb.shtml) рекомендует, чтобы, помимо группы **root** с идентификатор (GID) 0 присутствовала группа bin с GID 1. GID 5 широко используется для группы tty, число 5 также используется в systemd для файловой системы **devpts**. Все остальные имена групп и GID могут свободно выбираться системным администратором, так как хорошо написанные программы не зависят от номеров GID, а чаще используют название группы. Созданные группы не являются частью какого-либо стандарта — это группы, определяемые частично требованиями конфигурации Udev в [[software:linux_server:lfs:chapter09|Главе 9]], а частично общими соглашениями, используемыми в ряде существующих дистрибутивов Linux. Кроме того, некоторые наборы тестов зависят от конкретных пользователей или групп. Спецификация LSB (доступна по адресу https://refspecs.linuxfoundation.org/lsb.shtml) рекомендует, чтобы, помимо группы **root** с идентификатор (GID) 0 присутствовала группа bin с GID 1. GID 5 широко используется для группы tty, число 5 также используется в systemd для файловой системы **devpts**. Все остальные имена групп и GID могут свободно выбираться системным администратором, так как хорошо написанные программы не зависят от номеров GID, а чаще используют название группы.
  
Строка 275: Строка 277:
 install -o tester -d /home/tester install -o tester -d /home/tester
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_219.png?|}}
 Чтобы удалить приглашение «I have no name!», запустите новую оболочку. Поскольку файлы **/etc/passwd** и **/etc/group** были созданы, разрешение имен пользователей и групп теперь будет работать: Чтобы удалить приглашение «I have no name!», запустите новую оболочку. Поскольку файлы **/etc/passwd** и **/etc/group** были созданы, разрешение имен пользователей и групп теперь будет работать:
  
Строка 281: Строка 283:
 exec /usr/bin/bash --login exec /usr/bin/bash --login
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_220.png?|}}
 Программы **login, agetty, init (и другие)** используют ряд журналов для записи такой информации, как кто и когда входил в систему. Однако эти программы не будут записывать данные в журналы, если они еще не существуют. Инициализируйте журналы и предоставьте им соответствующие разрешения: Программы **login, agetty, init (и другие)** используют ряд журналов для записи такой информации, как кто и когда входил в систему. Однако эти программы не будут записывать данные в журналы, если они еще не существуют. Инициализируйте журналы и предоставьте им соответствующие разрешения:
  
Строка 290: Строка 292:
 chmod -v 600  /var/log/btmp chmod -v 600  /var/log/btmp
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_221.png?|}}
 В файл **/var/log/wtmp** записываются все входы и выходы из системы. В файл **/var/log/lastlog** записывается время последнего входа каждого пользователя в систему. В файл **/var/log/faillog** записываются неудачные попытки входа в систему. В файл **/var/log/btmp** также записываются неудачные попытки входа в систему. В файл **/var/log/wtmp** записываются все входы и выходы из системы. В файл **/var/log/lastlog** записывается время последнего входа каждого пользователя в систему. В файл **/var/log/faillog** записываются неудачные попытки входа в систему. В файл **/var/log/btmp** также записываются неудачные попытки входа в систему.
  
Строка 302: Строка 304:
 |Приблизительное время сборки:|1.1 SBU| |Приблизительное время сборки:|1.1 SBU|
 |Требуемое дисковое пространство:|306 MB| |Требуемое дисковое пространство:|306 MB|
 +Переходим в папку /sources 
 +<code> 
 +cd /sources/ 
 +</code> 
 +{{:software:linux_server:lfs-example:lfs_example_222.png?|}} 
 +Распаковываем архив и переходим в каталог с его содержимым 
 +<code> 
 +tar -xvf gettext-0.22.4.tar.xz 
 +cd gettext-0.22.4 
 +</code> 
 +{{:software:linux_server:lfs-example:lfs_example_223.png?|}}
 ====7.7.1. Установка пакета Gettext==== ====7.7.1. Установка пакета Gettext====
  
Строка 312: Строка 324:
 ./configure --disable-shared ./configure --disable-shared
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_224.png?|}}
 ===Значение параметров настройки:=== ===Значение параметров настройки:===
  
Строка 321: Строка 333:
  
 <code> <code>
-make+time make
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_225.png?|}}
 Установите программы msgfmt, msgmerge, и xgettext programs: Установите программы msgfmt, msgmerge, и xgettext programs:
  
Строка 329: Строка 341:
 cp -v gettext-tools/src/{msgfmt,msgmerge,xgettext} /usr/bin cp -v gettext-tools/src/{msgfmt,msgmerge,xgettext} /usr/bin
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_226.png?|}} 
 +Перейдем в каталог sources и удалим более не нужный разорхивированный каталог  
 +<code> 
 +cd .. 
 +rm -Rf cd gettext-0.22.4 
 +</code> 
 +{{:software:linux_server:lfs-example:lfs_example_227.png?|}}
 Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.32.2. Содержимое пакета Gettext|Разделе 8.32.2. «Содержимое пакета Gettext.»]] Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.32.2. Содержимое пакета Gettext|Разделе 8.32.2. «Содержимое пакета Gettext.»]]
  
Строка 343: Строка 361:
  
 <code> <code>
 +#!/bin/bash
 +SRC_FILE=bison-3.8.2.tar.xz
 +SRC_FOLDER=bison-3.8.2
 +
 +tar -xvf $SRC_FILE
 +cd $SRC_FOLDER
 +
 +time {
 ./configure --prefix=/usr \ ./configure --prefix=/usr \
-            --docdir=/usr/share/doc/bison-3.8.2 +            --docdir=/usr/share/doc/bison-3.8.2 && 
-</code>+time make && 
 +make install; } && 
 +ln -sv gcc $LFS/usr/bin/cc &&
  
 +cd .. &&
 +rm -rf $SRC_FOLDER &&
 +
 +echo Del $SRC_FOLDER
 +echo Ok $SRC_FILE
 +</code>
 +{{:software:linux_server:lfs-example:lfs_example_229.png?|}}
 ===Значение параметров настройки:=== ===Значение параметров настройки:===
  
Строка 352: Строка 387:
 Этот параметр указывает системе сборки установить документацию к bison в каталог с версией пакета. Этот параметр указывает системе сборки установить документацию к bison в каталог с версией пакета.
  
-Скомпилируйте пакет: +{{:software:linux_server:lfs-example:lfs_example_230.png?|}}
- +
-<code> +
-make +
-</code> +
- +
-Установите пакет: +
- +
-<code> +
-make install +
-</code>+
  
 Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.33.2. Содержимое пакета Bison|Разделе 8.33.2. «Содержимое пакета Bison.»]] Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.33.2. Содержимое пакета Bison|Разделе 8.33.2. «Содержимое пакета Bison.»]]
Строка 372: Строка 397:
  
 ====7.9.1. Установка пакета Perl==== ====7.9.1. Установка пакета Perl====
- 
-Подготовьте Perl к компиляции: 
  
 <code> <code>
 +#!/bin/bash
 +SRC_FILE=perl-5.38.2.tar.xz
 +SRC_FOLDER=perl-5.38.2
 +
 +tar -xvf $SRC_FILE
 +cd $SRC_FOLDER
 +
 +time {
 sh Configure -des                                        \ sh Configure -des                                        \
              -Dprefix=/usr                               \              -Dprefix=/usr                               \
Строка 385: Строка 416:
              -Dsitearch=/usr/lib/perl5/5.38/site_perl    \              -Dsitearch=/usr/lib/perl5/5.38/site_perl    \
              -Dvendorlib=/usr/lib/perl5/5.38/vendor_perl \              -Dvendorlib=/usr/lib/perl5/5.38/vendor_perl \
-             -Dvendorarch=/usr/lib/perl5/5.38/vendor_perl +             -Dvendorarch=/usr/lib/perl5/5.38/vendor_perl && 
-</code>+make && 
 +make install; } && 
 + 
 +cd .. && 
 +rm -rf $SRC_FOLDER &&
  
 +echo Delete $SRC_FOLDER
 +echo Ok $SRC_FILE
 +</code>
 +{{:software:linux_server:lfs-example:lfs_example_231.png?|}}
 ===Значение параметров настройки:=== ===Значение параметров настройки:===
  
Строка 404: Строка 443:
 Эти настройки определяют, где Perl ищет установленные модули. Редакторы LFS решили поместить их в структуру каталогов, основанную на MAJOR.MINOR версии Perl (5.38), что позволяет обновлять Perl до более новых уровней исправлений (уровень исправления - это последняя разделенная точками часть в строке полной версии, например 5.38.2) без необходимости переустанавливать все модули. Эти настройки определяют, где Perl ищет установленные модули. Редакторы LFS решили поместить их в структуру каталогов, основанную на MAJOR.MINOR версии Perl (5.38), что позволяет обновлять Perl до более новых уровней исправлений (уровень исправления - это последняя разделенная точками часть в строке полной версии, например 5.38.2) без необходимости переустанавливать все модули.
  
-Скомпилируйте пакет: 
  
-<code> 
-make 
-</code> 
- 
-Установите пакет: 
- 
-<code> 
-make install 
-</code> 
  
 Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.42.2. Содержимое пакета Perl|Разделе 8.42.2. «Содержимое пакета Perl.»]] Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.42.2. Содержимое пакета Perl|Разделе 8.42.2. «Содержимое пакета Perl.»]]
Строка 430: Строка 459:
 Существует два пакета, имена которых начинаются с префикса «python». Сейчас необходимо распаковать файл Python-3.12.2.tar.xz (обратите внимание на заглавную первую букву). Существует два пакета, имена которых начинаются с префикса «python». Сейчас необходимо распаковать файл Python-3.12.2.tar.xz (обратите внимание на заглавную первую букву).
 </WRAP> </WRAP>
 +Воспользуемся скриптом
 +<code>
 +#!/bin/bash
 +SRC_FILE=Python-3.12.2.tar.xz
 +SRC_FOLDER=Python-3.12.2
  
-Подготовка Python к компиляции:+tar -xvf $SRC_FILE 
 +cd $SRC_FOLDER
  
-<code>+time {
 ./configure --prefix=/usr   \ ./configure --prefix=/usr   \
             --enable-shared \             --enable-shared \
-            --without-ensurepip+            --without-ensurepip && 
 +make && 
 +make install; } && 
 + 
 +cd .. && 
 +rm -rf $SRC_FOLDER && 
 + 
 +echo Delete $SRC_FOLDER 
 +echo Ok $SRC_FILE
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_233.png?|}}
 ===Значение параметров настройки:=== ===Значение параметров настройки:===
  
Строка 446: Строка 489:
   * **--without-ensurepip**   * **--without-ensurepip**
 Этот параметр отключает установщик пакетов Python, который на данном этапе не нужен. Этот параметр отключает установщик пакетов Python, который на данном этапе не нужен.
- 
-Скомпилируйте пакет: 
- 
-<code> 
-make 
-</code> 
  
 <WRAP left round info 100%> <WRAP left round info 100%>
Строка 457: Строка 494:
 Некоторые модули Python 3 не могут быть собраны сейчас, потому что зависимости еще не установлены. Для модуля **ssl** выводится сообщение **Python требует OpenSSL 1.1.1 или новее**. Сообщение следует проигнорировать. Просто убедитесь, что команда make верхнего уровня не завершилась ошибкой. Дополнительные модули сейчас не нужны, и они будут собраны в [[software:linux_server:lfs:chapter08|Главе 8]]. Некоторые модули Python 3 не могут быть собраны сейчас, потому что зависимости еще не установлены. Для модуля **ssl** выводится сообщение **Python требует OpenSSL 1.1.1 или новее**. Сообщение следует проигнорировать. Просто убедитесь, что команда make верхнего уровня не завершилась ошибкой. Дополнительные модули сейчас не нужны, и они будут собраны в [[software:linux_server:lfs:chapter08|Главе 8]].
 </WRAP> </WRAP>
- +{{:software:linux_server:lfs-example:lfs_example_234.png?|}}
-Установите пакет: +
- +
-<code> +
-make install +
-</code> +
 Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.51.2. Содержимое пакета Python 3|Разделе 8.51.2. «Содержимое пакета Python 3.»]] Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.51.2. Содержимое пакета Python 3|Разделе 8.51.2. «Содержимое пакета Python 3.»]]
  
Строка 473: Строка 504:
  
 ====7.11.1. Установка пакета Texinfo==== ====7.11.1. Установка пакета Texinfo====
- 
-Подготовьте Texinfo к компиляции: 
- 
 <code> <code>
-./configure --prefix=/usr +#!/bin/bash 
-</code>+SRC_FILE=texinfo-7.1.tar.xz 
 +SRC_FOLDER=texinfo-7.1
  
-Скомпилируйте пакет:+tar -xvf $SRC_FILE 
 +cd $SRC_FOLDER
  
-<code> +time { 
-make +./configure --prefix=/usr && 
-</code>+make && 
 +make install; } &&
  
-Установите пакет:+cd .. && 
 +rm -rf $SRC_FOLDER &&
  
-<code> +echo Delete $SRC_FOLDER 
-make install+echo Ok $SRC_FILE
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_235.png?|}}
 +Вывод окончания работы скрипта
 +{{:software:linux_server:lfs-example:lfs_example_236.png?|}}
  
 Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.71.2. Содержимое пакета Texinfo|Разделе 8.71.2. «Содержимое пакета Texinfo.»]] Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.71.2. Содержимое пакета Texinfo|Разделе 8.71.2. «Содержимое пакета Texinfo.»]]
Строка 511: Строка 546:
  
 <code> <code>
 +#!/bin/bash
 +SRC_FILE=util-linux-2.39.3.tar.xz
 +SRC_FOLDER=util-linux-2.39.3
 +tar -xvf $SRC_FILE
 +cd $SRC_FOLDER
 +mkdir -pv /var/lib/hwclock
 +time {
 ./configure --libdir=/usr/lib    \ ./configure --libdir=/usr/lib    \
             --runstatedir=/run   \             --runstatedir=/run   \
Строка 523: Строка 565:
             --without-python     \             --without-python     \
             ADJTIME_PATH=/var/lib/hwclock/adjtime \             ADJTIME_PATH=/var/lib/hwclock/adjtime \
-            --docdir=/usr/share/doc/util-linux-2.39.3+            --docdir=/usr/share/doc/util-linux-2.39.3 && 
 +make && 
 +make install; } && 
 +cd .. && 
 +rm -rf $SRC_FOLDER && 
 +echo Delete $SRC_FOLDER 
 +echo Ok $SRC_FILE
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_238.png?|}}
 ===Значение параметров настройки:=== ===Значение параметров настройки:===
  
Строка 543: Строка 591:
 Этот параметр устанавливает расположение сокета, используемого uuidd и libuuid. Этот параметр устанавливает расположение сокета, используемого uuidd и libuuid.
  
-Скомпилируйте пакет: +{{:software:linux_server:lfs-example:lfs_example_239.png?|}}
- +
-<code> +
-make +
-</code> +
- +
-Установите пакет: +
- +
-<code> +
-make install +
-</code>+
  
 Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.79.2. Содержимое пакета Util-linux|Разделе 8.79.2. «Содержимое пакета Util-linux.»]] Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.79.2. Содержимое пакета Util-linux|Разделе 8.79.2. «Содержимое пакета Util-linux.»]]
Строка 564: Строка 602:
 rm -rf /usr/share/{info,man,doc}/* rm -rf /usr/share/{info,man,doc}/*
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_240.png?|}}
 Во-вторых, в современных системах Linux файлы .la библиотеки libtool полезны только для libltdl. Никакие библиотеки в LFS не загружаются с помощью libltdl. Известно, что некоторые файлы .la могут привести к сбою во время сборки пакетов BLFS. Удалите эти файлы сейчас: Во-вторых, в современных системах Linux файлы .la библиотеки libtool полезны только для libltdl. Никакие библиотеки в LFS не загружаются с помощью libltdl. Известно, что некоторые файлы .la могут привести к сбою во время сборки пакетов BLFS. Удалите эти файлы сейчас:
  
Строка 570: Строка 608:
 find /usr/{lib,libexec} -name \*.la -delete find /usr/{lib,libexec} -name \*.la -delete
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_241.png?|}}
 Сейчас размер системы составляет около 3 ГБ, однако каталог /tools больше не понадобится. Удалите его, чтобы освободить около 1 ГБ дискового пространства: Сейчас размер системы составляет около 3 ГБ, однако каталог /tools больше не понадобится. Удалите его, чтобы освободить около 1 ГБ дискового пространства:
  
Строка 576: Строка 614:
 rm -rf /tools rm -rf /tools
 </code> </code>
 +{{:software:linux_server:lfs-example:lfs_example_242.png?|}}
 ====7.13.2. Резервное копирование==== ====7.13.2. Резервное копирование====
  
Строка 653: Строка 691:
 Если вы покинули среду chroot, чтобы создать резервную копию или перезапустить сборку с помощью восстановления, не забудьте проверить, что виртуальные файловые системы все еще смонтированы (**findmnt | grep $LFS**). Если они не смонтированы, перемонтируйте их сейчас, как описано в  [[software:linux_server:lfs:chapter07#7.3. Подготовка виртуальных файловых систем ядра|Разделе 7.3. «Подготовка виртуальных файловых систем ядра»]], и повторно войдите в среду chroot (см. [[software:linux_server:lfs:chapter07#7.4. Вход в окружение Chroot|Раздел 7.4. «Вход в окружение Chroot»]]), прежде чем продолжить. Если вы покинули среду chroot, чтобы создать резервную копию или перезапустить сборку с помощью восстановления, не забудьте проверить, что виртуальные файловые системы все еще смонтированы (**findmnt | grep $LFS**). Если они не смонтированы, перемонтируйте их сейчас, как описано в  [[software:linux_server:lfs:chapter07#7.3. Подготовка виртуальных файловых систем ядра|Разделе 7.3. «Подготовка виртуальных файловых систем ядра»]], и повторно войдите в среду chroot (см. [[software:linux_server:lfs:chapter07#7.4. Вход в окружение Chroot|Раздел 7.4. «Вход в окружение Chroot»]]), прежде чем продолжить.
 </WRAP> </WRAP>
 +  * [[software:linux_server:lfs-example:chapter08|]]
software/linux_server/lfs-example/chapter07.1721043296.txt.gz · Последнее изменение: vladpolskiy