Установка KDE

Алексей Федорчук
1 октября 2005 г

Эта заметка и несколько связанных с ней посвящены KDE 3.X, причём сочинялись в период бытности достаточно старых версий. Тем не менее, некоторый интерес они могли представлять в момент размещения, поскольку за всё время существования «тройки» никаких радикальных изменений в ней не происходило. Ныне же место этой заметке — на свалке истории.

Легко догадаться, что местом своего пребывания проект KDE имеет сайт http://www.kde.org, откуда может быть абсолютно безвозмездно скачана в виде исходных текстов (и бинарных пакетов для некоторых дистрибутивов Linux). Бинарники же KDE входят в состав практически любого дистрибутива Linux, претендующего на полнофункциональность (а во многих является и десктопом по умолчанию. Есть она в коллекциях бинарных пакетов и системах портов всех BSD-систем. Впрочем, для FreeBSD бинарники KDE лучше брать не из штатной поставки этой ОС, а с сайта http://freebsd.kde.org/ -там скорее всего будет более свежая версия.

Для установки 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

Кроме того, в KDE входят пакеты arts и kdevelop, имеющие свою нумерацию версий, а также пакет kde-i18n, обеспечивающий интернационализацию среды, а также пакеты локализации для отдельных языков, в числе коих — почти все мыслимые (хотя локализация для них выполнена с очень разной полнотой и качеством).

Все это хозяйство, включая библиотеку 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 — пакет утилит системного администрирования, требующих, за редким исключением, полномочий суперпользователя; я им не пользуюсь, хотя почему-то обычно устанавливаю.

Еще два пакета я также ставлю всегда — это kdeaddons (ИМХО абсолютно необходим, так как включает, помимо прочего, plug-in’ы для редактора kate, konqueror и прочих) и kdeartwork, в который входят дополнительные украшательства рабочего стола (обои, иконы и т.д.), жизнь без которых была бы скучна. А еще — kdegames, в нем можно найти несколько пасьянсов и пару вариаций на тему бессмертного тетриса — а больше ни в какие игры я не играю.

Осталось упомянуть пакеты, которые я никогда не ставлю и потому о содержании коих имею смутное представление: kdeedu (как можно догадаться, нечто имеющее отношение к образованию (чего или кого — не знаю), kdetoys — какие-то прибамбасы, kdeaccessibility — так называемые спецвозможности, ну и kdesdk — набор скриптов и утилит для разработчика.

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

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

Для сборки библиотеки Qt тарбалл ее исходников распаковывается в тот каталог, в котором мы хотим ее видеть в дальнейшем — по умолчанию это /usr/local, по последннее время 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

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

$ ./configure && make

— и Qt можно считать установленной. По умолчанию бинарники библиотеки собираются в тот же каталог, что и исходники, так что необходимости в команде make install.

Из опций конфигурирования не лишней представляется минимум одна — -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 мы поговорим как-нибудь в другой раз.

Перейти к верхней панели