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

       

Установка


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

Сам по себе процесс сборки KDE также особых сложностей не представляет - нужно только выдерживать последовательность сборки пакетов: сначала собирается библиотека Qt, потому звуковая система arts, потом - библиотека kdelibs, а за ней - kdebase. Прочие пакеты, при необходимости, собираются после этих остальных - и более-менее в любом порядке.

Для сборки библиотеки Qt тарбалл ее исходников распаковывается в тот каталог, в котором мы хотим ее видеть в дальнейшем - по умолчанию это /usr/local, но последнее время в Linux-дистрибутивах Qt часто помещается в каталог /opt. В любом случае в результате образуется подкаталог вида qt-vesion. Его надлежит переименовать:

$ mv qt-version qt

А в профильный файл командной оболочки - общесистемный или пользовательский, то есть root'овый, - внести коррективы в значения переменных описания путей (подробно это описано в сопроводительной документации). Для sh-совместимого семейства это выглядит примерно так:

QTDIR=/usr/local/qt PATH=$QTDIR/bin:$PATH MANPATH=$QTDIR/man:$MANPATH LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH export QTDIR PATH MANPATH LD_LIBRARY_PATH

А в C-shell (и tcsh) аналогичный результат достигается такими строками:

setenv QTDIR /usr/local/qt setenv PATH $QTDIR/bin:$PATH setenv MANPATH $QTDIR/doc/man:$MANPATH setenv LD_LIBRARY_PATH $QTDIR/lib:$LD_LIBRARY_PATH

Эти переменные потребуются уже на стадии конфигурирования/компиляции, поэтому необходимо либо авторизоваться заново, либо перечитать профильный файл предусмотренным образом (например, через source /etc/profile и так далее).
Затем дается пара команд

$ ./configure && make

- и Qt можно считать установленной. По умолчанию бинарники библиотеки собираются в тот же каталог, что и исходники, так что необходимости в команде make install нет. Но при желании с помощью обычной опции --prefix при конфигурировании можно заказать установку в какой-либо иной каталог.



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

Интересно, что при сборке Qt игнорируются любые флаги gcc, кроме неких изначально в прописанных ее настроечных файлах - так что оптимизацией этой библиотеки можно не увлекаться. По умолчанию Qt собирается с уровнем оптимизации -O2, что вполне достаточно. Однако если покажется мало - придется лезть в достаточно глубоко в конфиги, зависимые от операционной системы.

Сборка каждого из пакетов собственно KDE выполняется посредством трех традиционных сакральных действ -

$ ./configure && make && make install

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

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



$ ./configure --help

По умолчанию Qt и пакеты KDE устанавливаются в собственные ветки каталога /usr/local - /usr/local/qt и /usr/local/kde. Однако в последнее время во многих дистрибутивах Linux просматривается тенденция перемещать такие крупные программные комплексы в каталог /opt (и это приветствуется Стандартом иерархии файловой системы Linux - см. ). Для следования этой тенденции при выполнении конфигурационного скрипта необходимо задать соответствующие опции:

$ ./configure --prefix=/opt --with-qt-dir=/opt/qt

После сборки Qt и kdelibs (и перед сборкой остальных пакетов KDE) необходимо сделать соответствующие библиотеки общедоступными для всех приложений. Для этого нужно вписать в файл /etc/ld.so.conf строки

/opt/qt/lib /opt/kde/lib

и запустить команду

$ ldconfig

Теперь об оптимизации. KDE (как и Qt) написана на Си++, и, соответственно для оптимизации требуется не флаг CFLAGS, а CXXFLAGS. Впрочем, их можно приравнять друг другу -

export CXXFLAGS="$CFLAGS"

Ну, а о возможных значениях CFLAGS вдоволь говорится в другом месте (см. ).


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