11.5. Начало работы после сборки LFS

11.5.1. Что делать дальше?

Теперь, когда LFS собрана и у вас есть загружаемая система, необходимо решить, что же делать дальше? Следующий шаг - определиться, как использовать систему. Как правило, следует учитывать две широкие категории: рабочая станция или сервер. Действительно, эти категории не являются взаимоисключающими. Приложения, необходимые для каждой категории, можно объединить в одну систему, но пока давайте рассмотрим их по отдельности.

Сервер — более простая категория. Как правило, это веб-сервер, такой как Apache, и сервер баз данных, например, MariaDB. Однако возможны и другие варианты. К этой же категории относятся операционные системы для встраиваемых устройств.

Рабочая станция же, гораздо сложнее. Обычно для нее требуется среда рабочего стола, например, LXDE, XFCE, KDE, или Gnome основанные на базовом графическом окружении и набор графических приложений, таких как веб-браузер Firefox, почтовый клиент Thunderbird, или пакет офисных приложений LibreOffice. Для этих приложений требуется множество (может быть несколько сотен, в зависимости от ваших потребностей) пакетов вспомогательных приложений и библиотек.

В дополнение к вышесказанному, существует набор приложений для управления системой. Все эти приложения есть в справочнике BLFS, но не все пакеты необходимы в каждом конкретном окружении. Например клиент dhcpcd, обычно не требуется на серверах или управление параметрами беспроводных сетей - полезно только для ноутбуков и других портативных систем.

11.5.2. Работа в базовой среде LFS

Когда вы впервые загружаетесь в LFS, у вас есть все необходимые инструменты для сборки дополнительных пакетов. К сожалению, набор программ пользовательского окружения довольно скудный. Есть несколько способов исправить это:

11.5.2.1. Работа с хоста LFS в chroot

Этот метод обеспечивает полноценную графическую среду, в которой доступен полнофункциональный браузер и возможности копирования/вставки. Также он позволяет использовать приложения хоста, такие как wget, для загрузки исходных текстов пакетов в каталог, доступный при работе в среде chroot.

Чтобы правильно собрать пакеты в chroot, вам необходимо не забыть смонтировать виртуальные файловые системы, если они еще не смонтированы. Один из способов сделать это — создать скрипт в ХОСТОВОЙ системе:

cat > ~/mount-virt.sh << "EOF"
#!/bin/bash

function mountbind
{
   if ! mountpoint $LFS/$1 >/dev/null; then
     $SUDO mount --bind /$1 $LFS/$1
     echo $LFS/$1 mounted
   else
     echo $LFS/$1 already mounted
   fi
}

function mounttype
{
   if ! mountpoint $LFS/$1 >/dev/null; then
     $SUDO mount -t $2 $3 $4 $5 $LFS/$1
     echo $LFS/$1 mounted
   else
     echo $LFS/$1 already mounted
   fi
}

if [ $EUID -ne 0 ]; then
  SUDO=sudo
else
  SUDO=""
fi

if [ x$LFS == x ]; then
  echo "LFS not set"
  exit 1
fi

mountbind dev
mounttype dev/pts devpts devpts -o gid=5,mode=620
mounttype proc    proc   proc
mounttype sys     sysfs  sysfs
mounttype run     tmpfs  run
if [ -h $LFS/dev/shm ]; then
  mkdir -pv $LFS/$(readlink $LFS/dev/shm)
else
  mounttype dev/shm tmpfs tmpfs -o nosuid,nodev
fi 

#mountbind usr/src
#mountbind boot
#mountbind home
EOF

Обратите внимание, что последние три команды в скрипте закомментированы. Они пригодятся, если эти каталоги монтируются как отдельные разделы в хост-системе и будут монтироваться при загрузке завершенной системы LFS/BLFS.

Скрипт можно запустить с помощью bash ~/mount-virt.sh либо от имени обычного пользователя (рекомендуется), либо от имени root. При запуске от имени обычного пользователя в хост-системе требуется sudo.

Еще одна проблема, на которую указывает скрипт, заключается в том, где хранить загруженные файлы пакетов. Это местоположение является произвольным. Оно может находиться в домашнем каталоге обычного пользователя, таком как ~/sources, или в глобальном каталоге /usr/src. Наша рекомендация - не смешивать источники BLFS и источники LFS в (из среды chroot) /sources. В любом случае, пакеты должны быть доступны внутри среды chroot.

Последняя удобная функция, представленная здесь, предназначена для упрощения процесса входа в среду chroot. Это можно сделать с помощью псевдонима, помещенного в пользовательский файл ~/.bashrc в хост-системе:

alias lfs='sudo /usr/sbin/chroot /mnt/lfs /usr/bin/env -i HOME=/root TERM="$TERM" PS1="\u:\w\\\\$ "
PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/bash --login'

Этот псевдоним немного сложен для восприятия из-за кавычек и слэшей. Всё это должно быть в одной строке. Вышеуказанная команда была разделена на две части для презентационных целей.

11.5.2.2. Работа удаленно по ssh

Этот метод также предоставляет полноценную графическую среду, но сначала требует установки sshd и wget в системе LFS, обычно в chroot. Кроме этого потребуется второй компьютер. Преимущество этого метода в том, что он прост, поскольку не требует сложной среды chroot. Он также использует собранное вами ядро LFS для всех дополнительных пакетов и по-прежнему предоставляет полную систему для установки пакетов.

11.5.2.3. Работа из командной строки LFS

Этот метот требует установки libtasn1, p11-kit, make-ca, wget, gpm и links (или lynx) в chroot, а затем перезагрузки в новую систему LFS. На данный момент система по умолчанию имеет шесть виртуальных консолей. Переключать консоли так же просто, как использовать комбинации клавиш Alt+Fx , где Fx это клавиши от F1 до F6. Комбинации Alt+ и Alt+ также переключают консоль.

На этом этапе вы можете войти в две разные виртуальные консоли и запустить браузер links или lynx в одной консоли и bash в другой. GPM позволяет копировать команды из браузера с помощью левой кнопки мыши, переключать консоли и вставлять их в другую консоль.

[Примечание]

Примечание

Вместо примечания: переключение виртуальных консолей также может быть выполнено из экземпляра X Window с помощью комбинации клавиш Ctrl+Alt+Fx ,но операция копирования мышью не работает между графическим интерфейсом и виртуальной консолью. Вы можете вернуться к дисплею X Window с помощью комбинации Ctrl+Alt+Fx ,где Fx обычно F1, но может быть F7.