Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
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|]] |