software:linux_server:lfs-example:chapter07
                Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| software:linux_server:lfs-example:chapter07 [2024/07/02 12:38] – создано - внешнее изменение 127.0.0.1 | software:linux_server:lfs-example:chapter07 [2024/07/15 17:53] (текущий) – [7.13.3. Восстановление] vladpolskiy | ||
|---|---|---|---|
| Строка 31: | Строка 31: | ||
| Команды, | Команды, | ||
| </ | </ | ||
| + | Перейдем к пользователю под именем root | ||
| + | < | ||
| + | exit | ||
| + | </ | ||
| + | {{: | ||
| + | Проверим переменную $LFS | ||
| + | < | ||
| + | echo $LFS | ||
| + | </ | ||
| + | {{: | ||
| В настоящее время вся иерархия каталогов в $LFS принадлежит пользователю **lfs**, существующему только на хост-системе. Если права на файлы и каталоги внутри $LFS оставить как есть, то они будут принадлежать ID пользователя без существующей учетной записи. Это опасно, | В настоящее время вся иерархия каталогов в $LFS принадлежит пользователю **lfs**, существующему только на хост-системе. Если права на файлы и каталоги внутри $LFS оставить как есть, то они будут принадлежать ID пользователя без существующей учетной записи. Это опасно, | ||
| Строка 42: | Строка 51: | ||
| esac | esac | ||
| </ | </ | ||
| + | {{: | ||
| =====7.3. Подготовка виртуальных файловых систем ядра===== | =====7.3. Подготовка виртуальных файловых систем ядра===== | ||
| Строка 51: | Строка 61: | ||
| mkdir -pv $LFS/ | mkdir -pv $LFS/ | ||
| </ | </ | ||
| + | {{: | ||
| ====7.3.1. Монтирование и заполнение /dev==== | ====7.3.1. Монтирование и заполнение /dev==== | ||
| Строка 61: | Строка 71: | ||
| mount -v --bind /dev $LFS/dev | mount -v --bind /dev $LFS/dev | ||
| </ | </ | ||
| + | {{: | ||
| ====7.3.2. Монтирование виртуальных файловых систем ядра==== | ====7.3.2. Монтирование виртуальных файловых систем ядра==== | ||
| Строка 72: | Строка 82: | ||
| mount -vt tmpfs tmpfs $LFS/run | mount -vt tmpfs tmpfs $LFS/run | ||
| </ | </ | ||
| + | {{: | ||
| Значение параметров монтирования для devpts: | Значение параметров монтирования для devpts: | ||
| Строка 92: | Строка 102: | ||
| fi | fi | ||
| </ | </ | ||
| + | {{: | ||
| =====7.4. Вход в окружение Chroot===== | =====7.4. Вход в окружение Chroot===== | ||
| Строка 108: | Строка 118: | ||
| /bin/bash --login | /bin/bash --login | ||
| </ | </ | ||
| + | {{: | ||
| Если вы не хотите использовать все доступные логические ядра, замените параметр $(nproc) количеством логических ядер, которые вы хотите использовать для сборки пакетов в этой и последующих главах. На наборы тестов некоторых пакетов (в частности Autoconf, Libtool и Tar) в [[software: | Если вы не хотите использовать все доступные логические ядра, замените параметр $(nproc) количеством логических ядер, которые вы хотите использовать для сборки пакетов в этой и последующих главах. На наборы тестов некоторых пакетов (в частности Autoconf, Libtool и Tar) в [[software: | ||
| Строка 137: | Строка 147: | ||
| mkdir -pv / | mkdir -pv / | ||
| </ | </ | ||
| + | {{: | ||
| Создайте необходимые подкаталоги, | Создайте необходимые подкаталоги, | ||
| Строка 158: | Строка 168: | ||
| install -dv -m 1777 /tmp /var/tmp | install -dv -m 1777 /tmp /var/tmp | ||
| </ | </ | ||
| + | {{: | ||
| + | Вывод результата выполнения команд | ||
| + | {{: | ||
| По умолчанию каталоги создаются с правами 755, но это нежелательно делать для всех каталогов. В приведенных выше командах вносятся два изменения — одно в домашний каталог пользователя root, а другое в каталоги для временных файлов. | По умолчанию каталоги создаются с правами 755, но это нежелательно делать для всех каталогов. В приведенных выше командах вносятся два изменения — одно в домашний каталог пользователя root, а другое в каталоги для временных файлов. | ||
| Строка 179: | Строка 191: | ||
| ln -sv / | ln -sv / | ||
| </ | </ | ||
| + | {{: | ||
| Создайте файл **/ | Создайте файл **/ | ||
| Строка 188: | Строка 200: | ||
| EOF | EOF | ||
| </ | </ | ||
| + | {{: | ||
| Чтобы пользователь **root** мог войти в систему и распознавался системой, | Чтобы пользователь **root** мог войти в систему и распознавался системой, | ||
| Строка 211: | Строка 223: | ||
| EOF | EOF | ||
| </ | </ | ||
| + | {{: | ||
| Пароль пользователя **root** будет задан позднее. | Пароль пользователя **root** будет задан позднее. | ||
| Строка 253: | Строка 265: | ||
| EOF | EOF | ||
| </ | </ | ||
| + | {{: | ||
| Созданные группы не являются частью какого-либо стандарта — это группы, | Созданные группы не являются частью какого-либо стандарта — это группы, | ||
| Строка 265: | Строка 277: | ||
| install -o tester -d / | install -o tester -d / | ||
| </ | </ | ||
| + | {{: | ||
| Чтобы удалить приглашение «I have no name!», запустите новую оболочку. Поскольку файлы **/ | Чтобы удалить приглашение «I have no name!», запустите новую оболочку. Поскольку файлы **/ | ||
| Строка 271: | Строка 283: | ||
| exec / | exec / | ||
| </ | </ | ||
| + | {{: | ||
| Программы **login, agetty, init (и другие)** используют ряд журналов для записи такой информации, | Программы **login, agetty, init (и другие)** используют ряд журналов для записи такой информации, | ||
| Строка 280: | Строка 292: | ||
| chmod -v 600  / | chmod -v 600  / | ||
| </ | </ | ||
| + | {{: | ||
| В файл **/ | В файл **/ | ||
| Строка 292: | Строка 304: | ||
| |Приблизительное время сборки: | |Приблизительное время сборки: | ||
| |Требуемое дисковое пространство: | |Требуемое дисковое пространство: | ||
| + | Переходим в папку /sources | ||
| + | < | ||
| + | cd /sources/ | ||
| + | </ | ||
| + | {{: | ||
| + | Распаковываем архив и переходим в каталог с его содержимым | ||
| + | < | ||
| + | tar -xvf gettext-0.22.4.tar.xz | ||
| + | cd gettext-0.22.4 | ||
| + | </ | ||
| + | {{: | ||
| ====7.7.1. Установка пакета Gettext==== | ====7.7.1. Установка пакета Gettext==== | ||
| Строка 302: | Строка 324: | ||
| ./configure --disable-shared | ./configure --disable-shared | ||
| </ | </ | ||
| + | {{: | ||
| ===Значение параметров настройки: | ===Значение параметров настройки: | ||
| Строка 311: | Строка 333: | ||
| < | < | ||
| - | make | + | time make | 
| </ | </ | ||
| + | {{: | ||
| Установите программы msgfmt, msgmerge, и xgettext programs: | Установите программы msgfmt, msgmerge, и xgettext programs: | ||
| Строка 319: | Строка 341: | ||
| cp -v gettext-tools/ | cp -v gettext-tools/ | ||
| </ | </ | ||
| + | {{: | ||
| + | Перейдем в каталог sources и удалим более не нужный разорхивированный каталог | ||
| + | < | ||
| + | cd .. | ||
| + | rm -Rf cd gettext-0.22.4 | ||
| + | </ | ||
| + | {{: | ||
| Подробная информация об этом пакете находится в [[software: | Подробная информация об этом пакете находится в [[software: | ||
| Строка 333: | Строка 361: | ||
| < | < | ||
| + | #!/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=/ | ./configure --prefix=/ | ||
| - |             --docdir=/ | + |             --docdir=/ | 
| - | </code> | + | time make && | 
| + | make install; } && | ||
| + | ln -sv gcc $LFS/ | ||
| + | cd .. && | ||
| + | rm -rf $SRC_FOLDER && | ||
| + | |||
| + | echo Del $SRC_FOLDER | ||
| + | echo Ok $SRC_FILE | ||
| + | </ | ||
| + | {{: | ||
| ===Значение параметров настройки: | ===Значение параметров настройки: | ||
| Строка 342: | Строка 387: | ||
| Этот параметр указывает системе сборки установить документацию к bison в каталог с версией пакета. | Этот параметр указывает системе сборки установить документацию к bison в каталог с версией пакета. | ||
| - | Скомпилируйте пакет: | + | {{:software:linux_server: | 
| - | + | ||
| - | < | + | |
| - | make | + | |
| - | </ | + | |
| - | + | ||
| - | Установите пакет: | + | |
| - | + | ||
| - | < | + | |
| - | make install | + | |
| - | </ | + | |
| Подробная информация об этом пакете находится в [[software: | Подробная информация об этом пакете находится в [[software: | ||
| Строка 363: | Строка 398: | ||
| ====7.9.1. Установка пакета Perl==== | ====7.9.1. Установка пакета Perl==== | ||
| - | Подготовьте Perl к компиляции: | + | < | 
| + | # | ||
| + | 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 \ | ||
|               |               | ||
| Строка 375: | Строка 416: | ||
|               |               | ||
|               |               | ||
| - |               | + |               | 
| - | </ | + | make && | 
| + | make install; } && | ||
| + | cd .. && | ||
| + | rm -rf $SRC_FOLDER && | ||
| + | |||
| + | echo Delete $SRC_FOLDER | ||
| + | echo Ok $SRC_FILE | ||
| + | </ | ||
| + | {{: | ||
| ===Значение параметров настройки: | ===Значение параметров настройки: | ||
| Строка 394: | Строка 443: | ||
| Эти настройки определяют, | Эти настройки определяют, | ||
| - | Скомпилируйте пакет: | ||
| - | < | ||
| - | make | ||
| - | </ | ||
| - | |||
| - | Установите пакет: | ||
| - | |||
| - | < | ||
| - | make install | ||
| - | </ | ||
| Подробная информация об этом пакете находится в [[software: | Подробная информация об этом пакете находится в [[software: | ||
| Строка 420: | Строка 459: | ||
| Существует два пакета, | Существует два пакета, | ||
| </ | </ | ||
| + | Воспользуемся скриптом | ||
| + | < | ||
| + | #!/bin/bash | ||
| + | SRC_FILE=Python-3.12.2.tar.xz | ||
| + | SRC_FOLDER=Python-3.12.2 | ||
| - | Подготовка Python к компиляции: | + | tar -xvf $SRC_FILE | 
| + | cd $SRC_FOLDER | ||
| - | < | + | time { | 
| ./configure --prefix=/ | ./configure --prefix=/ | ||
| --enable-shared \ | --enable-shared \ | ||
| - | --without-ensurepip | + |             --without-ensurepip  | 
| - | </ | + | make && | 
| + | make install; } && | ||
| + | cd .. && | ||
| + | rm -rf $SRC_FOLDER && | ||
| + | |||
| + | echo Delete $SRC_FOLDER | ||
| + | echo Ok $SRC_FILE | ||
| + | </ | ||
| + | {{: | ||
| ===Значение параметров настройки: | ===Значение параметров настройки: | ||
| Строка 436: | Строка 489: | ||
| * **--without-ensurepip** | * **--without-ensurepip** | ||
| Этот параметр отключает установщик пакетов Python, который на данном этапе не нужен. | Этот параметр отключает установщик пакетов Python, который на данном этапе не нужен. | ||
| - | |||
| - | Скомпилируйте пакет: | ||
| - | |||
| - | < | ||
| - | make | ||
| - | </ | ||
| <WRAP left round info 100%> | <WRAP left round info 100%> | ||
| Строка 447: | Строка 494: | ||
| Некоторые модули Python 3 не могут быть собраны сейчас, | Некоторые модули Python 3 не могут быть собраны сейчас, | ||
| </ | </ | ||
| - | + | {{:software: | |
| - | Установите пакет: | + | |
| - | + | ||
| - | < | + | |
| - | make install | + | |
| - | </ | + | |
| Подробная информация об этом пакете находится в [[software: | Подробная информация об этом пакете находится в [[software: | ||
| Строка 463: | Строка 504: | ||
| ====7.11.1. Установка пакета Texinfo==== | ====7.11.1. Установка пакета Texinfo==== | ||
| - | |||
| - | Подготовьте Texinfo к компиляции: | ||
| - | |||
| < | < | ||
| - | ./configure --prefix=/usr | + | #!/bin/bash | 
| - | </ | + | SRC_FILE=texinfo-7.1.tar.xz | 
| + | SRC_FOLDER=texinfo-7.1 | ||
| - | Скомпилируйте пакет: | + | tar -xvf $SRC_FILE | 
| + | cd $SRC_FOLDER | ||
| - | < | + | time { | 
| - | make | + | ./configure --prefix=/ | 
| - | </ | + | make && | 
| + | make install; } && | ||
| - | Установите пакет: | + | cd .. && | 
| + | rm -rf $SRC_FOLDER && | ||
| - | < | + | echo Delete $SRC_FOLDER | 
| - | make install | + | echo Ok $SRC_FILE | 
| </ | </ | ||
| + | {{: | ||
| + | Вывод окончания работы скрипта | ||
| + | {{: | ||
| Подробная информация об этом пакете находится в [[software: | Подробная информация об этом пакете находится в [[software: | ||
| Строка 501: | Строка 546: | ||
| < | < | ||
| + | #!/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 / | ||
| + | time { | ||
| ./configure --libdir=/ | ./configure --libdir=/ | ||
|             --runstatedir=/ |             --runstatedir=/ | ||
| Строка 513: | Строка 565: | ||
|             --without-python  |             --without-python  | ||
|             ADJTIME_PATH=/ |             ADJTIME_PATH=/ | ||
| - |             --docdir=/ | + |             --docdir=/ | 
| + | make && | ||
| + | make install; } && | ||
| + | cd .. && | ||
| + | rm -rf $SRC_FOLDER && | ||
| + | echo Delete $SRC_FOLDER | ||
| + | echo Ok $SRC_FILE | ||
| </ | </ | ||
| + | {{: | ||
| ===Значение параметров настройки: | ===Значение параметров настройки: | ||
| Строка 533: | Строка 591: | ||
| Этот параметр устанавливает расположение сокета, | Этот параметр устанавливает расположение сокета, | ||
| - | Скомпилируйте пакет: | + | {{:software:linux_server: | 
| - | + | ||
| - | < | + | |
| - | make | + | |
| - | </ | + | |
| - | + | ||
| - | Установите пакет: | + | |
| - | + | ||
| - | < | + | |
| - | make install | + | |
| - | </ | + | |
| Подробная информация об этом пакете находится в [[software: | Подробная информация об этом пакете находится в [[software: | ||
| Строка 554: | Строка 602: | ||
| rm -rf / | rm -rf / | ||
| </ | </ | ||
| + | {{: | ||
| Во-вторых, | Во-вторых, | ||
| Строка 560: | Строка 608: | ||
| find / | find / | ||
| </ | </ | ||
| + | {{: | ||
| Сейчас размер системы составляет около 3 ГБ, однако каталог /tools больше не понадобится. Удалите его, чтобы освободить около 1 ГБ дискового пространства: | Сейчас размер системы составляет около 3 ГБ, однако каталог /tools больше не понадобится. Удалите его, чтобы освободить около 1 ГБ дискового пространства: | ||
| Строка 566: | Строка 614: | ||
| rm -rf /tools | rm -rf /tools | ||
| </ | </ | ||
| + | {{: | ||
| ====7.13.2. Резервное копирование==== | ====7.13.2. Резервное копирование==== | ||
| Строка 643: | Строка 691: | ||
| Если вы покинули среду chroot, чтобы создать резервную копию или перезапустить сборку с помощью восстановления, | Если вы покинули среду chroot, чтобы создать резервную копию или перезапустить сборку с помощью восстановления, | ||
| </ | </ | ||
| + |   * [[software: | ||
software/linux_server/lfs-example/chapter07.1719913126.txt.gz · Последнее изменение:   — 127.0.0.1
                
                