| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
| software:linux_server:lfs-example:chapter07 [2024/07/15 14:48] – [7.5. Создание каталогов] vladpolskiy | software:linux_server:lfs-example:chapter07 [2024/07/15 17:53] (текущий) – [7.13.3. Восстановление] vladpolskiy |
|---|
| 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: |
| |
| EOF | EOF |
| </code> | </code> |
| | {{:software:linux_server:lfs-example:lfs_example_216.png?|}} |
| Чтобы пользователь **root** мог войти в систему и распознавался системой, в файлах **/etc/passwd** и **/etc/group** должны быть соответствующие записи. | Чтобы пользователь **root** мог войти в систему и распознавался системой, в файлах **/etc/passwd** и **/etc/group** должны быть соответствующие записи. |
| |
| EOF | EOF |
| </code> | </code> |
| | {{:software:linux_server:lfs-example:lfs_example_217.png?|}} |
| Пароль пользователя **root** будет задан позднее. | Пароль пользователя **root** будет задан позднее. |
| |
| 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, а чаще используют название группы. |
| |
| 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** были созданы, разрешение имен пользователей и групп теперь будет работать: |
| |
| 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 (и другие)** используют ряд журналов для записи такой информации, как кто и когда входил в систему. Однако эти программы не будут записывать данные в журналы, если они еще не существуют. Инициализируйте журналы и предоставьте им соответствующие разрешения: |
| |
| 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** также записываются неудачные попытки входа в систему. |
| |
| |Приблизительное время сборки:|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==== |
| |
| ./configure --disable-shared | ./configure --disable-shared |
| </code> | </code> |
| | {{:software:linux_server:lfs-example:lfs_example_224.png?|}} |
| ===Значение параметров настройки:=== | ===Значение параметров настройки:=== |
| |
| |
| <code> | <code> |
| make | time make |
| </code> | </code> |
| | {{:software:linux_server:lfs-example:lfs_example_225.png?|}} |
| Установите программы msgfmt, msgmerge, и xgettext programs: | Установите программы msgfmt, msgmerge, и xgettext programs: |
| |
| 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.»]] |
| |
| |
| <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?|}} |
| ===Значение параметров настройки:=== | ===Значение параметров настройки:=== |
| |
| Этот параметр указывает системе сборки установить документацию к 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.»]] |
| ====7.9.1. Установка пакета Perl==== | ====7.9.1. Установка пакета Perl==== |
| |
| Подготовьте Perl к компиляции: | <code> |
| | #!/bin/bash |
| | SRC_FILE=perl-5.38.2.tar.xz |
| | SRC_FOLDER=perl-5.38.2 |
| | |
| | tar -xvf $SRC_FILE |
| | cd $SRC_FOLDER |
| |
| <code> | time { |
| sh Configure -des \ | sh Configure -des \ |
| -Dprefix=/usr \ | -Dprefix=/usr \ |
| -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?|}} |
| ===Значение параметров настройки:=== | ===Значение параметров настройки:=== |
| |
| Эти настройки определяют, где 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.»]] |
| Существует два пакета, имена которых начинаются с префикса «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?|}} |
| ===Значение параметров настройки:=== | ===Значение параметров настройки:=== |
| |
| * **--without-ensurepip** | * **--without-ensurepip** |
| Этот параметр отключает установщик пакетов Python, который на данном этапе не нужен. | Этот параметр отключает установщик пакетов Python, который на данном этапе не нужен. |
| |
| Скомпилируйте пакет: | |
| |
| <code> | |
| make | |
| </code> | |
| |
| <WRAP left round info 100%> | <WRAP left round info 100%> |
| Некоторые модули 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.»]] |
| |
| |
| ====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.»]] |
| |
| <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 \ |
| --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?|}} |
| ===Значение параметров настройки:=== | ===Значение параметров настройки:=== |
| |
| Этот параметр устанавливает расположение сокета, используемого 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.»]] |
| 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. Удалите эти файлы сейчас: |
| |
| 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 ГБ дискового пространства: |
| |
| rm -rf /tools | rm -rf /tools |
| </code> | </code> |
| | {{:software:linux_server:lfs-example:lfs_example_242.png?|}} |
| ====7.13.2. Резервное копирование==== | ====7.13.2. Резервное копирование==== |
| |
| Если вы покинули среду 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|]] |