Выбрать главу

Прим. переводчика – Все вопросы по переводу просьба направлять Денису Каледину, hannibal@nline.ru

Глава 2. Важная информация

Про $LFS

Убедительная просьба прочесть этот раздел внимательно: переменная LFS будет часто использоваться далее. $LFS всегда необходимо заменять на путь директории, где монтирован раздел LFS. Как создать такой раздел и куда его монтировать, описано в Главе 4. Допустим, например, что раздел LFS монтирован на /mnt/lfs.

Когда вас просят выполнить ./configure –prefix=$LFS/static , на самом деле вам необходимо исполнить ./configure –prefix=/mnt/lfs/static.

Необходимо запомнить, что так следует поступать везде, где вы видите переменную $LFS – как в командной строке, так и в создаваемых или редактируемых файлах.

Однако можно существенно облегчить задачу. Для того чтобы использовать $LFS, а не прописывать каждый раз путь к директории, создайте переменную среды LFS следующей командой:

export LFS=/mnt/lfs

Теперь, если вас просят выполнить команду ./configure –prefix=$LFS/static, можно печатать как есть, не заменяя $LFS на путь к директории. После нажатия клавиши Enter, оболочка сама подставит вместо $LFS значение этой переменной, как мы ее определили командой export.

Если вы собираетесь использовать $LFS, никогда не забывайте задавать переменную LFS. В случае если она не задана, оболочка проигнорирует $LFS и выполнит остаток команды. Например, если выполнить команду echo «root:x:0:0:root:/root:/bin/bash» > $LFS/etc/passwd , не задав переменную LFS, оболочка заново создаст файл /etc/passwd. Иными словами, уничтожит текущую базу паролей системы.

Для того чтобы всегда быть уверенным в том, что переменная LFS задана, добавьте ее в файлы /root/.bash_profile и /root/.bashrc. Теперь каждый раз когда вы входите в систему под учетной записью root, или получаете его права с помощью команды su , переменная LFS будет задана автоматически.

Про SBU

SBU или Static Bash Units <Статические единицы Bash> используются для определения времени, необходимого для компиляции программы. Почему мы не используем привычные единицы времени, такие как секунды, минуты, часы?

Проблема заключается в том, что использование привычных единиц времени в данном случае дает слишком неточные результаты. Люди инсталлируют LFS на множестве различных систем, и время, затраченное на компиляцию определенной программы будет разным для каждой системы. На одной системе пакет компилируется за 20 минут, на другой системе тот же самый пакет собирается за 3 дня (заметьте, это не преувеличение). Поэтому мы решили использовать SBU.

Как это работает: первым пакетом, который вам будет предложено скомпилировать в Главе 5 будет оболочка Bash со статическими ссылками. Время, потраченное на его компиляцию, будет взято за базис и названо SBU. Время компиляции других программ попадет в прямую зависимость от времени, затраченного на компиляцию Bash. К примеру, компиляция GCC-3.2 занимает примерно 9.5 SBU, и проверено, что это число довольно постоянно на разных системах. Теперь мы умножим 9.5 на число секунд, потраченных на компиляцию Bash (значение SBU), и получим приблизительное время в секундах, необходимое для компиляции GCC.

Примечание: Использование SBU не подходит для многопроцессорных систем. В случае если вы счастливый обладатель такого компьютера, время компиляции, подсчитанное с помощью SBU будет неточным.

Где хранить загруженные программы

На протяжении этой книги мы допускаем, что все скаченные пакеты находятся в директории $LFS/usr/src.

Несмотря на то, что не имеет принципиального значения, где сохранены пакеты, убедительная просьба расположить их по крайней мере на разделе LFS, т.к необходимо иметь доступ к ним, когда вы входите в $LFS с помощью команды chroot или когда вы загружаетесь в систему LFS. Директория $LFS/usr/src – довольно логичное место для хранения исходных кодов, однако это не является необходимым условием. Можно создать подкаталог в $LFS/usr/src для хранения tar-архивов, отделив таким образом tar-архивы от временных директорий компиляции. Опять же, решать вам.

Следующая глава содержит список программ для скачивания. Так как раздел LFS еще не создан, сохранить их там мы пока не можем. На данном этапе сохраните их в другом месте, и переместите на раздел LFS, когда его создадите.

Как инсталлировать программы

Прежде чем начать, примите к сведению, что все команды в этой книге подразумевают, что вы используете оболочку Bash. Команды могут работать и с другими оболочками, но этого мы гарантировать не можем. Не хотите проблем – используйте Bash.