19 January 2009

Установка kde из svn в gentoo

Lumber room
Являюсь пользователем kde4 с первых версий, появившихся в портежах. И вот созрел для сборки kde из svn, чтобы, как говориться, испробовать свежачка.

Первым делом для сборки kde нам необходимо установить новый portage 2.2. Сейчас он замаскирован, чтобы активнее тестировалась текущая версия portage, но, к сожалению, только версии с поддержкой нового EAPI поддерживают сеты пакетов. Поэтому вносим в /etc/portage/package.unmask следующее изменение:

# echo ">=sys-apps/portage-2.2_rc18" >> /etc/portage/package.unmask
# emerge portage


Это даст нам возможность использовать сеты (sets) пакетов и использовать вместо файлов package.* директории. Соответственно, следующим шагом нам необходимо добавить оверлей kde-crazy. Утилита, при помощи которой в Gentoo управляют оверлеями — layman.

# USE="git subversion" emerge app-portage/layman

Включенные USE-флаги git и subversion позволят нам работать с оверлеями, основанными на git и svn соответственно. После завершения установки layman добавляем оверлей kde-crazy (к сожалению, официального сайта оверлея не нашел — поэтому ссылку дать не могу).

# layman -a kde-crazy

После добавления оверлея emerge будет ругаться на метаданные — внимания не обращаем, на нашу задачу это не повлияет. Пробуем установить kde-live с наскока:

# emerge -av @kde-live

Можно обратить внимание на то, что вместо стандартных мета-пакетов был использован сет @kde-live. Сет — это просто перечисление необходимых пакетов с требуемыми флагами. Находится в дереве портежей в директории sets. Но вернемся к нашей задаче. emerge ругнется на замаскированные пакеты.

Максимально быстро победить эту проблему можно, написав грязный хакскрипт, который внесет все ebuilds в оверлее в unmask:

#!/bin/bash

for name in `ls`; do
for name2 in `ls $name`; do
echo -n $name
echo -n /
echo "$name2 **"
done
done


Применяем скрипт следующим образом — помещаем его в /usr/local/portage/layman/kde-crazy и запускаем:

# ./script | grep -v sets | grep -v Documentation | grep -v eclass | grep -v profiles | grep -v script > /etc/portage/package.keywords/kde-live/kdefull-live

Естественно, что директория kde-live в package.keywords к этому моменту должна существовать. Остальные пакеты, которые размаскируются по версиям, легче привести здесь (/etc/portage/package.unmask/kdefull-live)

>=app-office/akonadi-server-1.1
>=kde-base/system-config-printer-kde-9999
>=kde-base/printer-applet-9999
>=app-admin/system-config-printer-0.7.27
>=dev-python/pycups-1.9.12


Повторяем попытку сборки при помощи emerge -av @kde-live
Все проблемы, возникающие во время сборки, чаще всего решаются при поиске в интернете. Не удалось из svn мне собрать лишь последний пакет сета — kmail-live.
Tags:kdesvngentoo
Hubs: Lumber room
+4
368 1
Comments 5
SEO-специалист
December 7, 202064,900 ₽Нетология
Python для работы с данными
December 7, 202031,500 ₽Нетология
UX-дизайнер
December 7, 202047,940 ₽Нетология
iOS-разработчик с нуля
December 7, 202070,740 ₽Нетология
Top of the last 24 hours