Amarok 1.4.8 e Mysql come backend

Image Hosted by ImageShack.us

Dopo aver visto con i miei occhi quanto sia immancabilmente piu' veloce con il supporto a mysql, ho deciso di ricompilare Amarok estrapolando l'essenziale da questo wiki.

Non e' facile trovare qualche howto su come abilitare i supporti essenziali (infatti non ho trovato molte informazioni), quindi dobbiamo basarci sull'help del file configure:

./configure --help

che spiega sommariamente la sintassi per aggiungere i plugin.

- Dipendenze -

Sono tante..si, ma fortunatamente quelle che interessano a noi per la compilazione sono le seguenti:

 

sudo apt-get install libtag1-dev libgpod-dev libmusicbrainz4-dev libkonq4-dev ruby1.8-dev libxine-dev kdelibs4-dev

 

  • Cosa bisogna sapere prima di iniziare:

- Conoscenze LAMP

- Conoscenze comandi mysql

- Conoscenze compilazione programmi da sorgenti

NB: Naturalmente si da' per scontato che abbiamo gia' precedentemente installato e configurato il database mysql (versione per Ubuntu 7.10)

mysql Ver 14.12 Distrib 5.0.45, for pc-linux-gnu (i486) using readline 5.2

Scarichiamo i sorgenti di Amarok (1.4.8):

Scompattiamoli nella /home:

tar xjvf amarok-1.4.8.tar.bz2
cd amarok-1.4.8

Configuriamo i sorgenti con le seguenti opzioni:

 

./configure --enable-mysql --with-libgpod
================
=== Amarok - PLUGINS =======
==========================
=
= The following extra functionality will NOT be included:
= - NMM-engine
= - Helix-engine
= - yauap-engine
= - libvisual Support
= - Postgresql Support
= - Konqueror Sidebar
= - MusicBrainz Support
= - MP4/AAC Tag Write Support
= - iRiver iFP Support
= - Creative Nomad Jukebox Support
= - MTP Device Support
= - Rio Karma Support
=
= The following extra functionality will be included:
= + xine-engine
= + MySql Support
= + iPod Support
= + DAAP Music Sharing Support
=
=============================

Molti supporti risulteranno come non-abilitati ..ma non c'e' nessun problema (libgpod serve ai possessori di lettori multimediali iPod)

Completiamo ora l'installazione con:

make
sudo make install

 

- Configurazione Database -

Le precedenti versioni di Amarok dovrebbero funzionare lo stesso con mysql 5.0.45, anche se e' preferibile utilizzare il mysql 4 per problemi di doppia immissione di dati nel DB. (eventualmente consultare il wiki principale per maggiori dettagli). Se abbiamo abilitato globalmente il set di caratteri UTF-8 dovremo specificarlo nel file

/etc/mysql/my.cnf

, in modo da utilizzarlo per tutte le tabelle che verranno create (con Debian funziona alla stessa maniera) Apriamo il suddetto file con un editor di testo e aggiungiamo l'opzione:

 default-character-set = utf8

.. alla fine dei due sottogruppi [client] e [mysqld]:

sudo kate /etc/mysql/my.cnf

Avviamo mysql da /etc/init.d

cd /etc/init.d
sudo ./mysql start

Assicuriamoci di fare queste operazioni PRIMA di creare il database, altrimenti bisogna dropparlo e ricominciare dall'inizio della spiegazione.

Se ancora non abbiamo una password per mysql, apriamo un terminale:

mysql -u root
set password for root@localhost = password('xxxxxxx');
flush privileges;
quit; 

NB: al posto di xxxxx ci andra' la nostra password.

Sempre dal prompt di mysql, creiamo il database coi comandi standard:

mysql -p -u root
CREATE DATABASE amarok;
USE amarok;
GRANT ALL ON amarok.* TO amarok@localhost IDENTIFIED BY 'PASSWORD_CHANGE_ME';
FLUSH PRIVILEGES;

Abbiamo creato il database e un utente "amarok" con password PASSWORD_CHANGE_ME, che naturalmente va impostata.

 

- Selezionare il nuovo DB -

Apriamo Amarok, e dalle impostazioni selezioniamo "collezione". Qui troveremo i campi per inserire i dati, come nell'immagine sottostante:

 

impostazioni

