- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF142:KDE
Материал из Linuxformat.
- KDE Настроим и запустим популярный рабочий стол на вашем компьютере [Категория:Учебники]
Содержание |
KDE: Cоздаем сборку с нуля
- Если, по-вашему, KDE – самый передовой и инновационный рабочий стол, готовьтесь присоединиться к Бобу Моссу в создании собственной сборки.
KDE сейчас, бесспорно, самый передовой и привлекательный рабочий стол в мире Linux. Благодаря недавним усилиям он также достаточно надежен, чтобы каждый мог сделать его частью своего повседневного рабочего окружения.
Вы можете поинтересоваться, зачем компилировать KDE из исходников, когда его можно установить почти из любого дистрибутива через менеджер пакетов; но причины на это все-таки есть. Скажем, вам хочется попробовать новую классную фишку или плазмоид, но вы лишены такой возможности, потому что в вашем дистрибутиве они еще не полностью протестированы. Или вам мозолит глаза ошибка или проблема в безопасности, и все это уже исправлено, но еще не попало в официальный релиз KDE.
А главная причина создания собственного рабочего стола KDE в том, что вы сможете отсечь ненужные пакеты и то, чем никогда не пользуетесь, и получить полностью оптимизированную для вашего компьютера установку. В итоге ваша работа станет гораздо эффективнее; кроме того, у вас высвободится место на диске.
Начинаем
Итак, без долгих разговоров создадим-ка собственный рабочий стол KDE. Первым делом убедитесь, что в системе установлены Cmake, KDE Support и Qt4. Если Qt вы хотите скомпилировать, а не просто установить через менеджер пакетов (это может потребоваться, например, если вы собрались компилировать версию KDЕ на основе более поздней версии библиотеки Qt по срав-нению с имеющейся у вас в дистрибутиве), следуйте инструкциям по получению ее исходников из Git во врезке «Наука умеет много гитик». Следующим шагом создайте нового пользователя для своей сборки KDE – для гарантии, что окружение получится полностью «чистым», безо всяких посторонних глобальных переменных, уцелевших от предыдущих сборок из исходников. Большинство дистрибутивов снабжено для этой цели простой графической утилитой, но если вы предпочитаете командную строку, выполните в ней следующие команды:
sudo useradd -m kde-dev -s /bin/bash sudo passwd kde-dev
Также убедитесь, что kde-dev есть в списке sudoers. Все глобальные переменные сборки, которые нужно определить, будут находиться в файле .bashsrc в домашнем каталоге разработчика. Просто скопируйте и вставьте его содержимое из примера на сайте http://techbase.kde.org/Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc. Если вы не хотите устанавливать инструментарий разработчика KDE Software Development Kit (SDK), найдите и закомментируйте следующую строку, поместив в ее начале #:
alias make=makeobj
Также следует пройтись по файлу и закомментировать все строки, не подходящие к вашей системе. Например, если вы устанавливаете версию Qt, предоставленную менеджером пакетов, информация в переменных QTDIR вам ни к чему, и можно закомментировать четыре соответствующих строки. Файл богат комментариями, и в большинстве случаев все будет очевидно; его главное преимущество – в том, что мы также получаем доступ к маленькой полезной функции cmakekde. Эта функция гарантирует, что при сборке будут установлены корректные пути и переменные. Пути можно изменить, если вы хотите сохранить отдельные версии KDE в сборке и в репозитории в одной и той же системе.
Покончив с этим файлом, «установите» его командой
source ~/.bashrc
Затем выполните следующую команду, чтобы зайти в систему под новым пользователем и начать сборку:
su - kde-dev
Теперь переключитесь в оболочку в текстовом режиме, нажав Ctrl+Alt+F1. При желании можете вытащить приложения KDE с помощью ssh, командой:
ssh -X kde-devel@localhost
На данном этапе мы готовы к тому, чтобы получить исходники KDE с помощью команд, приведенных во врезке «Наука умеет много гитик». Исходники должны автоматически появиться в каталоге ~/kde/src/, а сборка, как вы также заметите, появится в каталоге ~/kde/build/. Так происходит благодаря недавно введенному в KDE 4.x правилу, по которому исходники и сборка должны находиться в разных каталогах. Не спешите ужасаться при мысли, сколько раз придется набирать команду cd: учтите, что благодаря ранее установленному файлу .bashsrc можно переключаться между двумя наборами каталогов командами cs и cb независимо от того, в каком из них находимся в текущий момент. Например, если мы находимся в каталоге ~/kde/src/kdebase команда cb отправит нас в ~/kde/build/kdebase, а cs вернет обратно в каталог с исходниками.
Еще один повод благодарить скрипт .bashsrc – то, что для сборки каждого модуля с ним обычно требуется всего две команды:
cs KDE/kdebase cmakekde
Как всегда при сборке из исходников, сначала нужно построить список зависимостей модулей. В зависимости от того, какие компоненты включены в сборку, он может быть различным, но kdebase, kdelibs, kdesupport и kdepimlibs – четыре самых важных модуля, и их обязательно нужно собирать в самом начале.
По завершении сборки вы сможете протестировать ее, выполнив несколько команд SSH или, как и прежде, запустив startx после добавления startkde в файл ~/.xinitrc пользователя kde-dev.
Если вы оставили все пути и переменные в значениях по умолчанию, то текущая установка KDE будет заменена новой. Это не всегда оптимально, и сейчас мы узнаем почему.
Сосуществующие версии
Как вы, возможно, помните, ранее мы отметили, что в файле .bashsrc можно задать глобальные переменные и пути, и это стоит делать при наличии в системе нескольких различных установок KDE. Тут вы можете спросить: «А зачем мне несколько установок KDE?» Причин несколько, но главная – в том, что сейчас у вас есть стабильная система, полученная из менеджера пакетов и полностью оптимизированная для сборки и поддержки нового рабочего стола KDE – к ней всегда можно будет вернуться, если что-то пойдет не так. Если новая сборка докажет свою надежность, можно выкинуть старую и снова остаться только с одной версией KDE.
Но чтобы все получилось, обеспечьте, чтобы пути к библиотекам в файле .bashsrc, который был создан для kdedev, выглядели примерно так:
QTDIR=/home/kde-devel/qt-custom KDEDIR=/home/kde-devel/kde-custom KDEHOME=/home/kde-devel/.kde-custom PATH=$PATH:$QTDIR/bin:$KDEDIR/bin LD_LIBRARY_PATH=$QTDIR/lib:$KDEDIR/lib XDG_DATA_DIRS=$KDEDIR/share/:/usr/local/share/:/usr/share/ XDG_CONFIG_DIRS=$KDEDIR/etc/xdg/:/etc/xdg/export QTDIR KDEDIR PATH LD_LIBRARY_PATH XDG_DATA_DIRS XDG_CONFIG_DIRS
Маленькое напоминание: если вы пользуетесь версией Qt из менеджера пакетов, переменную QTDIR определять не нужно. После изменения файла ./bashsrc снова запустите команду source ~./bashsrc или просто выйдите из системы и войдите в нее.
Затем снова скомпилируйте каждый модуль, и в итоге вы должны увидеть, что под стандартным пользователем вы автоматически заходите в версию KDE из репозиториев, а под пользователем kde-dev – в новую сборку KDE.
Время сессии
Каждый раз выходить из системы и заходить в нее в однопользовательском окружении утомительно, ведь есть вещи и поинтереснее. К счастью, существует хитрый способ одновременного запуска обоих версий KDE – стандартной из репозитория и новой сборки. Если мы можем работать с полноэкранными версиями обоих рабочих столов, можно запустить несколько сессий X Server: одну для стандартного пользователя и одну для kde-dev. Затем мы сможем легко переключаться между ними с помощью заданной комбинации клавиш.
Для этого просто зайдите в систему обычным образом под стандартным пользователем через Kdm. Нажмите Ctrl+Alt+F1, с целью переключения в оболочку, и введите следующие две команды:
login kde-dev startx -- :1
Первая выполняет вход в систему под пользователем сборки, для которого уже полностью настроены переменные окружения и сама сборка; теперь можно запускать X-сервер. Вторая создает новую сессию X-сервера на терминале 1 – по умолчанию X-сервер выполняется на терминале 0. Последний (с версией KDE из репозиториев) доступен с помощью комбинации клавиш Ctrl+Alt+F7, а чтобы вернуться на терминал 1, нужно нажать Ctrl+Alt+F8.
В эфире Xephyr
Как это работает? Linux и Unix в целом изначально создавались с расчетом на поддержку нескольких сессий виртуальных терминалов и были многопользовательскими системами. Как следствие, мы можем запускать любое количество сессий в терминалах, и в любой момент в системе может работать любое количество пользователей. Здесь мы по сути зашли в систему под соответствующим пользователем и запустили X-сервер на терминале 0 через виртуальный терминал, как это и произошло бы по умолчанию, а также сделали то же самое еще раз, но запустили X-сервер на отдельном терминале. Практическое следствие тут такое, что можно (теоретически) запустить столько сессий X-сервера (и рабочих столов/программ, которые их используют), сколько позволяют объем ОЗУ системы и ее вычислительная мощность. В данном случае необходимо запустить две сессии KDE, что нетрудно сделать в любой свободной ОС.
Однако благодаря умной утилите Xephyr оба можно запустить одновременно; но на сей раз мы запустим нашу сборку внутри стандартной системы. Это позволит запустить первую почти как в виртуальной среде (хотя, строго говоря, в этом случае пришлось бы запустить две сессии X-сервера).
Для этого установите пакет Xserver-Xephyr через менеджер пакетов, запустите сессию в Konsole, зайдите в kde-vm внутри ядра (в основной системе вы все еще должны быть под обычным пользователем) и введите команды
startx -- :1 Xephyr -query localhost :1 -host-cursor -screen 1024x768
Если X-сервер на терминале 1 уже запущен, на нем появится маленькое окошко – в противном случае первая команда запустила бы сессию X-сервера для kde-dev. Вторая команда должна позволить вам пользоваться текущим курсором без необходимости перехватывать его, работая в нашей сборке KDE.
Мелкие пакеты
Вы можете обнаружить, что исходные коды довольно долго загружаются из репозитория, особенно при медленном интернет-соединении, и в большинстве случаев приходит немало дополнительных пакетов, которые вам на самом деле не нужны. Решить эту проблему можно ускорением загрузки, заглянув в файл CMakesLists.txt любого заданного пакета. Найдите там строки, начинающиеся со следующих конструкций:
add_subdirectory(x) add_optional_subdirectory(x)
где x – пакет.
Эти строки определяют фиксированные и опционные зависимости для сборки каждого пакета. Чтобы зря не забивать канал, можно загрузить только эти фиксированные и опционные зависимости, а затем провести сборку как обычно, не добавляя в свою систему никаких посторонних пакетов. Для этого понадобится нерекурсивная (без обработки подкаталогов) загрузка данного пакета. Каждую зависимость следует загрузить перед сборкой. Например, выполните следующие команды
svn co -N svn://anonsvn.kde.org/home/kde/trunk/KDE/kdegames svn co -N svn://anonsvn.kde.org/home/kde/trunk/KDE/kdegames/dependency svn co -N svn://anonsvn.kde.org/home/kde/trunk/KDE/kdegames/cmake
и продолжите сборку KDE как обычно, командой cmakekde.
Сделай сам
Технологии, приведенные в этой статье, позволяют не просто создать рабочий стол KDE. С их помощью можно разрабатывать приложения GTK в подокне рабочего стола KDE или впервые попробовать Xfce, зная, что вы всегда вернетесь в более привычное окружение нажатием пары клавиш.
Или – почему бы теперь, попробовав скомпилировать KDE самостоятельно, не помочь в его разработке? В базе ошибок KDE4 (доступна по адресу http://bugs.kde.org) есть обширная коллекция ошибок, и там вы сможете сообщить о новых ошибках и помочь исправить существующие. Можно также присоединиться к одной из команд разработчиков или отвечать на вопросы на форумах KDE4. Наконец, воспользовавшись бесплатными руководствами по разработке для Qt на сайте http://tuxradar.com/learnqt, можно создать собственные приложения, которые идеально впишутся в ваше новое рабочее окружение.
В поисках легких путей
Если возможность безграничной адаптации под себя при сборке KDE с нуля вас не привлекает, можете автоматизировать большую часть процесса с помощью Kdesrc-build. Эта умная утилитка выполнит все начальные проверки, настроит систему сборки, соберет и установит KDE и еще раз проверит все после установки. Однако нужно убедиться, что в основной системе установлен Perl (и libwww). Вам останется только изменить файл настройки, включив туда соответствующие модули. Подробные указания ищите на сайте http://techbase.kde.org/Getting_Started/Build/kdesvn-build.
Наука умеет много гитик
При получении свежих версий исходников вы столкнетесь с двумя технологиями, с которыми, возможно, не встречались прежде. Первую, Subversion, постоянные читатели, наверное, помнят по учебнику в LXF133, а подробную информацию о второй, Git, можно получить из LXF121. Если вкратце, и то, и другое – системы управления версиями. Управление версиями – умная технология, позволяющая разработчикам свободного ПО вносить изменения в исходные коды. Это означает, что одни могут вносить изменения, другие – отменять их, и благодаря ответственным людям этот упорядоченный хаос в конце концов рождает свободное ПО.
Итак, зачем нам нужны системы управления версиями? Дело в том, что команда разработчиков KDE разместила все исходные коды KDE в репозитории SVN, а Trolltech поместила Qt (основа для KDE) в отдельный репозиторий Git. Для сборки нам нужны исходные коды из каждого из этих репозиториев.
Если они у вас не установлены, можете установить их с помощью менеджера пакетов или графического клиента, такого как RapidSVN. Чтобы создать костяк рабочего стола KDE, нужно выполнить как минимум четыре следующие команды:
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase svn co svn://anonsvn.kde.org/home/kde/trunk/kdesupport
Если вы работали с SVN раньше, то удивитесь, что здесь нет логина и пароля – но дело в том, что это анонимный сервер с исходниками KDE. Если брандмауэр блокирует получение исходников, добавьте
:433 после anonsvn.kde.org.
Затем загрузите исходники Qt последней версии (это нужноделать, только если того требует сборка)
git clone git://gitorious.org/+kde-developers/qt/kde-qt.git qt-kd
Позже я расскажу, как добавить компоненты, но если вы хотите включить все, на этапе получения исходников скомандуйте:
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE
Впрочем, это не лучший вариант. Лучше установить только те компоненты KDE, которые вам в самом деле необходимы.
Чуть-чуть подсолим
Наш урок проведет вас через базовую сборку KDE, но сама по себе она не особенно удобна. Вам явно потребуется дополнительный функционал, для чего стоит заглянуть в соответствующие каталоги. Вам могут пригодиться такие:
Каталог | Назначение |
---|---|
koffice | Содержит офисный пакет KDE |
extragear | Программы KDE, не вошедшие в основной релиз |
playground | Приложения в бета-версии |
kdereview | Приложения – релиз-кандидаты |
kdegames | Набор казуальных игр |
kdeartwork | Набор тем и обоев для рабочего стола |
kdelibs | Общие библиотеки, используемые всеми приложениями KDE |
kdebase | Основные пакеты – панель управления и т. д. |
kdetoys | Некоторые игры и виджеты |
kdemultimedia | Приложения для работы с видео и звуком |
kdegraphics | Графические редакторы |
Полный список каталогов и пакетов, доступных с этой сборкой KDE, можно получить на сайте Websvn проекта KDE: http://websvn.kde.org/trunk/KDE. Там можно найти разнообразные дополнительные компоненты, с которыми ваш рабочий стол станет гораздо удобнее по сравнению с простой установкой, содержащей только самое необходимое.