Гид по технологиям

Как скомпилировать Amarok 2 из SVN на K/X/Ubuntu

• 6 min read • Руководство • Обновлено 21 Nov 2025
Собрать Amarok 2 из SVN на Ubuntu
Собрать Amarok 2 из SVN на 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 требуют прав администратора.

Подготовка системы — быстрый план

  1. Удалить старую версию Amarok (опционально).
  2. Настроить /etc/apt/sources.list: добавить PPA KDE 4.2 и (рекомендуемо) Medibuntu.
  3. Обновить систему и выполнить dist-upgrade.
  4. Установить требуемые пакеты (кодеки, dev-пакеты).
  5. Настроить переменные окружения (KDEDIR, PATH).
  6. Скачать исходники Amarok и вспомогательных проектов (taglib-extras, qtscriptgenerator).
  7. Скачать и собрать MySQL Embedded, если требуется.
  8. Собрать и установить 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 для типичных проблем:

  1. Ошибка нехватки библиотек при запуске — проверьте LD_LIBRARY_PATH и правильность установки в ${HOME}/kde.
  2. Проблемы с qtscriptgenerator — попробуйте собрать без патча (для Jaunty) или примените патч, если возникают ошибки поиска заголовков Phonon.
  3. Ошибки при сборке MySQL — проверьте зависимости dev-пакетов и версию tar.gz.
  4. Плагин не загружается — убедитесь, что плагины скопированы в /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 в изолированной домашней директории, как показано.

Короткая методология сборки (минимальный чек-лист)

  1. Настроить репозитории и обновить систему.
  2. Установить dev-пакеты и кодеки.
  3. Настроить окружение (KDEDIR, PATH).
  4. Скачать исходники и собрать зависимости в указанном порядке.
  5. Собрать и установить Amarok.
  6. Обновить кэш 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.
  • При проблемах смотрите логи сборки и используйте предложенные диагностические команды.

Спасибо сообществу за исходные наработки и советы. Удачи в сборке!

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро