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

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

  • Показать страницу
  • История страницы
  • Ссылки сюда
  • Оставить на чай
  • Экспорт в PDF
  • Наверх

  • software:linux_server:lfs:chapter07

    Различия

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

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

    Предыдущая версия справа и слеваПредыдущая версия
    Следующая версия
    Предыдущая версия
    software:linux_server:lfs:chapter07 [2024/07/02 11:18] – [7.9. Perl-5.38.2] vladpolskiysoftware:linux_server:lfs:chapter07 [2024/07/02 12:38] (текущий) – [7. Вход в окружение Chroot и создание дополнительных временных инструментов] vladpolskiy
    Строка 1: Строка 1:
    -======7. Вход в окружение Chroot и создание дополнительных временных инструментов======+======Часть III. Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов======
     Содержание Содержание
       * [[software:linux_server:lfs:chapter07#7.1. Введение|7.1. Введение]]   * [[software:linux_server:lfs:chapter07#7.1. Введение|7.1. Введение]]
    Строка 361: Строка 361:
     |Требуемое дисковое пространство:|280 MB| |Требуемое дисковое пространство:|280 MB|
      
     +====7.9.1. Установка пакета Perl====
     +
     +Подготовьте Perl к компиляции:
     +
     +<code>
     +sh Configure -des                                        \
     +             -Dprefix=/usr                               \
     +             -Dvendorprefix=/usr                         \
     +             -Duseshrplib                                \
     +             -Dprivlib=/usr/lib/perl5/5.38/core_perl     \
     +             -Darchlib=/usr/lib/perl5/5.38/core_perl     \
     +             -Dsitelib=/usr/lib/perl5/5.38/site_perl     \
     +             -Dsitearch=/usr/lib/perl5/5.38/site_perl    \
     +             -Dvendorlib=/usr/lib/perl5/5.38/vendor_perl \
     +             -Dvendorarch=/usr/lib/perl5/5.38/vendor_perl
     +</code>
     +
     +===Значение параметров настройки:===
     +
     +Значение новых опций Configure:
     +
     +  * **-des**
     +Это комбинация из трех параметров: -d использует значения по умолчанию для всех элементов; -e обеспечивает выполнение всех задач; -s отключает несущественные выходные данные.
     +
     +  * **-Dvendorprefix=/usr**
     +Параметр гарантирует, что perl знает, как указать пакетам, где они должны устанавливать свои модули Perl.
     +
     +  * **-Duseshrplib**
     +Собрать библиотеку libperl, необходимую некоторым модулям Perl, как общую библиотеку вместо статической.
     +
     +  * **-Dprivlib,-Darchlib,-Dsitelib,...**
     +Эти настройки определяют, где 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.»]]
      
     =====7.10. Python-3.12.2===== =====7.10. Python-3.12.2=====
     +
     +|Пакет Python 3 содержит среду разработчика Python. Его можно использовать для объектно-ориентированного программирования, написания скриптов, прототипирования больших программ и разработка целых приложений. Python — это интерпретируемый язык программирования.||
     +|Приблизительное время сборки:|0.5 SBU|
     +|Требуемое дисковое пространство:|598 MB|
     +
     +====7.10.1. Установка пакета Python====
     +
     +<WRAP left round info 100%>
     +**Примечание** \\  
     +Существует два пакета, имена которых начинаются с префикса «python». Сейчас необходимо распаковать файл Python-3.12.2.tar.xz (обратите внимание на заглавную первую букву).
     +</WRAP>
     +
     +Подготовка Python к компиляции:
     +
     +<code>
     +./configure --prefix=/usr   \
     +            --enable-shared \
     +            --without-ensurepip
     +</code>
     +
     +===Значение параметров настройки:===
     +
     +  * **--enable-shared**
     +Этот параметр отключает установку статичных библиотек.
     +
     +  * **--without-ensurepip**
     +Этот параметр отключает установщик пакетов Python, который на данном этапе не нужен.
     +
     +Скомпилируйте пакет:
     +
     +<code>
     +make
     +</code>
     +
     +<WRAP left round info 100%>
     +**Примечание** \\  
     +Некоторые модули Python 3 не могут быть собраны сейчас, потому что зависимости еще не установлены. Для модуля **ssl** выводится сообщение **Python требует OpenSSL 1.1.1 или новее**. Сообщение следует проигнорировать. Просто убедитесь, что команда make верхнего уровня не завершилась ошибкой. Дополнительные модули сейчас не нужны, и они будут собраны в [[software:linux_server:lfs:chapter08|Главе 8]].
     +</WRAP>
     +
     +Установите пакет:
     +
     +<code>
     +make install
     +</code>
     +
     +Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.51.2. Содержимое пакета Python 3|Разделе 8.51.2. «Содержимое пакета Python 3.»]]
     +
     =====7.11. Texinfo-7.1===== =====7.11. Texinfo-7.1=====
     +
     +|Пакет Texinfo содержит программы для чтения, записи и преобразования информационных страниц.||
     +|Приблизительное время сборки:|0.2 SBU|
     +|Требуемое дисковое пространство:|130 MB|
     +
     +====7.11.1. Установка пакета Texinfo====
     +
     +Подготовьте Texinfo к компиляции:
     +
     +<code>
     +./configure --prefix=/usr
     +</code>
     +
     +Скомпилируйте пакет:
     +
     +<code>
     +make
     +</code>
     +
     +Установите пакет:
     +
     +<code>
     +make install
     +</code>
     +
     +Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.71.2. Содержимое пакета Texinfo|Разделе 8.71.2. «Содержимое пакета Texinfo.»]]
     +
     =====7.12. Util-linux-2.39.3===== =====7.12. Util-linux-2.39.3=====
     +
     +|Пакет Util-linux содержит различные служебные программы. Среди них утилиты для работы с файловыми системами, консолями, разделами и сообщениями.||
     +|Приблизительное время сборки:|0.2 SBU|
     +|Требуемое дисковое пространство:|172 MB|
     +
     +====7.12.1. Установка пакета Util-linux====
     +
     +FHS рекомендует использовать каталог **/var/lib/hwclock** вместо каталога **/etc** в качестве местоположения для файла **adjtime**. Создайте этот каталог:
     +
     +<code>
     +mkdir -pv /var/lib/hwclock
     +</code>
     +
     +Подготовьте Util-linux к компиляции:
     +
     +<code>
     +./configure --libdir=/usr/lib    \
     +            --runstatedir=/run   \
     +            --disable-chfn-chsh  \
     +            --disable-login      \
     +            --disable-nologin    \
     +            --disable-su         \
     +            --disable-setpriv    \
     +            --disable-runuser    \
     +            --disable-pylibmount \
     +            --disable-static     \
     +            --without-python     \
     +            ADJTIME_PATH=/var/lib/hwclock/adjtime \
     +            --docdir=/usr/share/doc/util-linux-2.39.3
     +</code>
     +
     +===Значение параметров настройки:===
     +
     +  * **ADJTIME_PATH=/var/lib/hwclock/adjtime**
     +Этот параметр устанавливает расположение файла для записи информации об аппаратных часах в соответствии с FHS. Он не обязателен для временного инструментария, но предотвращает создание файла в другом месте, где файл не будет перезаписан или удален при финальной сборке пакета util-linux.
     +
     +  * **--libdir=/usr/lib**
     +Этот параметр гарантирует, что символические ссылки .so, будут указывать на файл общей библиотеки в том же каталоге (/usr/lib).
     +
     +  * **--disable-**
     +Этот параметр предотвращают появление предупреждений о сборке компонентов, для которых требуются пакеты, отсутствующие или еще не установленные в LFS.
     +
     +  * **--without-python**
     +Этот параметр отключает использование Python. Это позволяет избежать попыток создания ненужных привязок.
     +
     +  * **--runstatedir=/run**
     +Этот параметр устанавливает расположение сокета, используемого uuidd и libuuid.
     +
     +Скомпилируйте пакет:
     +
     +<code>
     +make
     +</code>
     +
     +Установите пакет:
     +
     +<code>
     +make install
     +</code>
     +
     +Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.79.2. Содержимое пакета Util-linux|Разделе 8.79.2. «Содержимое пакета Util-linux.»]]
     =====7.13. Очистка и сохранение временной системы===== =====7.13. Очистка и сохранение временной системы=====
     +====7.13.1. Очистка====
     +
     +Во-первых, удалите установленную документацию, чтобы предотвратить ее попадание в конечную систему и сэкономить около 35 МБ места:
     +
     +<code>
     +rm -rf /usr/share/{info,man,doc}/*
     +</code>
     +
     +Во-вторых, в современных системах Linux файлы .la библиотеки libtool полезны только для libltdl. Никакие библиотеки в LFS не загружаются с помощью libltdl. Известно, что некоторые файлы .la могут привести к сбою во время сборки пакетов BLFS. Удалите эти файлы сейчас:
     +
     +<code>
     +find /usr/{lib,libexec} -name \*.la -delete
     +</code>
     +
     +Сейчас размер системы составляет около 3 ГБ, однако каталог /tools больше не понадобится. Удалите его, чтобы освободить около 1 ГБ дискового пространства:
     +
     +<code>
     +rm -rf /tools
     +</code>
     +
     +====7.13.2. Резервное копирование====
     +
     +На данный момент основные программы и библиотеки собраны, и ваша система LFS находится в хорошем состоянии. Можно создать резервную копию вашей системы для последующего повторного использования. В случае фатальных сбоев в следующих главах часто оказывается, что удалить все и начать заново (более осторожно) — лучший вариант восстановления. К сожалению, все временные файлы также будут удалены. Чтобы не тратить лишнее время на повторную сборку того, что было успешно собрано, полезно создать резервную копию текущей системы LFS.
     +
     +<WRAP left round info 100%>
     +**Примечание** \\  
     +Все остальные шаги в этом разделе являются необязательными. Тем не менее, как только вы начнете устанавливать пакеты в [[software:linux_server:lfs:chapter08|Главе 8]], временные файлы будут перезаписаны. Поэтому рекомендуется создание резервной копии текущей системы, как описано ниже.
     +</WRAP>
     +
     +Следующие шаги выполняются вне среды chroot. Это означает, что прежде чем продолжить вы должны покинуть среду chroot. Причиной этого является то, что необходимо получить доступ к расположению файловой системы за пределами среды chroot для хранения/чтения архива резервных копий, который не должен размещаться в иерархии $LFS.
     +
     +Если вы решили сделать резервную копию, покиньте среду chroot:
     +
     +<code>
     +exit
     +</code>
     +
     +<WRAP left round alert 100%>
     +**Важно** \\  
     +Все следующие инструкции выполняются пользователем root в вашей хост-системе. Будьте особенно внимательны к командам, которые вы собираетесь запускать, поскольку ошибки, допущенные здесь, могут изменить вашу хост-систему. Имейте в виду, что переменная окружения LFS по умолчанию установлена для пользователя lfs, но может не быть установлена для root.
     +
     +Всякий раз, когда команды должны выполняться от root, убедитесь, что вы установили переменную LFS.
     +
     +Это обсуждалось в [[software:linux_server:lfs:chapter02#2.6. Установка переменной $LFS|Разделе 2.6. «Установка переменной $LFS»]].
     +</WRAP>
     +
     +Перед созданием резервной копии размонтируйте виртуальные файловые системы:
     +
     +<code>
     +mountpoint -q $LFS/dev/shm && umount $LFS/dev/shm
     +umount $LFS/dev/pts
     +umount $LFS/{sys,proc,run,dev}
     +</code>
     +
     +Убедитесь, что у вас есть как минимум 1 ГБ свободного места на диске (исходные tar-архивы будут включены в архив резервных копий) в файловой системе, содержащей каталог, в котором вы создаете архив резервных копий.
     +
     +Обратите внимание, что в приведенных ниже инструкциях указан домашний каталог пользователя root хост-системы, который обычно находится в корневой файловой системе. Замените **$HOME** каталогом на ваш выбор, если вы не хотите, чтобы резервная копия хранилась в домашнем каталоге пользователя **root**.
     +
     +Поскольку архив резервной копии сжимается, процесс занимает довольно много времени (более 10 минут) даже на достаточно быстрой системе.
     +
     +Создайте архив резервной копии, выполнив следующую команду:
     +
     +<code>
     +cd $LFS
     +tar -cJpf $HOME/lfs-temp-tools-12.1-systemd.tar.xz .
     +</code>
     +
     +<WRAP left round info 100%>
     +**Примечание** \\  
     +Если вы переходите к [[software:linux_server:lfs:chapter08|Главе 8]], не забудьте повторно войти в среду chroot, как описано в разделе «Важно» ниже.
     +</WRAP>
     +
     +
     +
     +
     +=====7.13.3. Восстановление=====
     +
     +В случае, если были допущены какие-либо ошибки и вам нужно начать все сначала, вы можете использовать эту резервную копию для восстановления системы и сэкономить время на восстановление. Поскольку исходники находятся в папке **$LFS**, они также включены в архив резервной копии, поэтому их не нужно загружать повторно. Убедившись, что переменная **$LFS** настроена правильно, вы можете восстановить резервную копию, выполнив следующие команды:
     +
     +<WRAP left round alert 100%>
     +**Предупреждение** \\  
     +Следующие команды чрезвычайно опасны. Если вы запустите команду **rm -rf ./*** от имени пользователя **root** и не перейдете в каталог **$LFS** или переменная окружения **LFS** не будет установлена для пользователя **root**, это уничтожит всю вашу хост-систему. **ВЫ ПРЕДУПРЕЖДЕНЫ.**
     +</WRAP>
     +
     +<code>
     +cd $LFS
     +rm -rf ./*
     +tar -xpf $HOME/lfs-temp-tools-12.1-systemd.tar.xz
     +</code>
     +
     +Еще раз проверьте, правильно ли настроено окружение, и продолжайте сборку остальной части системы.
     +
     +<WRAP left round tip 100%>
     +Важно
     +Если вы покинули среду 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>
      
    software/linux_server/lfs/chapter07.1719908317.txt.gz · Последнее изменение: 2024/07/02 11:18 — vladpolskiy