4.5. О SBU (Стандартная единица времени сборки)

Многие люди хотели бы знать заранее, сколько примерно времени потребуется для компиляции и установки каждого пакета. Поскольку Linux From Scratch может быть построен на различных системах, невозможно дать точную оценку времени. Сборка одного из самых больших пакетов (Glibc) займет около 20 минут на быстрых системах, но может занять до трех дней на более медленных компьютерах! Вместо фактического времени в книге используется показатель Стандартная единица времени сборки (SBU).

Показатель СБУ рассчитывается следующим образом. Первым пакетом, который будет скомпилирован из этой книги, является binutils в Глава 5. Время, необходимое для компиляции этого пакета, будет называться Стандартная единица времени сборки или SBU. Время компиляции остальных пакетов будет выражено относительно этого времени.

Например, рассмотрим пакет, время компиляции которого составляет 4,5 SBU. Это означает, что если системе потребовалось 10 минут для компиляции и сборки первого прохода binutils, то для сборки этого пакета потребуется примерно 45 минут. К счастью, в большинстве случаев время сборки короче, чем у binutils.

В целом, величина SBU не совсем точна, поскольку она зависит от многих факторов, включая версию GCC хост-системы. Она приведены здесь, чтобы дать оценку того, сколько времени может потребоваться для сборки пакета, но в некоторых случаях цифры могут отличаться на десятки минут.

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

Примечание

Для многих современных систем с несколькими процессорами (или ядрами) время компиляции пакета можно сократить, выполнив «параллельную сборку», либо установив переменную среды, либо сообщив программе make, сколько процессоров доступно. Например, процессор Intel i5-6500 может поддерживать четыре одновременных процесса:

export MAKEFLAGS='-j4'

или просто собирать с:

make -j4

Когда используется несколько процессоров, единицы SBU в книге будут различаться еще больше, чем обычно. В некоторых случаях make просто завершится ошибкой. Анализ выходных данных процесса сборки также будет более сложным, поскольку строки различных процессов будут чередоваться. Если вы столкнулись с проблемой на этапе сборки, вернитесь к однопроцессорной сборке, чтобы проанализировать сообщения об ошибках.