Difference between revisions of "Getting Started/Build/KDE4 (ru)"

Jump to: navigation, search
m (Arch Linux)
m (Kubuntu и Debian)
Line 134: Line 134:
  
 
Необходимо с помощью SVN-сервера KDE4 обновить соответствующую часть исходного кода kdesupport.
 
Необходимо с помощью SVN-сервера KDE4 обновить соответствующую часть исходного кода kdesupport.
 
+
Это будет сделано, когда вы доберётесь до раздела о сборке kdesupport.
svn://anonsvn.kde.org/home/kde/trunk/kdesupport/
+
  
 
Для получения информации по компиляции и установке ознакомьтесь с файлом README из каталога с исходным кодом.
 
Для получения информации по компиляции и установке ознакомьтесь с файлом README из каталога с исходным кодом.
 
 
  
 
=== openSUSE ===
 
=== openSUSE ===

Revision as of 11:55, 18 November 2007


Contents

Getting_Started/Build/KDE4


Введение

В данной статье показано, как собрать KDE на системах Linux/BSD. Также есть следующие статьи: FreeBSD, Windows, Mac OS X и Solaris. В листингах команд везде используется bash.

noframe
 
Warning
По понедельникам высока вероятность проблем со сборкой. Это связано с тем, что большинство изменений в kdelibs вносятся в этот день. Dashboard сообщает о неожиданных сбоях. Приветствуется самостоятельное исправление нерабочих модулей.


Необходимое программное обеспечение

Следующие пакеты должны быть установлены для успешной сборки:

  • gcc и g++, предпочтительно версии 4.2 и выше
  • svn, клиет контроля за версиями (the subversion revision control client)
  • pkg-config
  • Заголовочные файлы и библиотеки для разработки X11, OpenGL (mesa-common-dev and libglu1-mesa-dev), libjpeg, libpng, libungif, libclucene, librdf, libxml2 и libxslt
  • Скрипт makeobj, являющийся частью kdesdk. Его можно установить вместе с kdesdk (в Debian пакет kdesdk-scripts) или идентичным пакетом, или же скачать отдельно с WebSVN
  • пакет shared-mime-info, используемый сейчас в KDE в качестве стандарта freedesktop MIME (the freedesktop MIME standard)
  • boost, требуется для kdebase; после компиляции и/или установки boost, для работоспособности cmake (FindBoost) следует добавить каталог с boost (содержащий подкаталог с заголовочными файлами) в CMAKE_INCLUDE_PATH, или же задать переменную окружения BOOST_ROOT, указывающую на каталог с boost.

Ark Linux

В Ark Linux все необходимые для сборки пакеты можно установить следующим способом: pacman -Sy install devel-core libxml-devel libxslt-devel bzip2-devel \ clucene-core-devel librdf-devel shared-mime-info xorg-Mesa-libGL-devel \ subversion boost-devel doxygen giflib-devel dbus-devel openssl-devel \ alsa-lib-devel kdesdk-scripts qt4-devel

Если вы предпочитаете графический интерфейс, то можете установить вышеперечисленные пакеты с помощью утилиты «Install Software» из Mission Control. После этого CMake, DBus и Qt будут установлены - пункты 5,6 и 7 можно пропустить.

Arch Linux

В Arch Linux необходимо установить следующие пакеты: pacman -Sy subversion bzip2 libxslt libxml2 \ shared-mime-info mesa boost dbus openssl \ pkgconfig xine-lib

Если Вы хотите использовать qt4 из репозитория Arch Linux, то его можно установить с помощью следующей команды: pacman -Sy qt4

Fedora

Чтобы установить большинство необходимых для сборки KDE4 в Fedora 7 (и выше), выполните:

yum install clucene-core-devel libxml-devel libxslt-devel \ dbus-devel boost-devel bzip2-devel openssl-devel alsa-lib-devel \ redland-devel rasqal-devel raptor-devel hspell-devel aspell-devel \ cups-devel xine-lib-devel avahi-devel gamin-devel OpenEXR-devel \ enchant-devel jasper-devel ilmbase-devel pcre-devel gpgme-devel \ libxklavier-devel glib-devel libusb-devel libsmbclient-devel \ libxcb-devel NetworkManager-devel lm_sensors-devel libraw1394-devel \ bluez-libs-devel gcc-c++ libXext-devel cmake subversion giflib-devel \ libpng-devel libXdamage-devel libXcomposite-devel libXrender-devel \ fontconfig-devel libXft-devel libXcursor-devel libXfixes-devel \ ruby-devel libXScrnSaver-devel libkdcraw-devel exiv2-devel \ lcms-devel libtiff-devel sqlite-devel libxkbfile-devel \ imlib2-devel

После этого CMake и DBus будут установлены - пункты 5 и 6 можно пропустить.

DCH-10/15/07: Примечание: возможно, что проще собрать RPM-ки. Можно отредактировать переменные в /etc/rpm/macros.kde4 (which is provided by Rawhide kde-filesystem).

Секция сборки (build stage) должна выглядеть примерно так:

%build

mkdir -p %{_target_platform}

pushd %{_target_platform}

%{cmake_kde4} ..

