Введение в POSIX'ивизм

       

Иксы: сборка из исходников


Знакомство с Иксами начинается с их установки. Собственно, никто не понуждает пользователя выполнять эту процедуру вручную - в большинстве пакетных дистрибутивов они устанавливаются автоматически, да ещё обычно по умолчанию, при первичной инсталляции. Однако при этом они подчас тянут за собой столько разного и непонятного, что возникает резонное желание разобраться, что из этого приблудного софта действительно необходимо, а что относится к архитектурным излишествам. А для этого необходимо хоть раз установить Иксы самому.

Сделать это можно из прекомпилированных пакетов - таковые входят в состав любого полнофункционального дистрибутива, - руководствуясь методами принятого в данной системе пакетного менеджмента (rpm там, apt-get, порты FreeBSD или портежи Gentoo, и так далее). Если версия из дистрибутива окажется недостаточно свежей - для многих распространённых дериватов Linux (Red Hat, Suse, Mandrake, Slackware, Debian), FreeBSD, OpenBSD, NetBSD более свежую бинарную сборку XFree86 можно получить с сервера проекта: . В частности, нынче это основной способ получения XFree86 для тех систем, которые официально от этой реализации Иксов отказались.

Однако самый охмуреж - это собрать Иксы из исходников, да ещё в соответствие с собственными представлениями об оптимизации. Тем более что это - единственный пока способ ознакомиться с новейшими версиями "правильных" Иксов от Xorg, если они не успели попасть в дистрибутив - в бинарном виде эта реализация на сайте проекта недоступна, распространяясь только в виде исходных текстов.

Так вот, оказывается, что для установки Иксов необходимо и достаточно иметь архивы их исходных текстов. Ну и, конечно, Base Linux - Иксы прекрасно ставятся на чистый LFS Герарда Бикманса. Или, например, на минимальный установочный комплект FreeBSD или DragonFlyBSD.

В современном своем виде исходники Иксов разбиты на семь тарбаллов. В реализации от XFree86 они имеют вид XFree86-4.5.0-src-[1-7].tgz, в варианте от Xorg - X11R6.8.2-src[1-7].tar.gz, суммарным объемом более 50 и 70 Мбайт, соответственно.
Только они и необходимы - прочее, что можно найти в каталоге src на серверах проекта (утилиты, документация и прочее) относится к категории опционального (ИМХО - очень опционального). Так что скачиваем тарбаллы, помещаем куда нужно, переходим в каталог, предназначенный для исходников и разворачиваем архивы любым удобным способом. Например, вот так:

$ find /path_to_src -name XFree86-4.5.0-src-?.tgz \ -exec tar xzpvf {} \;

После чего все исходники оказываются в одном каталоге - xc. Переходим в него и внимательно читаем файл INSTALL-X.org (BUILD в реализации от Xorg) - по крайней мере, его начало. Из которого выясняется, что установка Иксов на самом деле очень проста, и сводится к двум основным командам:

$ make World $ make install

И одной дополнительной (опциональной):

$ make install.man

Вывод этих команд к тому же можно перенаправить в файл, например



$ make World >& world.log

освободив тем самым командную строку нашей консоли для общественно-полезной деятельности. Что отнюдь не лишнее - сборка Иксов даже на мощной машине может занять не один час.

Возникает резонное желание, однако, предварительно задать некоторые условия оптимизации. Заметим сразу, что обычные флаги gcc, заданные в переменной CFLAGS (в командной ли строке, или в общем профильном файле) не окажут на процесс компиляции никакого влияния. Чтобы сборка проходила с оптимизацией, флаги эти нужно определить в переменной BOOTSTRAPCFLAGS:

make World BOOTSTRAPCFLAGS="значения"

Я, например, обычно определяю ее так:

BOOTSTRAPCFLAGS="$CFLAGS"

в sh-совместимых оболочках, и

setenv BOOTSTRAPCFLAGS $CFLAGS

в tcsh. А значения переменной CFLAGS заданы в профильном файле так:

export CFLAGS="-O2 -march=pentium4 -fPIC"

или

setenv CFLAGS "-O2 -march=pentium4 -fPIC"

для zsh и tcsh, соответственно. Разумеется, процессор должен соответствовать объявленному в -march. Обратим также внимание на флаг -fPIC. Он необходим только в том случае, если в дальнейшем исполняемые файлы и библиотеки предполагается подвергнуть предварительному связыванию программой prelink (в Linux).Если таковое не предвидится (или невозможно, как в BSD-системах) - его можно опустить.

Вот, собственно, и все - не пройдет и часа (двух, трех - в зависимости от мощности машины), как вы станете счастливым обладателем работоспособной и полнофункциональной системы Икс. И, повторяю, ничего, кроме перечисленного выше (то есть семи архивов и толики свободного времени) для этого не потребуется.


Содержание раздела