Как скомпилировать Amarok 2 из SVN на K/X/Ubuntu
Автор: Stephan Jau Ревизия: v1.1 Последнее изменение: 13 апреля 2009
Важно: этот материал отражает состояние проектов и пакетов на момент исходного руководства. Репозитории и названия пакетов могут изменяться — проверяйте актуальность PPA и URL-адресов перед выполнением команд.
О чём эта инструкция
Кратко: инструкция показывает полную процедуру сборки Amarok 2 из SVN на K/X/Ubuntu. Подробно объясняются подготовка репозиториев, сборка встроенного MySQL (embedded), сборка вспомогательных библиотек (taglib-extras, qtscriptgenerator) и финальная установка. Также добавлены альтернативы, чек-листы и блок «Куда посмотреть, если что пошло не так». Подойдёт для разработчиков, тестировщиков и опытных пользователей, которые не боятся компиляции из исходников.
Термины:
- SVN — система контроля версий Subversion.
- PPA — личный архив пакетов Ubuntu (Personal Package Archive).
- CMake/qmake — инструменты конфигурации и генерации сборки.
Требования перед началом
- Свободное место на диске: несколько гигабайт для исходников и сборки.
- Компилятор и базовые пакеты сборки (build-essential).
- Подключение к интернету для загрузки SVN и исходников.
- Резервная копия пользовательских данных, если вы используете purge.
Примечание: команды в инструкции выполняются от имени пользователя. Команды с sudo требуют прав администратора.
Подготовка системы — быстрый план
- Удалить старую версию Amarok (опционально).
- Настроить /etc/apt/sources.list: добавить PPA KDE 4.2 и (рекомендуемо) Medibuntu.
- Обновить систему и выполнить dist-upgrade.
- Установить требуемые пакеты (кодеки, dev-пакеты).
- Настроить переменные окружения (KDEDIR, PATH).
- Скачать исходники Amarok и вспомогательных проектов (taglib-extras, qtscriptgenerator).
- Скачать и собрать MySQL Embedded, если требуется.
- Собрать и установить Amarok.
Отличия для пользователей Jaunty (Ubuntu 9.04)
- Пакет amarok-engine-xine по умолчанию не установлен — не пытайтесь его удалять.
- Патч к qtscriptgenerator обычно не нужен, но можно применить при проблемах.
- После установки перед запуском Amarok рекомендуется перезагрузить систему, иначе возможна ошибка коллекции.
Пошаговая инструкция
Шаг 1: Удаление текущей установки Amarok
sudo apt-get purge amarok amarok-common amarok-engine-xineВместо purge можно использовать remove. Purge удаляет также конфиги — создайте резервную копию при необходимости.
Шаг 2: Обновление sources.list
Используйте генератор репозиториев, например: http://repogen.simplylinux.ch. Выберите main, restricted, universe, multiverse и ветки обновлений security, updates, proposed, backports. Добавьте KDE 4.2 PPA и (опционально) Medibuntu.
Пример сгенерированного блока /etc/apt/sources.list:
#############################################################
################### OFFICIAL UBUNTU REPOS ###################
#############################################################
###### Ubuntu Main Repos
deb http://ch.archive.ubuntu.com/ubuntu/ intrepid main restricted universe multiverse
###### Ubuntu Update Repos
deb http://ch.archive.ubuntu.com/ubuntu/ intrepid-security main restricted universe multiverse
deb http://ch.archive.ubuntu.com/ubuntu/ intrepid-updates main restricted universe multiverse
deb http://ch.archive.ubuntu.com/ubuntu/ intrepid-proposed main restricted universe multiverse
deb http://ch.archive.ubuntu.com/ubuntu/ intrepid-backports main restricted universe multiverse
###### Ubuntu Partner Repo
deb http://archive.canonical.com/ubuntu intrepid partner
##############################################################
##################### UNOFFICIAL REPOS ######################
##############################################################
###### 3rd Party Binary Repos
#### KDE 4.2 PPA Repos - http://www.kubuntu.org/news/kde-4.2
## Run this command: gpg --keyserver keyserver.ubuntu.com --recv-keys 493B3065 && gpg --export -a 493B3065 | sudo apt-key add -
deb http://ppa.launchpad.net/kubuntu-experimental/ubuntu intrepid main
#### Medibuntu - http://www.medibuntu.org/
## Run this command: sudo apt-get update && sudo apt-get install medibuntu-keyring && sudo apt-get update
deb http://packages.medibuntu.org/ intrepid free non-free
После правки sources.list импортируйте GPG-ключи и обновите кэши:
gpg --keyserver keyserver.ubuntu.com --recv-keys 493B3065 && gpg --export -a 493B3065 | sudo apt-key add -
sudo apt-get update && sudo apt-get install medibuntu-keyring && sudo apt-get updateШаг 3: Обновление и чистка
sudo apt-get dist-upgradeОпционально удалить устаревшие зависимости:
sudo apt-get autoremoveШаг 4: Перезагрузка
sudo rebootШаг 5: Установка требуемых пакетов
Используйте w64codecs, если у вас 64-битная система.
sudo apt-get install kubuntu-restricted-extras w32codecs build-essential kde-devel subversion libmysqlclient15-dev libncurses5-dev libtag1-dev libstrigiqtdbusclient-devШаг 6: Расширение .bashrc и создание myenv.sh
KDE-пользователи:
echo '' >> ${HOME}/.bashrc
echo 'export PATH=$HOME/kde/bin:$PATH' >> ${HOME}/.bashrc
mkdir -p ${HOME}/.kde/env
echo 'export KDEDIR=$HOME/kde' >> ${HOME}/.kde/env/myenv.sh
echo 'export KDEDIRS=$KDEDIR' >> ${HOME}/.kde/env/myenv.shПользователи без KDE:
echo '' >> ${HOME}/.bashrc
echo 'export PATH=$HOME/kde/bin:$PATH' >> ${HOME}/.bashrc
echo 'export KDEDIR=$HOME/kde' >> ${HOME}/.bashrc
echo 'export KDEDIRS=$KDEDIR' >> ${HOME}/.bashrcПроверьте:
cat ${HOME}/.bashrc
cat ${HOME}/.kde/env/myenv.shШаг 7: Перезагрузить переменные окружения
source ${HOME}/.bashrcШаг 8: Создать директории для исходников и сборки
mkdir -p ${HOME}/kde/src
mkdir -p ${HOME}/kde/build/amarokШаг 9: Скачать Amarok и taglib-extras из SVN
cd ${HOME}/kde/src
svn co svn://anonsvn.kde.org/home/kde/trunk/extragear/multimedia/amarok amarok
svn co svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib-extras/ taglib-extrasВ оригинале автор использовал ревизию 942886; вы можете взять актуальную ревизию.
Шаг 10: Скачать MySQL (исходники)
Amarok использует встраиваемый MySQL. Скачайте исходники с официального сайта MySQL (tar.gz) и поместите их в ${HOME}/kde/src.
Пример команды скачивания (в оригинале использована версия 5.1.32):
cd ${HOME}/kde/src
wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.32.tar.gz/from/http://mirror.switch.ch/ftp/mirror/mysql/Если версия другая, замените номер в командах ниже.
Шаг 11: Распаковка и сборка MySQL Embedded
tar xzvf mysql-5.1.32.tar.gz
cd mysql-5.1.32
cp -R ${HOME}/kde/src/amarok/supplementary_scripts/mysqle/* .При наличии многопроцессорной системы установите MAKEOPTS:
export MAKEOPTS=-j2(для dual-core используйте -j3, для quad-core -j5; при проблемах используйте -j1)
Соберите MySQL Embedded:
./build-mysqle.sh --prefix=${HOME}/usrШаг 12: Сборка taglib-extras
cd ${HOME}/kde/src/taglib-extras/
mkdir build
cd build
export LD_LIBRARY_PATH=${HOME}/kde/build/taglib-extras/taglib-extras
cmake -DCMAKE_INSTALL_PREFIX=${HOME}/kde ..
make
make installШаг 13: Сборка QtScriptGenerator
qtscriptgenerator иногда выносился в отдельный проект. Скачать актуальную версию можно на странице проекта (в оригинале — версия 0.1.0). Если возникнут проблемы с *buntu, примените патч ниже.
cd ${HOME}/kde/src
wget http://qtscriptgenerator.googlecode.com/files/qtscriptgenerator-src-0.1.0.tar.gz
tar xfvz qtscriptgenerator-src-0.1.0.tar.gz
cd qtscriptgenerator-src-0.1.0Создайте файл include_everything.patch и поместите в него содержимое патча (ниже — пример):
--- b/generator/qtscript_masterinclude.h 2009-03-21 20:37:30.719523909 -0400
+++ a/generator/qtscript_masterinclude.h 2009-03-21 21:00:25.108149339 -0400
@@ -31,17 +31,41 @@
#include
-#ifndef QT_NO_XMLPATTERNS
-# include
-#endif
-
-#ifndef QT_NO_WEBKIT
-# include
-#endif
-
-#ifndef QT_NO_PHONON
-# include
-#endif
+#include
+
+#include
+
+#include "phonon/abstractaudiooutput.h"
+#include "phonon/abstractmediastream.h"
+#include "phonon/abstractvideooutput.h"
+#include "phonon/addoninterface.h"
+#include "phonon/audiooutput.h"
+#include "phonon/audiooutputinterface.h"
+#include "phonon/backendcapabilities.h"
+#include "phonon/backendinterface.h"
+#include "phonon/effect.h"
+#include "phonon/effectinterface.h"
+#include "phonon/effectparameter.h"
+#include "phonon/effectwidget.h"
+#include "phonon/mediacontroller.h"
+#include "phonon/medianode.h"
+#include "phonon/mediaobject.h"
+#include "phonon/mediaobjectinterface.h"
+#include "phonon/mediasource.h"
+#include "phonon/objectdescription.h"
+#include "phonon/objectdescriptionmodel.h"
+#include "phonon/path.h"
+#include "phonon/phonondefs.h"
+#include "phonon/phononnamespace.h"
+#include "phonon/platformplugin.h"
+#include "phonon/seekslider.h"
+#include "phonon/streaminterface.h"
+#include "phonon/videoplayer.h"
+#include "phonon/videowidget.h"
+#include "phonon/videowidgetinterface.h"
+#include "phonon/volumefadereffect.h"
+#include "phonon/volumefaderinterface.h"
+#include "phonon/volumeslider.h"
#include "../qtbindings/qtscript_core/qtscriptconcurrent.h"
Примените патч:
patch -p1 < include_everything.patchЗатем соберите qtscriptgenerator и плагины:
export INCLUDE=/usr/include/qt4
cd generator
qmake
make
./generator
cd ../qtbindings
qmake
makeПосле сборки скопируйте плагины в системный каталог плагинов Qt4:
cd ../plugins/script
sudo cp -R * /usr/lib/qt4/plugins/script/Шаг 14: Сборка Amarok 2
cd ${HOME}/kde/src/amarok
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=${HOME}/kde -DCMAKE_BUILD_TYPE=debugfull ${HOME}/kde/src/amarok
make
make installПосле cmake появятся предупреждения — это нормально. Ошибок быть не должно.
Шаг 15: Обновление конфигурации KDE
kbuildsycoca4 --noincrementalШаг 16: Запуск Amarok 2
Выполните в терминале:
amarokЕсли Amarok не запускается из меню, выйдите из сеанса и войдите снова или перезагрузите систему.
Альтернативные подходы
- Использовать Amarok Neon или другие PPA c готовыми бинарными сборками — проще и быстрее, но не всегда актуально.
- Собирать только плагины или отдельные модули, если вам нужна лишь конкретная функциональность.
- Использовать AppImage/Flatpak/Snap (если доступны) для изолированной установки без сборки.
Когда сборка не нужна: если вам важна стабильность и долгосрочная поддержка, выбирайте LTS-репозитории или официальные пакеты.
Советы по отладке и часто встречаемые ошибки
Короткий runbook для типичных проблем:
- Ошибка нехватки библиотек при запуске — проверьте LD_LIBRARY_PATH и правильность установки в ${HOME}/kde.
- Проблемы с qtscriptgenerator — попробуйте собрать без патча (для Jaunty) или примените патч, если возникают ошибки поиска заголовков Phonon.
- Ошибки при сборке MySQL — проверьте зависимости dev-пакетов и версию tar.gz.
- Плагин не загружается — убедитесь, что плагины скопированы в /usr/lib/qt4/plugins/script/ и у них корректные права.
Диагностика:
- Просматривайте вывод make и cmake, ищите первые появившиеся ошибки.
- Используйте ldd для проверки зависимостей бинарников: ldd <файл>
- Для проблем с окружением временно экспортируйте переменные вручную и запускайте amarok из того же терминала.
Роль-базированные чек-листы
Для разных ролей — краткие контрольные списки перед сборкой.
Разработчик:
- Есть свежая копия SVN.
- Установлены dev-пакеты и инструменты сборки.
- Конфигурация сборки поддерживает отладку (debugfull).
Тестировщик:
- Собрана отладочная версия.
- Логи сборки сохранены.
- Есть тестовый набор музыки и плейлисты.
Пользователь/администратор сервера:
- Проверена совместимость пакетов в репозиториях.
- Выполнен резерв конфигов.
- Установлены кодеки (kubuntu-restricted-extras, w32codecs/w64codecs).
Критерии приёмки
- Команда amarok запускается без ошибок.
- Интерфейс KDE отображается корректно, все основные модули загружены.
- Коллекция сканируется и создаётся без критических ошибок.
- Воспроизведение аудио работает с выбранными кодеками.
Совместимость и миграция
- Будьте осторожны при смешивании пакетов из разных PPA — возможны конфликты версий Qt/Phonon.
- При переходе на более новые релизы Ubuntu проверяйте наличие соответствующих PPA для KDE и других компонентов.
- Если вы используете системный Qt другого релиза, собирайте Amarok в изолированной домашней директории, как показано.
Короткая методология сборки (минимальный чек-лист)
- Настроить репозитории и обновить систему.
- Установить dev-пакеты и кодеки.
- Настроить окружение (KDEDIR, PATH).
- Скачать исходники и собрать зависимости в указанном порядке.
- Собрать и установить Amarok.
- Обновить кэш KDE и протестировать запуск.
1-строчная глоссарий
- SVN: система управления версиями Subversion.
- PPA: приватный репозиторий пакетов для Ubuntu.
- CMake/qmake: генераторы файлов сборки.
Пример простого потока принятия решения (Mermaid)
flowchart TD
A{Есть готовый PPA?} -->|Да| B[Установить пакет из PPA]
A -->|Нет| C{Нужна стабильность?}
C -->|Да| D[Использовать официальный пакет/Backport]
C -->|Нет| E[Собирать из SVN по инструкции]Куда ещё смотреть
- Официальный сайт Amarok и вики проекта для актуальной информации по сборке и зависимостям.
- PPA KDE / Kubuntu для версий KDE 4.x.
- Трекер ошибок и каналы IRC для обсуждения специфичных багов.
Заключение и краткое резюме
Сборка Amarok 2 из SVN требует аккуратной подготовки окружения и последовательного выполнения шагов: подготовка репозиториев, установка зависимостей, сборка встроенного MySQL, подготовка и сборка вспомогательных библиотек и, наконец, компиляция самого Amarok. Если вы новичок в сборке из исходников, рассмотрите альтернативы (PPA, AppImage, Flatpak), но для тестирования последних изменений в кодовой базе этот процесс остаётся полезным и даёт максимальный контроль.
Ключевые рекомендации:
- Сохраняйте копии конфигов перед purge.
- Проверьте версии пакетов и пути в командах при использовании отличной от указанной версии MySQL.
- При проблемах смотрите логи сборки и используйте предложенные диагностические команды.
Спасибо сообществу за исходные наработки и советы. Удачи в сборке!
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента