m (Update) |
m (Updates) |
||
| Line 23: | Line 23: | ||
Следующие пакеты должны быть установлены для успешного завершения урока: | Следующие пакеты должны быть установлены для успешного завершения урока: | ||
| − | * gcc и g++ | + | * gcc и g++, предпочтительно версии 4.1 и выше |
* svn, клиет контроля за версиями (the subversion revision control client) | * svn, клиет контроля за версиями (the subversion revision control client) | ||
* pkg-config | * pkg-config | ||
| Line 35: | Line 35: | ||
<code bash> | <code bash> | ||
apt-get install devel-core libxml-devel libxslt-devel bzip2-devel \ | apt-get install devel-core libxml-devel libxslt-devel bzip2-devel \ | ||
| − | clucene-devel librdf-devel shared-mime-info xorg-Mesa-libGL-devel \ | + | clucene-core-devel librdf-devel shared-mime-info xorg-Mesa-libGL-devel \ |
subversion boost-devel doxygen giflib-devel dbus-devel openssl-devel \ | subversion boost-devel doxygen giflib-devel dbus-devel openssl-devel \ | ||
alsa-lib-devel kdesdk-scripts qt4-devel | alsa-lib-devel kdesdk-scripts qt4-devel | ||
</code> | </code> | ||
| − | Если вы предпочитаете графический интерфейс, то можете установить вышеперечисленные пакеты с помощью утилиты | + | Если вы предпочитаете графический интерфейс, то можете установить вышеперечисленные пакеты с помощью утилиты «Install Software» из Mission Control. |
После этого CMake, DBus и Qt будут установлены - пункты 5,6 и 7 можно пропустить. | После этого CMake, DBus и Qt будут установлены - пункты 5,6 и 7 можно пропустить. | ||
| Line 134: | Line 134: | ||
==== Ручная установка ==== | ==== Ручная установка ==== | ||
| − | Используя стабильные сборочные файлы (ebuilds), не забудьте обновить дерево портежей ( | + | Используя стабильные сборочные файлы (ebuilds), не забудьте обновить дерево портежей («синькнуться»), прежде чем приступить к установке. |
Нам нужно разрешить следующие сборочные файлы, замаскированные ключами: | Нам нужно разрешить следующие сборочные файлы, замаскированные ключами: | ||
| Line 291: | Line 291: | ||
sudo make install | sudo make install | ||
sudo dbus-uuidgen --ensure | sudo dbus-uuidgen --ensure | ||
| − | |||
cs # see above | cs # see above | ||
wget http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.74.tar.gz | wget http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.74.tar.gz | ||
| Line 359: | Line 358: | ||
=== Устранение неполадок === | === Устранение неполадок === | ||
| − | Если появляется ошибка | + | Если появляется ошибка «X11/Xlib.h: No such file or directory», то следует установить пакет <tt>xorg</tt> (название в различных системах может незначительно различаться, например, в Kubuntu имя пакета <tt>xorg-dev</tt>) |
Если во время конфигурирования появляется ошибка, связанная с отсутствием определений (missing defines), нужно проверить значение <tt>$QMAKESPEC</tt>. Некоторые дистрибутивы настраивают переменную так, чтобы она указывала на установленный системой Qt. Если <tt>unset QMAKESPEC</tt> решает проблему, то это следует прописать в скрипт <tt>~/.bashrc</tt> | Если во время конфигурирования появляется ошибка, связанная с отсутствием определений (missing defines), нужно проверить значение <tt>$QMAKESPEC</tt>. Некоторые дистрибутивы настраивают переменную так, чтобы она указывала на установленный системой Qt. Если <tt>unset QMAKESPEC</tt> решает проблему, то это следует прописать в скрипт <tt>~/.bashrc</tt> | ||
| − | Ошибка | + | Ошибка «.pch/debug-shared/QtCore» связана с тем, что Qt-4.3 разрешает системе использование прекомпилированных заголовочных файлов, если gcc поддерживает их, но по неизвестной причине это не работает. При использовании distcc нужно сконфигурировать qt с параметром -no-pch. При использовании icecream следует обновить приложение через svn. |
Попробуйте запустить любую Qt программу, например, {{program|assistant}}. '''Учтите:''' может потребоваться запуск <tt>xhost +local:kde-devel</tt> от имени обычного kde3 пользователя, чтобы запустить это приложение. Если оно падает на QSpanData::adjustSpanMethods, то проблема связана со стилем oxygen. Для решения проблемы следует удалить {{path|lib/kde4/plugins/styles/kstyle-oxygen.so}} и {{path|lib/kde4/plugins/styles/oxygen.so}}, если они находятся в префиксе установки KDE (KDE install prefix). | Попробуйте запустить любую Qt программу, например, {{program|assistant}}. '''Учтите:''' может потребоваться запуск <tt>xhost +local:kde-devel</tt> от имени обычного kde3 пользователя, чтобы запустить это приложение. Если оно падает на QSpanData::adjustSpanMethods, то проблема связана со стилем oxygen. Для решения проблемы следует удалить {{path|lib/kde4/plugins/styles/kstyle-oxygen.so}} и {{path|lib/kde4/plugins/styles/oxygen.so}}, если они находятся в префиксе установки KDE (KDE install prefix). | ||
| Line 374: | Line 373: | ||
== kdesupport == | == kdesupport == | ||
| − | {{warning| | + | {{warning|Не забудьте сперва ознакомиться со статьёй [[Getting_Started/Build/KDE4#Setting_up_the_environment|Настройка окружения]]. |
| − | |||
Есть несколько библиотек, требуемых модулем kdesupport: Strigi и Soprano нужны для метаданных файлов (file metadata) и поиска, QImageBlitz, используемый kdebase для обработки изображений, eigen для визуальных эффектов в таких приложениях, как Kalzium, taglib - для музыкальных плейеров и qca - для выполнения некоторых криптографических задач. | Есть несколько библиотек, требуемых модулем kdesupport: Strigi и Soprano нужны для метаданных файлов (file metadata) и поиска, QImageBlitz, используемый kdebase для обработки изображений, eigen для визуальных эффектов в таких приложениях, как Kalzium, taglib - для музыкальных плейеров и qca - для выполнения некоторых криптографических задач. | ||
| Line 429: | Line 427: | ||
=== Инструкция === | === Инструкция === | ||
| − | cd | + | cd |
cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs не опечатка]] | cs # [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|cs не опечатка]] | ||
mkdir KDE && cd KDE | mkdir KDE && cd KDE | ||
| Line 458: | Line 456: | ||
make | make | ||
make install | make install | ||
| − | * При получении ошибки | + | * При получении ошибки «Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there.» следует перейти в директорию сборки до запуска cmakekde (например, <tt>cs KDE/kdelibs && cb && cmakekde</tt>). Если ошибка повторилась, запустите 'svn status' в каталоге kdelibs и удалите все файлы, помеченные '?'. |
* Если не найден Qt или найдена неподдерживаемая версия, убедитесь, что qmake c нужной версии Qt является первым в пути (in the path). | * Если не найден Qt или найдена неподдерживаемая версия, убедитесь, что qmake c нужной версии Qt является первым в пути (in the path). | ||
* Если ошибка продолжает появляться, то можно попробовать запустить CMake c опцией <tt>--keep-going</tt>. | * Если ошибка продолжает появляться, то можно попробовать запустить CMake c опцией <tt>--keep-going</tt>. | ||
| − | * Ошибка | + | * Ошибка «<tt>Could NOT find GIF</tt>» означает, что нужно установить библиотеку libungif. |
* Изменение настроек Qt-4.3: при получение ошибки линковки kjsembed, связанной с QScriptEngine, отредактируйте CMakeCache.txt в kdelibs: удалите строки, в которых есть QT_QTUITOOLS_LIBRARY, а затем снова выполните make (эта статическая библиотека имеет новую зависимость, в результате чего выполняется код cmake, который её обрабатывает). | * Изменение настроек Qt-4.3: при получение ошибки линковки kjsembed, связанной с QScriptEngine, отредактируйте CMakeCache.txt в kdelibs: удалите строки, в которых есть QT_QTUITOOLS_LIBRARY, а затем снова выполните make (эта статическая библиотека имеет новую зависимость, в результате чего выполняется код cmake, который её обрабатывает). | ||
* При получении ошибки <code>CMake Error: KDE Requires Qt to be built with SSL support | * При получении ошибки <code>CMake Error: KDE Requires Qt to be built with SSL support | ||
| Line 487: | Line 485: | ||
* Утилита cmakekde может требовать более позднюю версию библиотеки gpgme. Она доступна на сайте: | * Утилита 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 нашла более новую версию библиотеки. | 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 (в Debian - libpth-dev). |
== kdebase == | == kdebase == | ||
| Line 510: | Line 508: | ||
При наличии проблем компиляции kdebase: | При наличии проблем компиляции kdebase: | ||
| − | * Проверьте наличие заголовочных файлов <tt>libxss headers</tt>. (Обычно появляется ошибка | + | * Проверьте наличие заголовочных файлов <tt>libxss headers</tt>. (Обычно появляется ошибка «undefined references on xscreensaver objects», связанная с отсутствием заголовков для данной библиотеки). |
* Команда <tt>which meinproc</tt> должна выдавать {{path|/home/kde-devel/kde/bin/meinproc}} | * Команда <tt>which meinproc</tt> должна выдавать {{path|/home/kde-devel/kde/bin/meinproc}} | ||
* Если cmakekde не находит kdepimlibs, отредактируйте файл {{path|$KDE_BUILD/KDE/kdebase/CMakeCache.txt}}, вручную прописав <tt>KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs</tt> | * Если cmakekde не находит kdepimlibs, отредактируйте файл {{path|$KDE_BUILD/KDE/kdebase/CMakeCache.txt}}, вручную прописав <tt>KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs</tt> | ||
| − | * При получении ошибки | + | * При получении ошибки «Please set the following variables: X11_XTest_LIB (ADVANCED)», установите пакеты разработки для <tt>Xtst</tt>. В некоторых системах этот пакет отделён от <tt>xext</tt> и называется <tt>x11proto-xext-dev</tt> или <tt>libxtst-dev</tt>. Также может потребоваться удалить CMakeCache.txt в каталоге сборке после установки пакета. |
| − | * То же самое касается и | + | * То же самое касается и «X11_Xinerama_LIB (ADVANCED)», но в данном случае следует установить пакет разработки для <tt>xinerama</tt>. |
* При наличии ошибки, связанной с отсутствием X11_Xrandr_LIB, нужно установить пакет разработки для libxrandr (libxrandr-devel в дистрибутивах Ubuntu) | * При наличии ошибки, связанной с отсутствием 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 (<tt>libxcomposite-dev</tt> в 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 запустите скрипт |
[http://www.plamadeala.com/files/macros_corrector.sh macros_corrector.sh]. Он удалит строки, содержащие «kde4_create_handbook» со всех файлов, где они встречаются. | [http://www.plamadeala.com/files/macros_corrector.sh macros_corrector.sh]. Он удалит строки, содержащие «kde4_create_handbook» со всех файлов, где они встречаются. | ||
| + | |||
| + | == Запуск приложений 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 == | ||
Languages: عربي | Asturianu | Català | Česky | Kaszëbsczi | Dansk | Deutsch | English | Esperanto | Español | Eesti | فارسی | Suomi | Français | Galego | Italiano | 日本語 | 한국어 | Norwegian | Polski | Português Brasileiro | Română | Русский | Svenska | Slovenčina | Slovenščina | српски | Türkçe | Tiếng Việt | Українська | 简体中文 | 繁體中文
В данном уроке рассказано, как построить KDE на Linux/BSD системах. Так же есть уроки по FreeBSD, Windows, Mac OS X и Solaris. В листингах команд везде используется bash.
| Warning |
|---|
| По понедельникам высока вероятность проблем со сборкой. Это связано с тем, что большинство изменений в kdelibs вносятся в этот день. Dashboard сообщает о неожиданных сбоях. Приветствуется самостоятельное исправление нерабочих модулей. |
Следующие пакеты должны быть установлены для успешного завершения урока:
В Ark Linux все необходимые для сборки пакеты можно установить следующим способом:
apt-get 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 можно пропустить.
В 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 libpng-dev subversion libsm-dev libxinerama-dev \
libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen \
libungif4-dev libdbus-1-dev libgpgme11-dev libssl-dev libgpgme11-dev \
libasound2-dev kdesdk-scripts libpth-dev libjasper-dev ssh
В Kubuntu 7.10 (Gutsy) следует добавить:
sudo aptitude install dbus-x11
Чтобы задействовать всю функциональность системы документации (API documentation framework), вам нужно выполнить:
sudo aptitude install graphviz
В 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)
strigi-devel (необходимо для сборки kdelibs)
gpgme-devel (необходимо для сборки kdepimlibs)
Необязательные (Optional) пакеты
Ручную установку Qt 4.3, CMake 2.4.6 и DBus можно пропустить, добавив репозиторий openSUSE Build Service KDE4 в список источников установки.
Для 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
Чтобы задействовать всю функциональность системы apidox (apidox framework), вам нужен:
graphviz
Бинарные пакеты CMake для openSUSE доступны на openSUSE build service
Используя стабильные сборочные файлы (ebuilds), не забудьте обновить дерево портежей («синькнуться»), прежде чем приступить к установке.
Нам нужно разрешить следующие сборочные файлы, замаскированные ключами:
echo 'dev-util/cmake' >> /etc/portage/package.keywords
echo 'dev-cpp/clucene' >> /etc/portage/package.keywords
Необязательно:
Если вы решили не использовать KDE qt-copy, то следует размаскировать Qt:
echo 'x11-libs/qt' >> /etc/portage/package.keywords
А теперь необходимо замаскировать Clucene >= 0.9.16a.
echo '>dev-cpp/clucene-0.9.16a' >> /etc/portage/package.mask
Удостоверьтесь, что для redland установлен USE-флаг berkdb, в противном случае nepomuk не будет работать.
Далее приведён список необходимых пакетов, некоторые из которых могут быть уже установлены (их можно пропустить, добавив флаг обновления в 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'
Также может потребоваться выполнить emerge либо для 'kde-base/kdesdk', либо для kde-base/kdesdk-scripts'.
Необязательно:
Если вы решите использовать Qt4, входящий в Gentoo, вы можете установить (emerge) его следующим образом:
emerge -avu 'x11-libs/qt'
Если вы установили DBUS, CMAKE, QT и (возможно) HAL, то соответствующие секции можно пропустить.
Удачи!
Также пакеты KDE 4 можно установить напрямую с помощью
emerge -a <packagename>
Получите всё необходимое на install layman и положите в оверлей KDE (содержащий экспериментальные ebuilds)
layman -a kde
После этого следует настроить USE-флаги, необходимые для KDE 4. И задать portage использование тестовых (экспериментальных) ebuilds вместо стабильных для KDE 3.
Таким образом, система портежей отследит все зависимости.
Подробная инструкция по сборке KDE 4 в Gentoo находится в статье KDE overlay wiki. Обсуждение ebuilds находится в теме о KDE 4 monolithic ebuilds.
| Note |
|---|
| Некоторые люди предпочитают создавать отдельного пользователя для KDE 4 (например, из-за старого бага, по ошибке удалявшего файлы) - инструкция, приведённая ниже, была написана, исходя из этого.
Однако, намного эффективнее делать всё из-под одного пользователя, см. Повышение вашей продуктивности в KDE4 с помощью скриптов , чтобы узнать больше. Тем не менее, можно следовать инструкции, приведённой ниже, но не включайте никаких переменных окружения в .bashrc - задавайте их в отдельном файле, используемом при переключении к KDE 4. |
useradd -m kde-devel
passwd kde-devel
Вместо выполнения команд, приведённых выше, можно использовать модуль управления пользователями в Центре управления 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
В некоторых системах новый пользователь по умолчанию использует /bin/sh. Данный раздел можно пропустить, если в вашей системе это не так. Работа с /bin/sh может быть довольно неудобной, поэтому может потребоваться поменять оболочку на /bin/bash или любую другую. В Ark Linux /bin/sh по умолчанию bash, поэтому этот шаг можно пропустить.
Если невозможно изменить оболочку пользователя с помощью утилиты chsh (отсутствуют необходимые привилегии root'a), то можно попробовать изменить оболочку на /bin/bash, выполнив:
chsh -s /bin/bash kde-devel
Если в системе присутствует приложение usermod, то нужно выполнить от имени root следующую команду: usermod -s /bin/bash.
Другой вариант - использовать утилиту vipw, чтобы, находясь под рутом, отредактировать файл /etc/passwd. Нужно отыскать в файле 'kde-devel', поменять в конце строки '/bin/sh' на '/bin/bash' и сохранить изменения и выйти.
Новая командная оболочка будет автоматически запущена, когда пользователь kde-devel снова войдёт в систему.
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
| 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
Сначала нужно войти в каталог с исходными кодами, принадлежащий пользователю 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 аналогична вышеописанному.
Раздел можно пропустить при наличии установленной версии 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".
Теперь необходимо собрать Qt4 из репозитория исходных кодов (source repository) KDE4. KDE можно собрать с помощью Qt 4.3. Qt 4.2 и более ранние версии не поддерживаются. Следует использовать копию с серверов KDE Subversion (кдешная копия - это официальный пакет Qt + срочно исправленные баги). В некоторых дистрибутивах, таких, как Debian, имеется версия Qt с патчами из svn-репозитория KDE. Поэтому можно схитрить и использовать Qt с вашего дистрибутива.
cd 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
# если не требуется установка, то следует просто удалить объектные файлы # для экономии дискового пространства if [ $QTDIR = `pwd` ]; then \ find . -name '*.o' -delete ; \ else make install; fi;
Сначала нужно войти в каталог с исходными кодами, принадлежащий пользователю kde-devel, (строка 1) и скачать исходный код c репозитория KDE, используя svn (строка 2). Затем перейти в каталог qt-copy (строка 3) и запустить скрипт, устанавливающий патчи, скаченные вместе с qt-copy (строка 4).
После установки патчей следует настроить параметры сборки с помощью скрипта configure (строки 5-6). Объяснение различных опций (параметров к ./configure) можно найти в файле qt-copy/README.qt-copy. Наконец, осуществляется сборка (строка 7). Примеры и demo приложения можно собрать отдельно.
Обратите внимание, что установка не требует прав суперпользователя, так как 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).
{{tip|Чтобы проверить, есть ли org.freedesktop.hal, можно использовать qdbusviewer. Если его нет, то нужна более свежая версия hal. Если org.freedesktop.hal всё же есть, то наверняка вам не нужно и не захочется переустанавливать hal. Если вам требуется собрать новую версию HAL, то велик шанс, что потребуется собрать некоторое другое ПО, что может оказаться непростой задачей. Так как это касается только старых дистрибутивов, инструкции вынесены в отдельную статью
{{warning|Не забудьте сперва ознакомиться со статьёй Настройка окружения.
Есть несколько библиотек, требуемых модулем kdesupport: Strigi и Soprano нужны для метаданных файлов (file metadata) и поиска, QImageBlitz, используемый kdebase для обработки изображений, eigen для визуальных эффектов в таких приложениях, как Kalzium, taglib - для музыкальных плейеров и qca - для выполнения некоторых криптографических задач.
Strigi имеет несколько своих зависимостей: для установки понадобятся библиотеки и заголовки libz, libbz2, openssl (libcrypto или libssl), libclucene (=0.9.16; версия 0.9.17 не работает) и libxml2 ( либо libexpat).
cs # cs не опечатка 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. Если в дистрибутив не включён пакет then you need librdf from the Redland.librdf, его можно загрузить с http://download.librdf.org/source/ и установить.
((Gentoo users: ebuild для librdf - dev-libs/redland).
При получении ошибки:
Fetching external item into 'kdesupport/admin' Error validating server certificate for 'https://...'
cм. Работа с Subversion-репозиторием KDE
При получении ошибки:
FILE cannot create directory: /usr/lib[64]/qt4/plugins/crypto. Maybe need administrative privileges. - - - make: *** [install] Error 255
следует проверить корректность путей, прописанных в файле .bashrc. Так же подобная ошибка может возникать при использовании уже установленной в системе версии qt4 (и пропуске раздела об установке Qt). Либо поставьте qt-copy, либо выполните "sudo make install". После "sudo make install" следует сменить владельца на вашего пользователя для некоторых подкаталогов ~/kde, измененённых при использовании sudo (например, "sudo chown -R kde-devel:kde-devel ~/kde").
Теперь можно приступить к сборке основных библиотек KDE
cd cs # cs не опечатка mkdir KDE && cd KDE svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs cd kdelibs cmakekde
Сначала мы входим в каталог с исходными кодами (строка 1) и создаём папку KDE, сразу же входя в неё (строка 2). Затем загружаются текущие исходники kdelibs с помощью subversion (строка 3). Входим в появившийся каталог ~/kde/src/KDE/kdelibs (строка 4) и запускаем сборку (строка 5). По окончании будет выполнен вход в каталог сборки kdelibs.
| Tip |
|---|
| В вашей системе могут отсутствовать некоторые заголовочные файлы и/или соответствующие им библиотеки. Конкретные список неудовлетворённых зависимостей можно найти в выводе cmakekde. Перед сборкой компонентов KDE можно предварительно выполнить cmake $KDE_SRC/KDE/MODULE_NAME.) |
В kdelibs/cmake/modules/ находятся дополнительные модули CMake, необходимые для сборки KDE4 приложений. Они будут автоматически установлены, после инсталляции kdelibs.
При наличии проблем во время сборки kdelibs в первую очередь необходимо проверить наличие и работоспособность необходимого программного обеспечения. Другие рекомендации по устранению неполадок:
~/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
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 не сработает)
После установки kdelibs и перед сборкой kdebase, следует установить kdepimlibs.
cs KDE # cs не опечатка 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:
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 нашла более новую версию библиотеки.
kdebase состоит из трёх частей:
cs KDE # cs не опечатка svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase cd kdebase cmakekde
При наличии проблем компиляции kdebase:
macros_corrector.sh. Он удалит строки, содержащие «kde4_create_handbook» со всех файлов, где они встречаются.
Теперь вы можете запускать приложения 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 KDE доступна онлайн на api.kde.org, иногда удобно иметь её на своём компьютере, например, чтобы использовать KDevelop для просмотра документации или если невозможно быть всё время в сети.
Учтите, что загрузка документации по API может занять несколько часов, а сама документации занимает почти полгигабайта дискового пространства.
cs KDE/kdelibs # cs не опечатка $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 не опечатка
svn up
cb # cb не опечатка
make -j2 VERBOSE=1 && make install
С течением времени, после нескольких выполнений команды svn up, может оказаться, что некоторые утилиты, используемые в системе сборки KDE, изменили формат вывода. Например, файлы kcfg используются kconfig_compiler для создания конфигурационных диалогов. CMake не в состоянии отследить подобные изменения, что приводит к сбою компиляции. Обходной путь - использование принуждённого обновления всех подобных файлов:
find $KDE_SRC/KDE/kdebase -name "*.kcfg" | xargs touch
То же самое касается ui файлов, созданныз Qt Designer.
Теперь Вы готовы к сборке образом других модулей из svn (выполняется абсолютно аналогично), запускать и тестировать KDE4 или же писать свои собственные патчи и приложения.
Чтобы узнать, как запускать KDE4 приложения и использовать KDevelop для работы с ними, см. урок Настройка KDE4 для разработки