Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
software:linux_server:lfs-example:chapter04 [2024/07/14 22:37] – [4.1. Введение] vladpolskiy | software:linux_server:lfs-example:chapter04 [2024/07/19 03:39] (текущий) – [4.4. Настройка окружения] vladpolskiy |
---|
======Часть II. Глава 4. Заключительный этап подготовки====== | ======Часть II. Глава 4. Заключительный этап подготовки====== |
* [[software:linux_server:lfs-example:chapter03|<- назад]] | * Пред. [[software:linux_server:lfs-example:chapter03|]] |
Содержание | Содержание |
* [[software:linux_server:lfs:chapter04#4.1. Введение|4.1. Введение]] | * [[software:linux_server:lfs:chapter04#4.1. Введение|4.1. Введение]] |
| |
Создайте необходимую иерархию каталогов, выполнив следующую команду: | Создайте необходимую иерархию каталогов, выполнив следующую команду: |
{{:software:linux_server:lfs-example:lfs_example_46.png?|}} | |
<code> | <code> |
sudo mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin} | mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin} |
| </code> |
| {{:software:linux_server:lfs-example:lfs_example_104.png?|}} |
| <code> |
for i in bin lib sbin; do | for i in bin lib sbin; do |
ln -sv usr/$i $LFS/$i | ln -sv usr/$i $LFS/$i |
done | done |
| </code> |
| {{:software:linux_server:lfs-example:lfs_example_105.png?|}} |
| <code> |
case $(uname -m) in | case $(uname -m) in |
x86_64) mkdir -pv $LFS/lib64 ;; | x86_64) mkdir -pv $LFS/lib64 ;; |
esac | esac |
</code> | </code> |
{{:software:linux_server:lfs-example:lfs_example_46.png?|}} | {{:software:linux_server:lfs-example:lfs_example_106.png?|}} |
| Проверим созданные ссылки и каталоги |
| <code> |
| ls -l $LFS |
| </code> |
| {{:software:linux_server:lfs-example:lfs_example_107.png?|}} |
| {{:software:linux_server:lfs-example:lfs_example_108.png?|}} |
Программы в [[software:linux_server:lfs:chapter06|Главе 6]] будут скомпилированы с помощью кросс-компилятора (более подробная информация приведена в разделе [[software:linux_server:lfs:partintro#ii. Технические примечания по сборочным инструментам|Технические примечания по сборочным инструментам]]). Чтобы отделить кросс-компилятор от других программ, он будет установлен в специальный каталог. Создайте этот каталог с помощью следующей команды: | Программы в [[software:linux_server:lfs:chapter06|Главе 6]] будут скомпилированы с помощью кросс-компилятора (более подробная информация приведена в разделе [[software:linux_server:lfs:partintro#ii. Технические примечания по сборочным инструментам|Технические примечания по сборочным инструментам]]). Чтобы отделить кросс-компилятор от других программ, он будет установлен в специальный каталог. Создайте этот каталог с помощью следующей команды: |
| |
<code> | <code> |
sudo mkdir -pv $LFS/tools | mkdir -pv $LFS/tools |
</code> | </code> |
{{:software:linux_server:lfs-example:lfs_example_48.png?|}} | {{:software:linux_server:lfs-example:lfs_example_48.png?|}} |
<WRAP left round tip 100%> | <WRAP left round tip 100%> |
**Примечание** \\ | **Примечание** \\ |
Директория **lost+found** которую мы не создавали, была создана утилитой fsck, которая предназначена для проверки файловой системы. | Директория **lost+found** которую мы не создавали, может быть создана утилитой fsck, которая предназначена для проверки файловой системы. |
Если утилита fsck в ходе проверки находит данные в файловой системе, которые повреждены или не имеют имени в системе («осиротевшие»), то такие файлы помещаются в директорию lost+found. | Если утилита fsck в ходе проверки находит данные в файловой системе, которые повреждены или не имеют имени в системе («осиротевшие»), то такие файлы помещаются в директорию lost+found. |
| |
Чтобы просмотреть содержимое директории **lost+found** можно воспользоваться следующими командами: | Чтобы просмотреть содержимое директории **lost+found** можно воспользоваться следующими командами: |
<code> | <code> |
sudo ls -l $LFS/lost+found | ls -l $LFS/lost+found |
</code> | </code> |
</WRAP> | </WRAP> |
| |
<code> | <code> |
sudo groupadd lfs | groupadd lfs |
sudo useradd -s /bin/bash -g lfs -m -k /dev/null lfs | useradd -s /bin/bash -g lfs -m -k /dev/null lfs |
</code> | </code> |
{{:software:linux_server:lfs-example:lfs_example_53.png?|}} | {{:software:linux_server:lfs-example:lfs_example_53.png?|}} |
| |
<code> | <code> |
sudo passwd lfs | passwd lfs |
</code> | </code> |
{{:software:linux_server:lfs-example:lfs_example_55.png?|}} | {{:software:linux_server:lfs-example:lfs_example_55.png?|}} |
| |
<code> | <code> |
sudo chown -v lfs $LFS/{var,usr{,/*},tools,sources,etc} | chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools} |
| </code> |
| {{:software:linux_server:lfs-example:lfs_example_109.png?|}} |
| <code> |
| case $(uname -m) in |
| x86_64) chown -v lfs $LFS/lib64 ;; |
| esac |
</code> | </code> |
{{:software:linux_server:lfs-example:lfs_example_56.png?|}} | {{:software:linux_server:lfs-example:lfs_example_56.png?|}} |
Некоторые коммерческие дистрибутивы добавляют недокументированный экземпляр /etc/bash.bashrc для инициализации bash. Этот файл потенциально может изменить среду пользователя lfs таким образом, что это может повлиять на сборку важных пакетов LFS. Чтобы убедиться, что пользовательская среда lfs чиста, проверьте наличие файла /etc/bash.bashrc и, если он есть, переименуйте его. От имени пользователя root, запустите: | Некоторые коммерческие дистрибутивы добавляют недокументированный экземпляр /etc/bash.bashrc для инициализации bash. Этот файл потенциально может изменить среду пользователя lfs таким образом, что это может повлиять на сборку важных пакетов LFS. Чтобы убедиться, что пользовательская среда lfs чиста, проверьте наличие файла /etc/bash.bashrc и, если он есть, переименуйте его. От имени пользователя root, запустите: |
<code> | <code> |
sudo su | exit |
</code> | </code> |
<code> | <code> |
На тестовой машине установлен AMD Ryzen 7 3700X 8-Core Processor | На тестовой машине установлен AMD Ryzen 7 3700X 8-Core Processor |
{{:software:linux_server:lfs-example:lfs_example_65.png?|}} | {{:software:linux_server:lfs-example:lfs_example_65.png?|}} |
поэтому выполним команду | Откроем файл ~/.bashrc в редакторе nano |
<code> | <code> |
export MAKEFLAGS=-j32 | nano ~/.bashrc |
| </code> |
| {{:software:linux_server:lfs-example:lfs_example_111.png?|}} |
| Добавим в конце нашу строку **export MAKEFLAGS=-j32** |
| {{:software:linux_server:lfs-example:lfs_example_110.png?|}} |
| CTRL+O -> ENTER -> CTRL+X для сохранения и выхода из редактора |
| <code> |
| nproc |
</code> | </code> |
{{:software:linux_server:lfs-example:lfs_example_63.png?|}} | {{:software:linux_server:lfs-example:lfs_example_112.png?|}} |
<WRAP left round important 100%> | <WRAP left round important 100%> |
**Важно** \\ | **Важно** \\ |
EOF | EOF |
</code> | </code> |
| {{:software:linux_server:lfs-example:lfs_example_113.png?|}} |
Замените **$(nproc)** количеством логических ядер, которые вы хотите использовать, если вы планируете использовать не все логические ядра. | Замените **$(nproc)** количеством логических ядер, которые вы хотите использовать, если вы планируете использовать не все логические ядра. |
{{:software:linux_server:lfs-example:lfs_example_66.png?|}} | |
Наконец, чтобы убедиться, что среда полностью подготовлена для сборки временных инструментов, перечитайте только что созданный профиль пользователя: | Наконец, чтобы убедиться, что среда полностью подготовлена для сборки временных инструментов, перечитайте только что созданный профиль пользователя: |
Перейдем к пользователю lfs | Перейдем к пользователю lfs |
source ~/.bash_profile | source ~/.bash_profile |
</code> | </code> |
| <code> |
| echo $MAKEFLAGS |
| </code> |
| {{:software:linux_server:lfs-example:lfs_example_114.png?|}} |
Посмотрим что внутри нашего файла .bash_profile | Посмотрим что внутри нашего файла .bash_profile |
<code> | <code> |
Жмем CTRL+X для выхода из редактора nano | Жмем CTRL+X для выхода из редактора nano |
{{:software:linux_server:lfs-example:lfs_example_68.png?|}} | {{:software:linux_server:lfs-example:lfs_example_68.png?|}} |
| <code> |
| exit |
| </code> |
| {{:software:linux_server:lfs-example:lfs_example_114.1.png?|}} |
=====4.5. О SBU (Стандартная единица времени сборки)===== | =====4.5. О SBU (Стандартная единица времени сборки)===== |
| |
| |
Иногда наборы тестов не работают, по причинам, о которых знают разработчики и которые они считают некритичными. Просмотрите журналы, расположенные по адресу https://mirror.linuxfromscratch.ru/lfs/build-logs/12.1/, чтобы проверить, ожидаются ли сбои. Этот сайт актуален для всех наборов тестов, описанных в книге. | Иногда наборы тестов не работают, по причинам, о которых знают разработчики и которые они считают некритичными. Просмотрите журналы, расположенные по адресу https://mirror.linuxfromscratch.ru/lfs/build-logs/12.1/, чтобы проверить, ожидаются ли сбои. Этот сайт актуален для всех наборов тестов, описанных в книге. |
* [[software:linux_server:lfs-example:chapter05|]] | * След. [[software:linux_server:lfs-example:chapter05|]] |