NB: Non avviamo nessun brano musicale e non scansioniamo una nuova collezione, altrimenti perderemo il database sqlite3. Tra i workaround proposti, il piu' semplice e' questo:

  • Scarcare il tool SQLite Database Browser
  • Esportare le statistiche del database in un file di dump, amarok_dump.sql
  • Cancellare tutti i comandi SQL (BEGIN TRANSACTION, COMMIT e CREATE)
  • Importare il file usando MySQL o, in alternativa, dal pannello di phpmyadmin:

 

cat amarok_dump.sql | mysql -u root -p amarok

Se riceviamo degli errori, e' possibile che abbiamo messo precedentemente un brano in ascolto. In questo caso dobbiamo aprire il file amarok_dump.sql, cercare la riga errata e cancellare qualsiasi cosa prima di questa (dal momento che i comandi sono gia' stati eseguiti da MySQL, probabilmente riceveremo altri errori).Continuando ad utilizzare la riga errata sara' necessario sostituire INSERT INTO con REPLACE INTO e poi lanciare nuovamente il comando precedente. Questi problemi non sussistono se non abbiamo mai utilizzato nessuna collezione.

 

phpmyadmin

C'e' inoltre la possibilita' di fare al contrario, ovvero passare i dati da SQL a MYSQL. Per questi dettagli consultare il wiki originale, il cui link si trova evidenziato in fondo all'articolo.

- Riparare un DB corrotto -

Spesso accade che il database risulti corrotto, e ce ne accorgiamo dai log che mysql lascia in /var/log/messages. Per ripararlo lanciamo mysqlcheck con i privilegi di superutente:

sudo mysqlcheck -p --auto-repair --all-databases

Dopo questo passo sara' possibile selezionare nuovamente la scansione della collezione per aggiornare il database. Ammetto che bisogna perderci un po' di tempo, ma i risultati sono davvero ottimi e ci si accorge di questo quando dobbiamo indicizzare migliaia di brani musicali. ;)

Commenti

ma che scazzo... io conosco

ma che scazzo...
io conosco bene Mysql (veramente conosco meglio Oracle), ma giudico inammissibile l'integrazione di questo in un player multimediale
se proprio ne valesse la pena, la cosa dovrebbe essere totalmente trasparente all'utente

Non conosco bene la versione

Non conosco bene la versione dei repository (non so se e' compilata con supporto mysql..non me lo ricordo) ma credo sia per questo motivo che e' mysql sia stato lasciato come seconda scelta...solo che sqlite e' davvero inefficiente.

io non ci vedo niente di

io non ci vedo niente di male ad avviare un server mysql anche 'solo' per amarok
siamo nel 2008
andiamo con i dual core
2 giga di ram
se c'e' ben venga
IMHO è :D

comunque amarok (almeno in

comunque amarok (almeno in debian), funziona con sqlite, mysql, postgre, - out of the box -. ovviamente installando il relativo servizio :)
quindi
dovrebbe esser tale pure su k/ubuntu penserei :)

@LuNa Ma amarok e' uno di

@LuNa
Ma amarok e' uno di quei programmi, come firefox, che devi avere per forza l'ultimissima versione installata, anzi se possibile pure svn..
:D

luna@debian64:~/Desktop$

luna@debian64:~/Desktop$ /opt/kde4/bin/amarok --version
Qt: 4.3.3
KDE: 4.00.61 (KDE 4.0.61 >= 20080207)
Amarok: 2.0-SVN
luna@debian64:~/Desktop$

che dicevi scusa ? :D

@Luna pero' a qt4 sei

@Luna
pero' a qt4 sei indietro..
lol

E PostgreSQL quanto a

E PostgreSQL quanto a velocità a che punto è rispetto a MySQL?
Se a me il supporto per gli iPod non serve posso compilare tranquillo senza --with-libgpod?

@Spiros si puoi

@Spiros
si puoi tranquillamente saltare quella opzione.
Quanto a PostgreSQL non ne ho idea...

Sei semplicemente un

Sei semplicemente un Maestro! :D

Invia nuovo commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente
  • Elementi HTML permessi: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linee e paragrafi vanno a capo automaticamente.
  • Internal paths in double quotes, written as "internal:node/99", for example, are replaced with the appropriate absolute URL or relative path.

Ulteriori informazioni sulle opzioni di formattazione

CAPTCHA
Questa domanda serve per verificare che tu sia un visitatore umano (non un computer) e per prevenire lo spam
Image CAPTCHA
Scrivi ció che vedi nella immagine.