popd

make %{?_smp_mflags} -C %{_target_platform}

Я сумел достичь лучших результатов, собирая kdesupport rpm, что означает, что Вам не потребуется устанавливать RPM-пакеты soprano или strigi. YMMV (непереводимый смайл или восклицание :) ).

Kubuntu и Debian

В Kubuntu 7.04 (Feisty) и Debian (Testing/Unstable) необходимое программное обеспечение можно установить с помощью: sudo aptitude install build-essential cdbs debhelper cmake \ libxml2-dev libxslt1-dev libbz2-dev libclucene-dev librdf-dev \ shared-mime-info libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \ libxext-dev libjpeg-dev libpng12-dev subversion libsm-dev libxinerama-dev \ libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen \ libungif4-dev libdbus-1-dev libssl-dev libgpgme11-dev \ libasound2-dev kdesdk-scripts libpth-dev libjasper-dev \ ssh libxine-dev libqimageblitz-dev libqimageblitz4 libglib2.0-dev \ libxkbfile-dev libenchant-dev libbluetooth-dev network-manager-dev \ libsmbclient-dev libxcb1-dev libcaptury-dev libxcomposite-dev \ libxdamage-dev libusb-dev libgpgme11-dev libldap2-dev


В Kubuntu 7.10 (Gutsy) и Debian unstable следует добавить: sudo aptitude install dbus-x11

Чтобы задействовать всю функциональность системы документации (API documentation framework), вам нужно выполнить: sudo aptitude install graphviz

В Kubuntu Gutsy нет никакой необходимости компилировать qt или kdesupport. Все необходимые пакеты доступны после установки, описанной выше. Пропустите kdelibs section и продолжите со следующего раздела.

