Известно, что релиз Amarok версии 2.1.1 будет последним в ветке 2.1 и следующий выйдет уже только в ветке 2.2, которую ещё ждать и ждать. Тем временем, в 2.2 исправлено много ошибок и реализованы некоторые интересные фичи: «плавающие» док-виджеты, новый тулбар, breadcrumb-навигация, многоуровневая сортировка в плейлисте — только некоторые из них.
Конечно, существует Project Neon — сервис, предоставляющий ночные сборки Amarok и KDE для (k)ubuntu, но на текущий момент amarok-nightly не собирается (UPD: таки починили), и такие поломки вполне вероятны в будущем. Попробуем скомпилировать свежайший Amarok самостоятельно.
UPDATE
Amarok 2.2 «Sunjammer» вышел и этим релизом ним обновились некоторые зависимости:
taglib (>= 1.6) и taglib-extras (>= 1.0.1) Соответсвующие изменения были добавлены в руководсвво. Также были внесены правки относительно использования ccache и make -j5
Данное руководство основано на следующих материалах:
- How To Compile Amarok 2 From SVN On K/X/Ubuntu
- How to install 2.2-git in your home (an update)
- Compiling Amarok from git locally – full summary
Необходимые требования
Версия KDE не ниже 4.2, c KDE 4.3 из kubuntu backports собирается нормально. Установка производится в папку
~/myRepo/Amarok
а в оригинальном руководстве в
~kde
вы тоже можете заменить её на свой вариант.
Установка
Шаг 1:
Удалить текущую версию amarok командой
sudo apt-get remove amarok amarok-common amarok-dbg
Или с помощью графических пакетных менеджеров Synaptic/KPackageKit.
Но прежде всего, нужно забекапить файлы конфигурации и базу данных, где Amarok хранит коллекцию и собранную статистику. Это папка
~/.kde/share/apps/amarok
и файлы
~/.kde/share/config/amarok-appletsrc ~/.kde/share/config/amarok_homerc ~/.kde/share/config/amarokrc
Шаг 2:
Устанавливаем необходимые для сборки пакеты (w32codecs для 32битной архитектуры, w64codecs — для 64битной; libmysqlclient15-dev либо libmysqlclient16-dev — я собирал с 16 версией)
sudo apt-get install kubuntu-restricted-extras w32codecs build-essential kde-devel subversion git libmysqlclient15-dev libncurses5-dev libtag1-dev libstrigiqtdbusclient-dev qtscriptgenerator liblastfm-dev ccache libqca2-dev
Шаг 3:
Вносим поправки в файлы .bashrc и .myenv.sh
Для пользователей KDE
echo '' >> ${HOME}/.bashrc
echo 'export PATH=$HOME/myRepo/Amarok/bin:$PATH' >> ${HOME}/.bashrc
echo 'export PATH=/usr/lib/ccache:$PATH' >> ${HOME}/.bashrc
mkdir -p ${HOME}/.kde/env
echo 'export KDEDIR=$HOME/myRepo/Amarok' >> ${HOME}/.kde/env/myenv.sh
echo 'export KDEDIRS=$KDEDIR' >> ${HOME}/.kde/env/myenv.sh
Всем остальным
echo '' >> ${HOME}/.bashrc
echo 'export PATH=$HOME/myRepo/Amarok/bin:$PATH' >> ${HOME}/.bashrc
echo 'export PATH=/usr/lib/ccache:$PATH' >> ${HOME}/.bashrc
echo 'export KDEDIR=$HOME/myRepo/Amarok' >> ${HOME}/.bashrc
echo 'export KDEDIRS=$KDEDIR' >> ${HOME}/.bashrc
Визуальная проверка
cat ${HOME}/.bashrc
cat ${HOME}/.kde/env/myenv.sh
Обратите внимание на экспорт пути для ccache:
ссache (сикэш) — хэширующий препроцессор компиляторов языка С и С++ для GNU/Linux.
Использование ссache может значительно ускорить сборку некоторых пакетов или проектов, которые компилируются несколько раз, так как заново компилироваться будут только файлы, которые изменились с последней компиляции.
Командой
ccache -M 2G
зададим размер кэша препроцессора, который будет храниться в домашней директории.
Шаг 4:
Перезагружаем .bashrc
source ${HOME}/.bashrc
Шаг 5:
Создаём необходимые папки
mkdir -p ${HOME}/myRepo/Amarok/src
mkdir -p ${HOME}/myRepo/Amarok/build/amarok
Шаг 6:
Загружаем Amarok, taglib (>= 1.6) и taglib-extras (>= 1.0.1) из git и SVN-репозиториев
cd ${HOME}/myRepo/Amarok/src
git clone git://gitorious.org/amarok/amarok.git
svn co svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib
svn co svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib-extras/taglib-extras
C taglib-extras из svn у меня возникла проблема при конфигурировании, поэтому пришлось скачать тарбол:
wget http://kollide.net/~jefferai/taglib-extras-1.0.1.tar.gz ark -ab taglib-extras-1.0.1.tar.gz mv taglib-extras-1.0.1 taglib-extras
Шаг 7:
Скачиваем MySQL Embedded, на текущий момент это версия 5.1.39
Если вышла более новая версия MySQL — исправьте цифры на нужные
cd ${HOME}/myRepo/Amarok/src
wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.40.tar.gz/from/http://mirror.switch.ch/ftp/mirror/mysql/
Шаг 8:
Извлекаем MySQL из архива
tar xzvf mysql-5.1.40.tar.gz
cd mysql-5.1.40
cp -R ${HOME}/myRepo/Amarok/src/amarok/supplementary_scripts/mysqle/* .
Если вы являетесь счастливым владельцем многоядерного процессора, то можно ускорить сборку задействовав сразу все доступные ядра указав команде make ключ -j5,
где j5 — количество ядер (в моём случае 4) +1
Собираем MySQL
./build-mysqle.sh --prefix=${HOME}/usr
Шаг 9:
Собираем taglib
cd ${HOME}/myRepo/Amarok/src/taglib/
mkdir build
cd build
export LD_LIBRARY_PATH=${HOME}/myRepo/Amarok/build/taglib/taglib
cmake -DWITH_ASF=On -DWITH_MP4=On -DCMAKE_INSTALL_PREFIX=${HOME}/myRepo/Amarok ..
make -j5
make install
Шаг 10:
Собираем taglib-extras
cd ${HOME}/myRepo/Amarok/src/taglib-extras/
mkdir build
cd build
export LD_LIBRARY_PATH=${HOME}/myRepo/Amarok/build/taglib-extras/taglib-extras
cmake -DCMAKE_INSTALL_PREFIX=${HOME}/myRepo/Amarok ..
make -j5
make install
Шаг 11:
Собираем сам Amarok 2
cd ${HOME}/myRepo/Amarok/src/amarok
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=${HOME}/myRepo/Amarok -DCMAKE_BUILD_TYPE=debugfull ${HOME}/myRepo/Amarok/src/amarok
make -j5
make install
Для обновления сборки делаем
cd ${HOME}/myRepo/Amarok/src/amarok
git pull
И снова
cmake -DCMAKE_INSTALL_PREFIX=${HOME}/myRepo/Amarok
-DCMAKE_BUILD_TYPE=debugfull
${HOME}/myRepo/Amarok/src/amarok
make -j5
make install
Автоматизировать процедуру обновления до последней git-ревизии можно следующим скриптом:
#!/bin/bash
cd ${HOME}/myRepo/Amarok/src/amarok
git pull
cmake -DCMAKE_INSTALL_PREFIX=${HOME}/myRepo/Amarok -DCMAKE_BUILD_TYPE=debugfull ${HOME}/myRepo/Amarok/src/amarok
make -j5
make install
Сохранить его, например, как amarok-git-pull.sh, дать права на исполнение и положить в директорию /usr/bin
Для ещё большего удобства, в ~/.bashrc можно прописать соответствующий алиас, например, такой:
alias agp="amarok-git-pull.sh"
Шаг 12:
Обновляем конфиг KDE
kbuildsycoca4 --noincremental
Шаг 13:
Запускаем Amarok командой в консоли, предварительно перезагрузив (для верности, но возможно достаточно перелогиниться) компьютер
amarok
Также можно создать новый пункт в меню запуска приложений, либо отредактировать старый — правый клик мышью по меню запуска приложений -> Редактор меню.
В поле «Команда» вписываем
~/myRepo/Amarok/bin/amarok
Деинсталляция
- Удалить папку, где производилась сборка, в моём случае это ~/myRepo/Amarok
- Удалить скрипт из ~/.kde/env/myenv.sh
- Удалить строку
export PATH=$HOME/myRepo/Amarok/bin:$PATH
из файла ~/.bashrc
- Выполнить в терминале
kbuildsycoca4 --noincremental
- Перелогиниться (для верности можно и перезагрузиться)
-
NicK
-
SeaJey
-
tinman321
-
tinman321
-
SeaJey
-
SeaJey
-
eule
-
SeaJey
-
SeaJey
-
sauron
-
tinman321


