Установка KDE3 из сырцов
Добавлено: 17 мар 2010, 20:09
Для установки KDE необходимо озаботиться еще и получением библиотеки Qt, свободно распространяемый (для некоммерческого использования) вариант которой берется в виде исходников с сайта разработчика http://www.trolltech.com/. Впрочем, есть она и в дистрибутивах Linux и BSD-систем - нужно только следить за соответствием версий - они обычно достаточно четко коррелируют с версиями KDE.
Необходимы для работы KDE система X, а также немало дополнительных компонентов, включая включая главные графические и мультимедийные библиотеки, некоторые из которых в качестве зависимостей неизбежно тащат за собой библиотеки Glib и Gtk. Однако и все это хозяйство имеется в дистрибутивах и, скорее всего, устанавливается из них по умолчанию. Да и многие из дополнительных компонентов связаны с KDE "мягкими" (необязательными) зависимостями - в KDE разделение "жестких" и "мягких" зависимостей проводится очень последовательно.
Конечно, процесс самостоятельной сборки KDE - дело не из самых простых, как из-за сложности зависимостей дополнительных компонентов, так и с точки зрения временных затрат. Однако это один из тех немногих случаев, когда индивидуальная сборка способна дать значимый прирост производительности. кроме того, она позволяет исключить явно ненужные пользователю зависимости из числа "мягких" - в большинстве пакетных дистрибутивов Linux все они по умолчанию задействованы в прекомпилированных сборках. Альтернатива полностью ручной сборке - использование портов BSD-систем и портообразных систем Source Based дистрибутивов Linux - все они допускают значительные вариации персональных настроек, включая отсечение необязательных зависимостей.
Сама по себе среда KDE в виде исходников включает в себя около полутора дюжин пакетов, список и состав которых несколько варьирует от версии к версии. В текущей на момент написания версии (3.3.1) он выглядит следующим образом:
Код: Выделить всё
kdeaccessibility-3.3.1.tar.bz2
kdeaddons-3.3.1.tar.bz2
kdeadmin-3.3.1.tar.bz2
kdeartwork-3.3.1.tar.bz2
kdebase-3.3.1.tar.bz2
kdebindings-3.3.1.tar.bz2
kdeedu-3.3.1.tar.bz2
kdegames-3.3.1.tar.bz2
kdegraphics-3.3.1.tar.bz2
kdelibs-3.3.1.tar.bz2
kdemultimedia-3.3.1.tar.bz2
kdenetwork-3.3.1.tar.bz2
kdepim-3.3.1.tar.bz2
kdesdk-3.3.1.tar.bz2
kdetoys-3.3.1.tar.bz2
kdeutils-3.3.1.tar.bz2
kdewebdev-3.3.1.tar.bz2
Все это хозяйство, включая библиотеку Qt, в исходниках тянет почти на три сотни мегабайт. Что не может не вызвать воспоминаний о монстроидальности KDE. Однако далеко не все перечисленное обязательно к установке и, соответственно, скачиванию. Правда, во многих пакетных дистрибутивах Linux все компоненты KDE связаны кросс-пакетными зависимостями (включающими все необязательные), и их приходится устанавливать все. Но во FreeBSD, SB Linux'ах и тем более при ручной сборке можно обойтись только на самом деле нужными.
Первый, и бесспорный, кандидат к отчислению из списка - пакет kde-i18n (а это уже более 100 Мбайт исходников): очевидно, что никому не нужна поддержка доброй полусотни языков одновременно. Достаточно отдельного пакета для своего, родного (в наших условиях это kde-i18n-ru), в крайнем случае - еще пары-тройки дружественных.
Далее, ясно, что пакет kdevelop только этим самым девелоперам и необходим, большинство же пользователей без него вполне могут обойтись. Ну решение об установке прочих пакетов пользователь должен принять самостоятельно. Для чего я вкратце опишу назначение каждого.
Для начала - о пакетах, обязательных к установке в любом случае. Как можно догадаться, их два - kdelibs и kdebase. Первый - набор специфичных для KDE библиотечных функций, дополняющих базовую библиотеку Qt. Второй же включает основные компоненты KDE - собственно оконный менеджер KWM и его аксессуары, минимальный набор тем и основные приложения - файловый менеджер, он же браузер, konqueror, набор текстовых редакторов (kwrite, kedit, kate), эмулятор терминала konsole.
Как ни странно, обязательным оказывается также пакет arts - собственная звуковая система KDE, используемая для воспроизведения системных звуков даже в том случае, если мультимедийные компоненты KDE не устанавливаются.
Все прочие компоненты сугубо опциональны, поэтому охарактеризую те, что использую сам, и в порядке важности для меня лично:
- * kdenetwork - сетевые компоненты, среди которых - прекрасная звонилка kppp и kget - ftp-клиент, сам по себе ничем не выдающийся, но в интеграции с файловым менеджером/браузером konqueror весьма способствующий облегчению, жизни;
* kdepim - пакет персональных помощников, в который не вполне, на мой взгляд, логично, включены почтовый клиент kmail и дополняющая его адресная книга;
* kdewebdev - пакет разработки web-материалов, основу которого составляет превосходный редактор html-кода Quanta Plus, гармонично дополняемый вспомогательными средствами, такими, как средство проверки целостности ссылок (klinkstatus) и создания ссылочных карт (kimagemapeditor);
* kdegraphics - пакет включает пару вьюверов графических файлов, очень удобную программу съемки скриншотов, простенький, но неплохой редактор графики kolourpaint (плюс еще два, средней паршивости);
* kdemultimedia - в составе пакета очень приличный медиаплейер noatun (хотя и похуже mplayer, тем более в KDE-ипостаси - но ее в штатной поставке не имеется), микшер, рекодер и т.д.;
* kdeutils - в его состав, помимо всякой бижутерии, входит калькулятор, штука нужная;
* kdeadmin - пакет утилит системного администрирования, требующих, за редким исключением, полномочий суперпользователя; я им не пользуюсь, хотя почему-то обычно устанавливаю.
Осталось упомянуть пакеты, которые я никогда не ставлю и потому о содержании коих имею смутное представление: kdeedu (как можно догадаться, нечто имеющее отношение к образованию (чего или кого - не знаю), kdetoys - какие-то прибамбасы, kdeaccessibility - так называемые спецвозможности, ну и kdesdk - набор скриптов и утилит для разработчика.
В большинстве случаев пользователю не приходится как-то по особенному озабочиваться установкой KDE - с этой задачей справляется либо инсталлятор его дистрибутива, либо штатная система управления пакетами. Некоторая проблема возникает только в том случае, если предлагаемая схема установки почему-либо не устраивает, например, вследствие заведомой избыточности: я уже отмечал, что ряд пакетов из набора KDE практического смысла для большинства пользователей не имеет. И тут может оказаться целесообразным прибегнуть к ручной сборке требуемых компонентов.
Сам по себе процесс сборки KDE также особых сложностей не представляет - нужно только выдерживать последовательность сборки пакетов: сначала собирается библиотека Qt, потому звуковая система arts, потом - библиотека kdelibs, а за ней - kdebase. Прочие пакеты, при необходимости, собираются после этих остальных - и более-менее в любом порядке.
Для сборки библиотеки Qt тарбалл ее исходников распаковывается в тот каталог, в котором мы хотим ее видеть в дальнейшем - по умолчанию это /usr/local, по последннее время Qt часто помещается в каталог /opt, в любом случае в результате образуется подкаталог вида qt-vesion. Его надлежит переименовать:
Код: Выделить всё
$ mv qt-version qt
Код: Выделить всё
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
Код: Выделить всё
$ ./configure && make
Из опций конфигурирования не лишней представляется минимум одна - -qt-gif, включающая поддержку GIF-графики (по умолчанию, как ни странно, это не подразумевается).
Интересно, что при сборке Qt, похоже, игнорируются любые флаги gcc, кроме неких изначально в ней прописанных - так что оптимизацией этой библиотеки можно не увлекаться. По умолчанию Qt собирается с уровнем оптимизации -O2.
Сборка каждого из пакетов собственно KDE выполняется посредством трех традиционных сакральных действ -
Код: Выделить всё
$ ./configure && make && make install
Если с "жесткими" зависимостями все ясно - они подлежат непременному удовлетворению, - то в отношении зависимостей "мягких" пользователю предоставляется выбор. Наприме, в числе "мягких" зависимостей пакетов KDE обнаруживаются система печати cups и система сканирования sane. Однако вполне возможно, что пользователь в этих функциях не нуждается (например, по причине отсутствия соответствующих агрегатов). И потому вполне может оключить их указанием должных опций конфигурационного сценария - а полный их список, как обычно, получается командой
Код: Выделить всё
./configure --help
Код: Выделить всё
./configure --prefix=/opt --with-qt-dir=/opt/qt
Код: Выделить всё
/opt/qt/lib
/opt/kde/lib
Код: Выделить всё
$ ldconfig
Код: Выделить всё
export CXXFLAGS="$CFLAGS"