{{Note| При возникновении проблем при компиляции KDE4 Beta4 или выше в Kubuntu 7.10, похожих на:

Soprnao version is too low

strigi xxx.h not found...

Необходимо с помощью SVN-сервера KDE4 обновить соответствующую часть исходного кода kdesupport. Это будет сделано, когда вы доберётесь до раздела о сборке kdesupport.

Для получения информации по компиляции и установке ознакомьтесь с файлом README из каталога с исходным кодом.

openSUSE

В openSUSE 10.2 и новее пакеты можно установить, используя Zypper: sudo zypper install <package-name>

В более старых релизах можно использовать YaST: su yast -i <packagename>

Необходимые пакеты

Пакеты, которые нужно установить: xorg-x11-devel libxml2-devel kdesdk3 clucene-core-devel boost-devel libjpeg-devel liblrdf-devel libpng-devel libxslt-devel libredland-devel Mesa-devel giflib-devel subversion gcc gcc-c++ gmp-devel (необходимо для сборки kdesupport) gpgme-devel (необходимо для сборки kdepimlibs) libxine1-devel

Необязательные (Optional) пакеты

Ручную и мучительную установку kdesupport с её многочисленными зависимостями (Qt 4.3, CMake 2.4.6, DBus, Hal, clucene-core, Strigi, Soprano и другие пакеты из состава Nepomuk) можно пропустить, добавив репозиторий KDE:KDE4 из openSUSE Build Service в список источников установки.

Для openSUSE 10.2 и выше сделайте: sudo zypper service-add http://software.opensuse.org/download/KDE:/KDE4/openSUSE_10.2 KDE4-102

Для более старых версий SUSE Linux выполните: su installation_sources -a http://software.opensuse.org/download/KDE:/KDE4/[YOUR SUSE LINUX VERSION]

Теперь установите следующие пакеты: cmake dbus-1-devel libqt4-devel libqca2-devel libsoprano-devel libqimageblitz-devel strigi strigi-ui

Для удовлетворения зависимостей проверки конфигурации (config-check) необходимо намного больше пакетов, таких как libusb-devel, bison и т.д. Установите их в соответствии с конфигом. Не забудьте, что все инструкции ниже, относящиеся к kdesupport, необходимо пропустить. Продолжите сборку с kdelibs. Чтобы задействовать всю функциональность системы apidox (apidox framework), вам нужен graphviz

Бинарные пакеты CMake для openSUSE доступны в репозитории KDE:KDE4, так же как и в openSUSE build service

Gentoo

Ручная установка

Используя стабильные сборочные файлы (ebuilds), не забудьте обновить дерево портежей («синькнуться»), прежде чем приступить к установке.

Нам нужно разрешить следующие сборочные файлы, замаскированные ключами: echo 'dev-util/cmake' >> /etc/portage/package.keywords echo 'dev-cpp/clucene' >> /etc/portage/package.keywords


Удостоверьтесь, что для redland установлен USE-флаг berkdb, в противном случае nepomuk не будет работать.

  1. echo 'dev-libs/redland berkdb' >> /etc/portage/package.use

Далее приведён список необходимых пакетов, некоторые из которых могут быть уже установлены (их можно пропустить, добавив флаг обновления в emerge).

emerge -avu 'sys-devel/gcc' \

 'dev-util/subversion' \
 'dev-util/pkgconfig'  \
 'x11-base/xorg-x11' \
 'virtual/glut' \
 'media-libs/mesa' \
 'media-libs/jpeg' \
 'media-libs/libpng' \
 'media-libs/giflib' \
 'dev-cpp/clucene' \
 'dev-util/cppunit' \
 'media-libs/liblrdf' \
 'dev-libs/libxml2' \
 'dev-libs/libxslt' \
 'x11-misc/shared-mime-info' \
 'dev-libs/boost' \
 'dev-util/cmake' \
 'dev-libs/redland' \
 'sys-apps/dbus' \
 'sys-apps/hal' \
 'x11-libs/qt'


Также может потребоваться выполнить emerge либо для 'kde-base/kdesdk', либо для kde-base/kdesdk-scripts'.


Если вы установили DBUS, CMAKE, QT и (возможно) HAL, то соответствующие секции можно пропустить.

Удачи!

Установка с помощью portage

Также пакеты KDE 4 можно установить напрямую с помощью emerge -a <packagename>

Получите всё необходимое на install layman и положите в оверлей "kde" (содержащий экспериментальные сборочные файлы) layman -a kde После этого следует настроить USE-флаги, необходимые для KDE 4, и задать portage использование тестовых (экспериментальных) сборочных файлов вместо стабильных для KDE 3.

Таким образом, система портежей отследит все зависимости.

Подробная инструкция по сборке KDE 4 в Gentoo находится в статье KDE overlay wiki. Обсуждение ebuilds находится в теме о KDE 4 monolithic ebuilds.

Fedora

Для сборки KDE4 вам необходимо иметь установленную Fedora 7 или выше. Необходимые пакеты можно установить, выполнив от пользователя с правами root'a, следующую команду:

yum install cmake clucene-core-devel libxml-devel libxslt-devel \ dbus-devel boost-devel bzip2-devel openssl-devel alsa-lib-devel \ redland-devel rasqal-devel raptor-devel hspell-devel aspell-devel \ cups-devel xine-lib-devel avahi-devel gamin-devel OpenEXR-devel \ enchant-devel jasper-devel ilmbase-devel pcre-devel gpgme-devel \ libxklavier-devel glib-devel libusb-devel libsmbclient-devel \ libxcb-devel NetworkManager-devel lm_sensors-devel libraw1394-devel \ bluez-libs-devel

Mandriva

В Mandriva необходимые для сборки пакеты устанавливаются с помощью: urpmi gcc-c++ cmake libxml2-devel libbzip2_1-devel \ libclucene0-devel liblrdf2-devel libmesagl1-devel \ subversion doxygen libdbus-1_3-devel libopenssl0.9.8-devel \ libalsa2-devel libgpgme-devel libboost1-devel

При использовании 64-х битной сборки необходимо заменить все префиксы "lib..." на "lib64...".

Если Вы предпочитаете использовать графический интерфейс, то выберите перечисленные выше пакеты в утилите "Install Software" из Mandriva Linux Control Center.

После этого CMake и DBus будут установлены - пункты 5 и 6 можно пропустить.

Создание пользователя для разработки KDE 4

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

Однако намного эффективнее делать всё из-под одного пользователя, см.

ППовышение производительности вашего труда при разработке KDE4 при использовании скриптов

, чтобы узнать больше.

Тем не менее, можно следовать инструкции, приведённой ниже, но тогда не включайте никаких переменных окружения в .bashrc - задавайте их в отдельном файле, используемом при переключении к KDE 4.

Способ 1: Командная строка

useradd -m kde-devel passwd kde-devel

Способ 2: Использование KControl

Вместо выполнения команд, приведённых выше, можно использовать модуль управления пользователями в Центре управления KDE, если уже установлен KDE3.

Настройка окружения

Скопируйте файл ~/.bashrc обычного пользователя в домашний каталог пользователя kde-devel. Затем вставьте в ~kde-devel/.bashrc содержимое из примера файла .bashrc. Если у вас недоступна команда makeobj, то закомментируйте строку alias make=makeobj. Наверняка вам потребуется изменить путь, чтобы удостовериться, что он не содержит kde3. Также, если вы планируете заниматься разработкой приложений для KDE 4 с помощью KDevelop, к команде cmake вы можете добавить параметр GKDevelop3 (чтобы CMake генерировала файлы проекта KDevelop, это поможет в будущем избежать пересборки; подробности здесь). Чтобы выполнить данный скрипт, можно открыть новый сеанс bash или выполнить source ~/.bashrc

Это обеспечит доступ к таким командам, как cmakekde, которые использованы в данном обзоре, а также гарантирует правильность путей для исполняемых файлов Qt, KDE и CMake.

Для получения большей информации посмотрите обзор Повышение производительности вашего труда при разработке KDE4 при использовании скриптов.

Переключение к новому пользователя

Чтобы стать пользователем kde-devel, наберите (не забудьте дефис!): ssh -X kde-devel@localhost

{{Note|Если возникают проблемы с ssh, проверьте раздел Запуск приложений KDE 4 из руководства по разработке KDE4.


Настройка командной оболочки для разработки

В некоторых системах новый пользователь по умолчанию использует /bin/sh. Данный раздел можно пропустить, если к вашей системе это не относится. Работа с /bin/sh может быть довольно неудобной, поэтому может потребоваться поменять оболочку на /bin/bash или любую другую. В Ark Linux и Fedora /bin/sh по умолчанию установлен bash, поэтому пользователям Ark этот шаг можно пропустить.

Способ 1: Пользователь kde-devel

Если невозможно изменить оболочку пользователя с помощью утилиты chsh (отсутствуют необходимые привилегии суперпользователя), то можно попробовать изменить оболочку на /bin/bash, выполнив: chsh -s /bin/bash kde-devel

Способ 2: Суперпользователь

Если в системе присутствует приложение usermod, то нужно выполнить от имени суперпользователя следующую команду: usermod -s /bin/bash.

Другой вариант - использовать утилиту vipw, чтобы, обладая привелегиями суперпользователя, отредактировать файл /etc/passwd. В конце файла 'kde-devel' нужно поменять строку '/bin/sh' на '/bin/bash', сохранить изменения и выйти.

Новая командная оболочка будет автоматически запущена, когда пользователь kde-devel снова войдёт в систему.

D-Bus

QtDBus и KDE работают с D-Bus версий 0.62 и >= 0.92. Версии 0.60 и 0.61 могут работать, но правильность их работы не гарантируется. Известно, что версии 0.90 и 0.91 не поддерживаются. Рекомендуется использовать версии старше 1.0 (по крайней мере 0.94), так что следует обновиться, если установленная версия не соответствует требуемой.

Данный раздел можно пропустить, если установлена свежая версия D-Bus, или если обновление невозможно. Также, наверное, стоит пропустить секцию, в которой описано построение привязок (bindings), если вы не собираетесь собирать HAL (см. ниже)

Перед началом выполнения инструкций удостоверьтесь, что установлены заголовочные файлы и библиотеки X11. Конфигурационный скрипт (строка 5 нижеприведённых инструкций) должен вывести:

Building X11 code:        yes

Инструкция

Ktip.png
 
Tip
Удостоверьтесь, что системное окружение настроено так, как было описано выше. Это необходимо для работы функций cs и cb.


cs # 'cs' явдяется функцией bash; перейдите сюда, чтобы узнать больше
wget http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz
tar -xvzf dbus-1.0.2.tar.gz
cd dbus-1.0.2/
./configure --prefix=$DBUSDIR --localstatedir=/var
make
sudo make install
sudo dbus-uuidgen --ensure
cs # see above
wget http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.74.tar.gz
tar -xvzf dbus-glib-0.74.tar.gz
cd dbus-glib-0.74/
./configure --prefix=$DBUSDIR
make
sudo make install
cb
sudo chown -R kde-devel:kde-devel *


Что же происходит?

Сначала нужно войти в каталог с исходными кодами, принадлежащий пользователю kde-devel (строка 1); c freedesktop.org был скачан (строка 2) и распакован (строка 3) исходный код D-Bus. Затем после входа в появившийся каталог (строка 4) с помощью скрипта configure были настроены параметры сборки (строка 5). После сборки (строка 6) и установки (строка 7) D-Bus с помощью утилиты dbus-uuidgen был установлен файл идентификации машины (machine identification file), позволяющий автоматически запускать D-Bus одновременно с сессией рабочего стола (строка 8).

При выполнении последних двух команд требуются права на запись в /var. Если в системе отсутствует команда sudo, то можно использовать su, например, su -c "make install". Сбока привязки к glib аналогична вышеописанной.

После сборки этих двух пакетов необходимо изменить владельца файлов, так как в результате выполнения 'sudo make install' владельцем файлов и каталогов в ~kde-devel/kde является root.

CMake

Раздел можно пропустить при наличии установленной версии CMake >=2.4.5 Можно использовать бинарные пакеты с сайта CMake. Также доступны пакеты для различных дистрибутивов.

Инструкция

cs # 'cs' является функцией bash; перейдите сюда, чтобы узнать больше
wget http://www.cmake.org/files/v2.4/cmake-2.4.6.tar.gz
tar -zxf cmake-2.4.6.tar.gz
mkdir cmake-build
cd cmake-build
../cmake-2.4.6/bootstrap
make
sudo make install

Что же происходит?

Сначала нужно войти в каталог с исходными кодами, принадлежащий пользователю kde-devel, скачать (строка 2) и распаковать (строка 3) исходники Cmake. Для сборки CMake нужно создать каталог (строка 4), войти в него (строка 5), запустить скрипт пересборки CMake (CMake bootstrap script) для настройки параметров сборки (строка 6) и затем выполнить сборку (строка 7) и установку (строка 8) с правами суперпользователя.

Если в системе отсутствует команда sudo, то можно использовать su, например, su -c "make install".

Qt

Теперь необходимо собрать Qt4 из репозитория исходных кодов (source repository) KDE4. KDE можно собрать с помощью Qt 4.3. Qt 4.2 и более ранние версии не поддерживаются. Следует использовать копию с серверов KDE Subversion (копия от KDE - это официальный пакет Qt плюс срочно исправленные баги). В некоторых дистрибутивах, таких, как Debian или openSUSE, имеется версия Qt с патчами из svn-репозитория KDE. Поэтому можно схитрить и использовать Qt из вашего дистрибутива, так как. KDE старается гарантировать, что исходники можно собирать с обычным, непропатченным Qt 4.3.0. Но Вы, наверное, захотите получить некоторые багфиксы, используя qt-copy (однако, обычно дистрибутивы вносят необходимые багфиксы, так что, если дистрибутив свежий, то, наверняка, Вам будет удобнее использовать "родной" qt). Обратитесь к разделам выше, посвящённым дистрибутивам, чтобы получить дополнительную информацию.

На данный момент модуль совместимости с Qt3 в Qt4 является обязательным, поэтому при сборке Qt4 из исходников не используйте опцию "-no-qt3support".

Инструкция

cd # Note: qt-copy lives in $HOME/qt-copy. See $QTDIR in .bashrc
cd # qt-copy находится в $HOME/qt-copy. Посмотрите значение $QTDIR в .bashrc
svn checkout svn://anonsvn.kde.org/home/kde/trunk/qt-copy
cd qt-copy
./apply_patches
./configure -qt-gif -no-exceptions -debug -fast \
 -prefix $QTDIR -nomake examples -nomake demos
make -j2
  1. если не требуется установка, то следует просто удалить объектные файлы
  2. для экономии дискового пространства
if [ $QTDIR = `pwd` ]; then \
find . -name '*.o' -delete ; \
else make install; fi;

Что же происходит?

Сначала нужно войти в каталог с исходными кодами, принадлежащий пользователю kde-devel, (строка 1) и скачать исходный код из репозитория KDE, используя svn (строка 2). Затем перейти в каталог qt-copy (строка 3) и запустить скрипт, устанавливающий патчи, скачанные вместе с qt-copy (строка 4).

После установки патчей следует настроить параметры сборки с помощью скрипта configure (строки 5-6). Объяснение различных опций (параметров к ./configure) можно найти в файле qt-copy/README.qt-copy. Наконец, осуществляется сборка (строка 7). Примеры и демонстрационные приложения можно собрать отдельно.

Обратите внимание, что установка не требует прав суперпользователя, так как Qt устанавливается локально в $QTDIR. В любом случае установка требуется, только если $QTDIR отличается от $HOME/qt-copy, что не имеет значения, если чётко придерживаться приведённых инструкций.

Устранение неполадок

Если появляется ошибка «X11/Xlib.h: No such file or directory», то следует установить пакет xorg (название в различных системах может незначительно различаться, например, в Kubuntu этот пакет называется xorg-dev)

Если во время конфигурирования появляется ошибка, связанная с отсутствием определений (missing defines), нужно проверить значение $QMAKESPEC. Некоторые дистрибутивы настраивают переменную так, чтобы она указывала на установленный системой Qt. Если unset QMAKESPEC решает проблему, то это следует прописать в скрипт ~/.bashrc

Ошибка «.pch/debug-shared/QtCore» связана с тем, что Qt-4.3 разрешает системе использование прекомпилированных заголовочных файлов, если gcc поддерживает их, но по неизвестной причине это не работает. При использовании distcc нужно сконфигурировать qt с параметром -no-pch. При использовании icecream следует обновить приложение через svn.

Попробуйте запустить любую Qt-программу, например, assistant. Учтите: может потребоваться запуск xhost +local:kde-devel от имени обычного пользователя kde3 для запуска этого приложения. Если оно падает на QSpanData::adjustSpanMethods, то проблема связана со стилем oxygen. Для решения проблемы следует удалить lib/kde4/plugins/styles/kstyle-oxygen.so и lib/kde4/plugins/styles/oxygen.so, если они находятся в префиксе установки KDE (KDE install prefix).

HAL

{{tip|Чтобы проверить, установлен ли org.freedesktop.hal, можно использовать qdbusviewer. Если его нет, то нужна более свежая версия hal. Если org.freedesktop.hal всё же есть, то наверняка вам не нужно и не захочется переустанавливать hal. Если вам требуется собрать новую версию HAL, то велик шанс, что потребуется собрать некоторое другое ПО, что может оказаться непростой задачей. Так как это касается только старых дистрибутивов, инструкции вынесены в отдельную статью


kdesupport

{{warning|Не забудьте сперва ознакомиться со статьёй Настройка окружения.


Есть несколько библиотек, требуемых модулем kdesupport: Strigi и Soprano нужны для метаданных файлов (file metadata) и поиска, QImageBlitz используется kdebase для обработки изображений, eigen - для визуальных эффектов в таких приложениях, как Kalzium, taglib - для музыкальных проигрывателей, и qca - для выполнения некоторых криптографических задач.

Strigi имеет несколько своих зависимостей: для установки понадобятся библиотеки и заголовки libz, libbz2, openssl (libcrypto или libssl), libclucene (>=0.9.16a; заметьте, версия 0.9.17 не работает) и libxml2 ( либо libexpat).

Учтите, что если Вы используете openSUSE, то все необходимые пакеты можно установить из репозитория KDE:KDE4 buildservice и не возиться с приведёнными ниже инструкциями. Продолжите с раздела kdelibs.

Инструкция

cs # 'cs' является функцией bash; перейдите по ссылке, чтобы узнать больше
svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/
cd kdesupport
cmakekde

Что же происходит?

Сначала нужно войти в каталог с исходными кодами (строка 1). Затем скачать с помощью svn исходный код kdesupport (строка 2), войти в созданный каталог ~/kde/src/kdesupport (строка 3) и начать сборку (строка 4). По окончании будет выполнен вход в каталог kdesupport.

Устранение неполадок

При возникновении ошибки

  cmakekde: command not found

следует вручную запустить команду cmake внутри каталога kdesupport. Если это не помогло, то ошибку надо искать в bashrc.

При возникновении ошибки

CMake Error: This project requires some variables to be set,
and cmake can not find them.
Please set the following variables:
LIBXML2_INCLUDE_DIR (ADVANCED)

следует установить пакеты разработки libxml2.

При возникновении ошибки

CMake Error: Could NOT find REDLAND

нужно поставить librdf из Redland. Если в дистрибутив не включён пакет librdf, его можно загрузить с http://download.librdf.org/source/ и установить.

((Пользователям Gentoo: сборочный файл для librdf - dev-libs/redland).


При возникновении ошибки

Fetching external item into 'kdesupport/admin'
Error validating server certificate for 'https://...'

см. статью Работа с Subversion-репозиторием KDE

При возникновении ошибки

FILE cannot create directory: /usr/lib[64]/qt4/plugins/crypto. Maybe need administrative privileges.
make: *** [install] Error 255

следует проверить корректность путей, прописанных в файле .bashrc ($QTDIR и $PATH используются для нахождения каталога установки Qt). Также подобная ошибка может возникать при использовании уже установленной в системе версии qt4 (и пропуске раздела об установке Qt). Либо установите qt-copy, либо выполните "sudo make install". После "sudo make install" следует сменить владельца на вас для некоторых подкаталогов ~/kde, измененённых при использовании sudo (например, "sudo chown -R kde-devel:kde-devel ~/kde").

При получении ошибки, похожей на: target libQtTest.so not found Вам необходимо пересобрать qt-copy, используя при конфигурации -nomake demos -nomake examples чтобы получить QtTest.


kdelibs

Теперь можно приступить к сборке основных библиотек KDE

Инструкция

cd 
cs # 'cs' является функцией bash; перейдите по ссылке, чтобы узнать больше
mkdir KDE && cd KDE
svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs
cd kdelibs
cmakekde

Что же происходит?

Сначала мы входим в каталог с исходными кодами (строка 1) и создаём каталог KDE, сразу же входя в него (строка 2). Затем с помощью subversion загружаются текущие исходники kdelibs (строка 3). Входим в появившийся каталог ~/kde/src/KDE/kdelibs (строка 4) и запускаем сборку (строка 5). По окончании будет выполнен вход в каталог сборки kdelibs.

Ktip.png
 
Tip
В вашей системе могут отсутствовать некоторые заголовочные файлы и/или соответствующие им библиотеки. Конкретные список неудовлетворённых зависимостей можно найти в выводе cmakekde. Перед сборкой компонентов KDE можно предварительно выполнить cmake $KDE_SRC/KDE/MODULE_NAME.)


Дополнительные модули CMake для KDE

В kdelibs/cmake/modules/ находятся дополнительные модули CMake, необходимые для сборки приложений из KDE4. Они будут автоматически установлены после инсталляции kdelibs.

Устранение неполадок

При наличии проблем во время сборки kdelibs в первую очередь необходимо проверить наличие и работоспособность необходимого программного обеспечения. Другие рекомендации по устранению неполадок:

  • Если cmakekde завершается сообщая, о том, что требуется выходной каталог для сборки (CMake requires an out of source build directory), нужно удалить

~/kde/src/KDE/kdelibs/CMakeCache.txt и перезапуситить сборку.

Если эта же ошибка cmakekde опять повторяется, можно попробовать исправить её так:

cd
cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \
-DCMAKE_BUILD_TYPE=debugfull \
-DKDE4_BUILD_TESTS=ON \
~/kde/src/KDE/kdelibs
make
make install
  • При получении ошибки «Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.» следует перейти в директорию сборки до запуска cmakekde (например, cs KDE/kdelibs && cb && cmakekde). Если ошибка повторилась, запустите 'svn status' в каталоге kdelibs и удалите все файлы, помеченные '?'.
  • Если не найден Qt, или найдена его неподдерживаемая версия, убедитесь, что qmake от нужной версии Qt является первым в PATH.
  • Если не найден qmake и Вы используете пакеты Debian, то, возможно, что /usr/bin/qmake указывает не та ту версию qmake. Чтобы это исправить выполните из-под рута:

update-alternatives --config qmake

  • Если ошибка продолжает появляться, можно попробовать запустить CMake c опцией --keep-going.
  • Ошибка «Could NOT find GIF» означает, что нужно установить библиотеку libungif.
  • Изменение настроек Qt-4.3: при получении ошибки компоновки kjsembed, связанной с QScriptEngine, отредактируйте CMakeCache.txt в kdelibs: удалите строки, в которых есть QT_QTUITOOLS_LIBRARY, а затем снова выполните make (эта статическая библиотека имеет новую зависимость, в результате чего выполняется код cmake, который её обрабатывает).
  • При получении ошибки CMake Error: KDE Requires Qt to be built with SSL support

следует установить пакет openssl-devel, удалить файл CMakeCache.txt и пересобрать Qt.

  • Ошибка kdelibs/kimgio/ico.cpp:188: undefined reference to `QImage::jumpTable()' означает, что Qt скомпилирован без поддержки Qt3 (компоновка с установленным Qt3 не сработает)

kdepimlibs

После установки kdelibs и перед сборкой kdebase следует установить kdepimlibs.


Инструкция

cs KDE # 'cs' является функцией bash; пройдите по ссылке, чтобы узнать больше
svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs
cd kdepimlibs
cmakekde

Что же происходит?

Нужно перейти в каталог с исходными кодами KDE (строка 1), скачать исходники kdepimlibs с помощью subversion (строка 2) и потом перейти в появившийся каталог ~/kde/src/KDE/kdepimlibs (строка 3). Затем запустить сборку (строка 4). По окончании будет выполнен вход в каталог сборки kdepimlibs.

Устранение неполадок

При наличии проблем компиляции kdepimlibs:

  • Утилита cmakekde может требовать более позднюю версию библиотеки gpgme. Она доступна на сайте

http://www.gnupg.org/(en)/download/index.html - учтите, что для сборки gpgme также потребуется libgpg-error, доступная на том же сайте. Обе библиотеки устанавливаются с помощью "./configure" (для gpgme следует выполнить с параметром -with-gpg-error-prefix), "make" и "sudo make install". Может потребоваться перезаписать уже существующий файл "/usr/bin/gpgme-config" для более новой версии, чтобы kdepimlibs нашёл более новую версию библиотеки.

  • При получении от /usr/bin/ld ошибки «cannot find -lpth» удостоверьтесь, что в вашей системе есть GNU Portable Threads (libpth-dev в Debian).
  • Ошибка «cannot find -lpth», сгенерированная /usr/bin/ld, может быть связана с отсутствием GNU Portable Threads (libpth-dev в Debian).

kdebase

kdebase состоит из трёх частей:

  • apps (приложения)
 :Эта часть содержит приложения, например Dolphin и KWrite.
  • runtime (среда выполнения)
 :Содержит всё необходимое для приложений во время исполнения (например, значки). Эта часть необходима для работы любого приложения KDE, поэтому её необходимо обязательно собрать и установить. 
  • workspace (рабочая среда)
 :Включает в себя ПО, специфичное для KDE, например Plasma и оконный менеджер. Большая часть зависит от X11. Требуется только для того, чтобы собрать полный рабочий стол KDE.

Инструкция

cs KDE # 'cs' является функцией bash; пройдите по ссылке, чтобы узнать больше
svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase
cd kdebase
cmakekde

Устранение неполадок

При наличии проблем компиляции kdebase:

  • Проверьте наличие заголовочных файлов libxss headers. (Обычно появляется ошибка «undefined references on xscreensaver objects», связанная с отсутствием заголовков для данной библиотеки).
  • Команда which meinproc должна возвращать /home/kde-devel/kde/bin/meinproc
  • Если cmakekde не находит kdepimlibs, отредактируйте файл $KDE_BUILD/KDE/kdebase/CMakeCache.txt, вручную прописав KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs
  • При получении ошибки «Please set the following variables: X11_XTest_LIB (ADVANCED)» установите пакеты разработки для Xtst. В некоторых системах этот пакет отделён от xext и называется x11proto-xext-dev или libxtst-dev. Также может потребоваться удалить CMakeCache.txt в каталоге сборке после установки пакета.
  • То же самое касается и «X11_Xinerama_LIB (ADVANCED)», но в данном случае следует установить пакет разработки для xinerama.
  • При наличии ошибки, связанной с отсутствием X11_Xrandr_LIB, нужно установить пакет разработки для libxrandr (libxrandr-devel в дистрибутивах Ubuntu)
  • Если появляется ошибка «Please set the following variables: FONTCONFIG_INCLUDE_DIR, FONTCONFIG_LIBRARIES (ADVANCED)», нужно установить заголовочные файлы libfontconfig.
  • При наличии ошибки «CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: KMETADATA_LIBRARIES» следует установить soprano из kdesupport и пересобрать kdelibs.
  • При получении ошибки «‘XserverRegion’ does not name a type» удостоверьтесь, что установлены заголовочные файлы libxcomposite (libxcomposite-dev в Ubuntu).
  • Для устранения ошибки «CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: QT_QTOPENGL_LIBRARY (ADVANCED) » попробуйте отредактировать CMakeCache.txt и переменную QT_QTOPENGL_LIBRARY:FILEPATH=/home/kde-devel/qt-copy/lib/libQtOpenGL.so
  • Получив ошибку «KDE4_INSTALL_HANDBOOK() is deprecated. Remove it please. Now all is done in KDE4_CREATE_HANDBOOK», либо найдите файлы, содержащие строку, вызывающую ошибку, и закомментируйте её вручную, либо из каталога ~/kde/src/KDE/kdebase запустите скрипт

macros_corrector.sh. Он удалит строки, содержащие «kde4_create_handbook» из всех файлов, в которых они встречаются.

  • При получении ошибки (в Ubuntu), связанной с libxtst.so, установите пакет libxtst-dev.
  • При получении сообщения «"kdebase/workspace/kcontrol/kxkb/x11helper.cpp:131: error: ‘KGlobal’ has not been declared», возможно, требуется установить пакеты разработки libxklavier.

Запуск приложений KDE 4

Теперь вы можете запускать приложения KDE 4 (например, kwrite), напечатав:

ssh -X kde-devel@localhost kwrite

Устранение неполадок

  • Если появляется сообщение

«KUniqueApplication: Cannot find the D-Bus session server», проверьте, есть ли у вас боступ к дисплею, например, напечатав xclock Проверьте, появятся ли часы на экране.

  • При получение ошибки, похожей на

Error: standard icon theme "oxygen" not found!

ASSERT: "!isEmpty()" in file /home/kde-devel/qt-copy/include/QtCore/../../src/corelib/tools/qlist.h, line 245 Aborted (core dumped), необходимо установить kdebase (см. выше). Достаточно установить каталог "runtime" из kdebase.

Получение локальной документации по API

Хотя документация по API KDE доступна на api.kde.org, иногда удобно иметь её на своём компьютере, например, чтобы использовать KDevelop для просмотра документации, или если невозможно постоянно находиться в сети.

Учтите, что загрузка документации по API может занять несколько часов, а сама документации занимает почти полгигабайта дискового пространства.


Инструкция

cs KDE/kdelibs # 'cs' является функцией bash; пройдите по ссылке, чтобы узнать больше
$KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \
--doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .

Повторите для всех модулей:

cd <имя модуля>
$KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \
--doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .

Другой и, наверное, более простой способ, - загрузить Doxyfile. Затем перейти в каталог, куда следует поместить документацию и выполнить команду:

% doxygen /path/to/Doxyfile Затем проверить содержимое файла doxygen.log на наличие ошибок и предупреждений. Документация будет установлена в подкаталог apidocs

Не забывайте обновляться

Чтобы иметь последние обновления kde4, нужно периодически обновлять все установленные модули. Так как понедельник - день внесения множества изменений в kdelibs, то вторник является лучшим днём для этого. Для каждого модуля следует выполнить svn up и make.


Например: cs kdesupport # 'cs' является функцией bash; пройдите по ссылке, чтобы узнать больше svn up cb # cb - не опечатка make -j2 VERBOSE=1 && make install

Частичная установка модулей (установка отдельных приложений)

Многие модули KDE4 включают в себя огромное число приложений, поэтому для установки всего модуля может потребоваться много времени, чтобы всё скачать и собрать. В случае, если нужно всего несколько определённых приложений из состава модуля, возможно скачивать и компилировать только отдельные каталоги. В некоторых случаях, для сборки любого приложения необходимо иметь несколько "главных" каталогов. Они задаются в файле CMakeLists.txt каждого модуля. Например, в kdegames CMakeLists.txt файле для kdegames перечислены:

add_subdirectory(libkdegames) add_subdirectory(libkmahjongg)

macro_optional_add_subdirectory(doc) macro_optional_add_subdirectory(lskat) macro_optional_add_subdirectory(katomic)

Таким образом, каталоги libkdegames и libkmahjongg необходимы для сборки любого приложения из kdegames. Обычно также необходим каталог cmake. Ниже приведён пример сборки kmahjongg и kbattleship:

cs KDE svn co -N kdegames # The -N switch performs a non-recursive checkout cd kdegames svn up libkdegames # Get required directories svn up libkmahjongg svn up cmake svn up kbattleship # Get optional directories svn up kmahjongg cmakekde

Общий способ устранения неполадок

С течением времени, после нескольких выполнений команды svn up может оказаться, что некоторые утилиты, используемые в системе сборки KDE, изменили формат вывода. Например, файлы kcfg используются kconfig_compiler для создания конфигурационных диалогов. CMake не в состоянии отследить подобные изменения, что приводит к сбою компиляции. Обходной путь - использование приндительного обновления всех подобных файлов:

find $KDE_SRC/KDE/kdebase -name "*.kcfg" | xargs touch

То же самое касается ui-файлов, созданных Qt Designer.

Заблокированный сеанс

При установке KDE 4 в качестве пользователя нельзя будет разблокировать заблокированную сессию. Чтобы решить эту проблему необходимо: su

chown root.root $KDEDIR/bin/kcheckpass

или

chmod 755 $KDEDIR/bin/kcheckpass

Готово!

Теперь Вы готовы к сборке других модулей из svn (выполняется абсолютно аналогично), запуску и тестированию KDE4 или написанию собственных патчей и приложений.

Чтобы узнать, как запускать приложения KDE4 и использовать KDevelop для работы с ними, см. обзор Подготовка KDE4 для разработки


KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal