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

 

Подготовка для сборки

Не все исправления и нововведения доходят до нас очень быстро. Например, на момент написания этих строк была доступна версия KDE SC 4.6.2, а в официальном репозитории Ubuntu 10.10 значилась только 4.5.1. Аналогичная ситуация и в репозиториях других дистрибутивов и операционок — openSUSE 11.4, Gentoo Linux, FreeBSD, OpenBSD и т.д.

Есть, конечно, и другие причины для самостоятельной сборки. В пакете из репозитория могут быть активированы не все функции или возможности, которые хотелось бы использовать в работе. Или обнаружена ошибка, которая мешает нормально юзать программу или открывает брешь в системе. Еще вариант: сборка получилась тяжеловесной, в ней присутствуют ненужные приложения, и появилось желание ее чуть «подрезать», чтобы сэкономить системные ресурсы. В общем, причины у каждого свои. Поэтому сегодня рассмотрим, как самостоятельно собрать свои версии KDE и GNOME. Все операции будем производить на Linux Mint 10 с рабочей средой GNOME. В других дистрибутивах процесс практически полностью аналогичен. Для экспериментов рекомендую создать новую учетную запись, в которой и проводить тестирование.

Иначе при первом запуске могут быть внесены изменения в профиль, и залогиниться со старой версией не удастся. Кстати, подобную рекомендацию могу дать и тем, кто юзает несколько дистров с общим /home. Еще один немаловажный момент — пользователь должен получать доступ к sudo. Для этого — включаем его в группу admin (в Linux Mint). Далее настраиваем среду сборки. Разработчики приготовили рекомендации и скрипт ~/.build-config, устанавливающий необходимые глобальные переменные (clck.ru/BZTg) и настройки для ~/.bashrc. Некоторые параметры внутри закомментированы, следует внимательно их просмотреть и определиться с их необходимостью. Например, при сборке в 64-битной системе надо обязательно установить:

export LIB_SUFFIX=64

Чтобы не собирать kdesdk, комментируем строку «alias make=makeobj». Аналогично определяемся, нужна ли пересборка PyKDE4 и DBUS.

Обращаем внимание и на «function cmakekde», в которой определены параметры сборки при помощи cmake. Так, по умолчанию компиляция производится с параметрами:

cmake $KDE_BUILD
-DCMAKE_INSTALL_PREFIX=$KDEDIR
-DCMAKE_BUILD_TYPE=debugfull
-DKDE4_BUILD_TESTS=TRUE
nice make -j2
make install

Числовой параметр после флага ‘-j’ определяет количество потоков и обычно выбирается по формуле (X+1), где Х — число CPU. Если устанавливаются разные версии KDE или варианты сборки, достаточно изменить путь $KDEDIR. Упростить весь процесс можно при помощи скриптов kdesrc-build (kdesrc-bld.kde.org) и build-tool.

Первый разрабатывается в рамках комьюнити KDE и более популярен. Предварительная настройка, в том числе выбор модулей для установки, производится при помощи конфигурационного файла ~/.kdesrc-buildrc. В архиве есть пример, копируем его и правим.

$ cp ~/kdesrc-build-1.13/kdesrc-buildrc-sample ~/.kdesrc-buildrc

Параметров внутри предостаточно. Новичкам я бы посоветовал начать с изучения этого файла, это снимет впоследствии много вопросов. Да, и не забудь установить переменную:

kde-languages ru

Модули настраиваются в конструкциях:

module <module-name>
end module

Теперь запускаем:

$ sudo ./kdesrc-buildrc

Скрипт самостоятельно скачает исходники, настроит среду, соберет, установит и протестирует результат. Поддерживается несколько дополнительных параметров, так, чтобы повторно не загружать файлы, добавляем ‘—no-svn’. Для теста конфигурации используем ‘—pretend’, в этом случае будут проверены все установки без выполнения процедуры загрузки и сборки. И, наконец, ‘—refresh-build’ подчистит временные файлы, чтобы можно было начать процесс сборки повторно. Для работы kdesrc-build понадобятся установленные Perl и libwww. Надо сказать, потребуется много места на харде. Так, для сборки qt-copy, kdesupport, kdelibs, kdepimlibs, kdebase нужно около 7 Гб, но я бы выделил не менее 20 Гб на временные файлы и готовую среду. Дополнительные компоненты — это еще плюс несколько гиг.

 

Получаем исходники

Чтобы более тонко настроить KDE, лучше провести ручную сборку без средств автоматизации. Все действия рекомендуется производить в подкаталоге ~/kde. В ~/kde/src закачиваем исходные тексты, а в ~/kde/ build будет размещена готовая сборка. К слову, указанные ранее сборочные скрипты устанавливают алиасы cs и cb, упрощающие быстрый переход в указанные каталоги.

Если подключен репозиторий kubuntu-ppa/backports, то можно просто ввести:

$ sudo apt-get install apt-build

В процессе позволяется выбрать оптимизацию под определенный тип процессора.

$ sudo apt-build install kubuntu-desktop

Сборка при этом будет проведена с параметрами, указанными в /etc/apt/apt-build.conf. Такой подход, как правило, предоставляет нам мало возможностей по оптимизации, но зато пакеты впоследствии легко обновить. При помощи apt часто удобнее просто вытащить исходники и, главное, зависимости для сборки:

$ sudo apt-get source kubuntu-desktop
$ sudo apt-get build-dep kubuntu-desktop

Список пакетов, необходимых для корректной установки, очень большой. И кроме стандартных инструментов сборки, таких как buildessential, cmake, doxygen, в нем присутствует множество заголовочных файлов разных приложений и библиотек. Некоторые из зависимостей необязательны, но впоследствии во время сборки может оказаться, что не активирован какой-то элемент. Например, если не установлен libxine-dev, KDE будет сконфигурирован без поддержки мультимедиа. Сам проект предлагает Git репозитории (quickgit.kde.org) и тарбалы (ftp.kde.org/pub/kde). Доступен и SVN, но его поддержка прекращается. Поэтому создаем файл:

$ nano ~/.gitconfig
[url "git://anongit.kde.org/"]
insteadOf = kde:
[url "git@git.kde.org:"]
pushInsteadOf = kde:

И закачиваем. Минимум, что потребуется, это:

$ git clone kde:kdelibs
$ git clone kde:kde-workspace
$ git clone kde:kdepimlibs

Если нужен больший функционал, то ставим kdemultimedia, kdeartwork, extragear и любые другие приложения и плагины. Также могут понадобиться исходники Qt. Здесь два варианта.

KDE’шный, с параметрами оптимизации, подобранными под KDE, багфиксами и т.п.

$ git clone kde:qt-kde

Или Gitorious, предлагающий «чистый» Qt или патченный:

// Ванильный Qt
$ git clone git://gitorious.org/qt/qt.git
// С патчами
$ git clone
git://gitorious.org/+kde-developers/qt/kde-qt.git

Если ранее были сделаны изменения в ~/.bashrc и ~/.build-config, о которых говорилось выше, переходим в каждый образованный подкаталог и последовательно даем команду:

$ sudo cmakekde

Здесь лучше написать простенький скрипт, который автоматизирует процесс:

cd $KDE_BUILD
for dir in
kdelibs
kdepimlibs
... и т.д.
;
do cd $KDE_BUILD/$dir; cmakekde 2> /dev/stdout; done

Сборка KDE производится при помощи cmake, команда ./configure, к которой все привыкли, здесь не используется. Все дополнительные параметры задаются непосредственно в строке запуска cmake или путем правки вспомогательных скриптов CMakesLists.txt и файлов с расширением *.cmake. Практически в каждом подкаталоге можно найти подобные настройки. Внутри описывается множество параметров, причем значительная часть из них, к тому же, прокомментирована. Разобравшись, можно легко подключить или отключить сборку модуля или подкомпонента, расширив или, наоборот, урезав функционал.

Например, функции add_subdirectory() и add_ optional_subdirectory() в CMakesLists.txt задают список загружаемых и используемых при сборке зависимостей. Потихоньку обходя все подкаталоги, определяем модули, которые следует включить или отключить. Конечно, многие функции затем можно деактивировать уже в рабочей системе, но если стоит вопрос уменьшения веса и нагрузки, то решение лучше принять сейчас. На слабых системах можно убрать поддержку семантического десктопа strigi и nepomuk, kdepim-приложения. Если видеокарта не тянет, то убираем поддержку эффектов в KWin и OpenGL полностью. На нетбуке удаление Akonadi обеспечит прирост во времени загрузки чуть ли не на 20% плюс меньшее потребление ресурсов. Кроме того, можно убрать совместимость с KDE3, сегодня в этом уже нет острой необходимости.

Также можно убрать флаги raster и trace при сборке qt-gui, это сразу облегчит Х, как минимум, на 30 Мб.

На этом этапе преимущество получают гентушники: достаточно изменить USE-флаг (gentoo.org/dyn/use-index.xml) — и дело в шляпе, в других дистрах исходники придется рыть самому. К слову, последние стейджи в Gentoo используют XZ-сжатие, в итоге — архивы с KDE4 тянут на 200 Мб меньше (1,8 Гб против 2 Гб). Кроме того, можно пойти на более радикальные меры. Например, вместо kwin использовать openbox-подобный оконный менеджер. Сейчас находится в активной разработке Antico, представляющий собой Qt4/X11 оконный менеджер + рабочий стол (как KDE+KWin). Он не связан с kdelibs, а потому легкий и не нагружает систему. Главное, что он позволяет использовать многие приложения из KDE. Минус — текущая версия 0.2 пока сыровата и содержит минимум функций. Загрузить Antico можно из Git:

$ git clone git://github.com/antico/antico.git

 

Обеспечиваем загрузку

Чтобы вместо GDM использовать KDM, просто прописываем «/usr/ sbin/kdm» в /etc/X11/default-display-manager. Теперь осталось занести в ~/.xsession или ~/.xinitrc строку «startkde» и зарегистрироваться в системе. В дистрибутивах, базирующихся на Debian, общесистемными являются файлы в /etc/alternatives. Среди них x-window-manager является симлинком на оконную среду, а x-session-manager — менеджером сеанса. Для выбора нужной среды в окне регистрации можно создать файл /usr/share/xsessions/kde4.desktop примерно такого содержания:

$ sudo nano /usr/share/xsessions/kde4.desktop
Exec=$HOME/kde/bin/startkde
TryExec=$HOME/kde/bin/startkde
Name=KDE4

 

Сборка GNOME3

К мажорным релизам сборщики дистрибутивов относятся настороженно, ведь первые версии, как правило, сыроваты, да и не содержат всех функций. Исправления и более полноценную среду GNOME мы получим уже скоро вместе с обновлением 3.2. Чтобы пользователи могли сразу же познакомиться с новой версией, сразу после анонса было предложено два Live-дистрибутива: на базе openSUSE и Fedora (gnome3.org/tryit.html). Сейчас третий гном доступен во всех свежих релизах этой весны — openSUSE 11.4, Ubuntu 11.04 Natty Narwhal и Fedora 15.

Те, кто работают в ранних версиях системы или дистрибутивах, вроде Linux Mint, могут подключить PPA-репозиторий «GNOME 3 Stack».
Кроме собственно гнома, мы подключаем и Gtk+ 3.

$ sudo add-apt-repository ppa:ubuntu-desktop/gnome3-builds
$ sudo apt-get update
$ sudo apt-get install gnome3-session

Запускаем командой:

$ gnome-shell --replace

Или просто выходим и регистрируемся повторно, выбрав GNOME3. Но хочу предупредить, что на момент написания этих строк там была самая первая сборка, и в Linux Mint она не работала должным образом. При помощи APT мы можем вытянуть и исходные тексты для самостоятельной перекомпиляции. Сам проект предоставляет в открытый доступ Git-репозиторий (git.gnome.org) и FTP-сервер с архивами (ftp.gnome.org/pub/GNOME).

Для сборки среды GNOME и приложений используется специальный скрипт на Python — JHBuild (developer.gnome.org/jhbuild). Забираем последнюю версию из Git и устанавливаем обычным образом (потребуется пакет gnome-common):

$ git clone git://git.gnome.org/jhbuild
$ cd jhbuild
$ make -f Makefi le.plain
$ make -f Makefi le.plain install

Для корректной работы JHBuild требует, чтобы переменная PATH содержала подкаталог ~/.local/bin.

$ echo PATH=$PATH:~/.local/bin >> ~/.bashrc

Настройка параметров сборки производится в конфигурационном файле ~/.jhbuildrc. В архиве есть готовый пример, который берем за основу.

$ cp examples/sample.jhbuildrc ~/.jhbuildrc

Файл разделен на несколько секций, где описываются репозитории, устанавливаемые модули, каталог для установки, флаги оптимизации. Полный список модулей можно найти на специальной странице live.gnome.org/Jhbuild/Modulesets. Модули устанавливаются рекурсивно, то есть, если для работы одного из них потребуется другой, тот будет собран автоматически. В простейшем случае файл выглядит так:

$ nano ~/.jhbuildrc
repos['git.gnome.org'] = 'ssh://user@git.gnome.org/git/'
moduleset = 'gnome-suites-core-3.0'
modules = [ 'meta-gnome-desktop' ]
checkoutroot = os.path.expanduser('~/checkout/gnome')
prefi x = '/opt/gnome'

флаги CFLAGS

os.environ['CFLAGS'] = '-Wall -g -O0'

дополнительные аргументы вроде

'--disable-static --disable-gtk-doc'
#autogenargs=''
makeargs = '-j2'

После настройки набираем:

$ jhbuild sanitycheck

Программа создаст необходимые для работы каталоги и проверит наличие утилит, используемых при сборке. Здесь есть нюанс: запускать jhbuild от имени рута нельзя, поэтому все рабочие подкаталоги и прочие действия, требующие привилегий администратора, придется выполнять вручную, затем повторно вводить «jhbuild sanitycheck».

Все зависимости описаны в документе live.gnome.org/JhbuildDependencies и доступны в репозитории любого дистрибутива (минимум это: m4, Perl, Python и GCC). Я бы рекомендовал использовать именно его, впоследствии не будет проблем с обновлениями, и другие программы будут «видеть» установленные таким образом пакеты.

Хотя предлагается альтернативный вариант — просто использовать параметр bootstrap:

$ jhbuild bootstrap

Если sanitycheck показал, что все нормально, можно переходить к следующему шагу:

$ jhbuild build

Теперь JHBuild загрузит, соберет и установит все описанные в ~/.jhbuildrc модули. Очень удобно, что в случае ошибки на любом этапе сборки скрипт не заканчивает работу, а выводит меню, позволяющее выбрать дальнейшее действие (пропустить, повторить, сконфигурировать и т.п.).

С помощью JHBuild можно собрать и отдельное приложение или библиотеку:

$ jhbuild build gtk+

 

Заключение

Как видишь, в самостоятельной сборке KDE4 и GNOME3 нет ничего сложного. Разработчики проектов позаботились о продвинутых (и нетерпеливых) пользователях, подготовив вспомогательные инструменты. Конечно, некоторое время следует потратить на изучение настроек в конфигурационных файлах, но результат оправдает ожидания.

 

KDE в Ubuntu

Чтобы в Ubuntu получить версию KDE, близкую к последней, следует подключить репозиторий kubuntu-ppa/backports:

$ sudo add-apt-repository ppa:kubuntu-ppa/backports
$ sudo apt-get update
$ sudo apt-get install kubuntu-desktop

Оставить мнение

Check Also

ОС максимальной секретности. Выбираем дистрибутив для обхода блокировок и защиты от слежки

Возможно, ты уже пользовался дистрибутивом Tails или даже запускаешь его ежедневно. Но это…