Amarok

From Alessandro's Wiki

Istallare Amarok in Fedora Core

  • installa il repositorio livna (rpm's):
rpm -ivh http://rpm.livna.org/fedora/5/i386/livna-release-5-6.noarch.rpm
  • Installare gStreamer + plugins....
yum install gstreamer gstreamer-plugins gstreamer-plugins-mp3 xine-lib-extras-nonfree
  • Installare amaroK
yum install amarok

Configurazione

amaroK con MySQL

  • Manualmente:
$ ./configure --enable-mysql
  • In gentoo:

nel file

/etc/portage/packages.use

aggiungere il flag mysql:

media-sound/amarok xine-lib gstreamer mysql alsa arts it visualization aac ifp ipod kde njb real xinerama xmms

Setup di mysql

Anzitutto bisogna creare una password per MySQL, se tu non ne hai già una.

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

Chiaramente cambia xxxxxx con la password che vuoi.

Dopo avere impostato la password, bisogna creare un database per amaroK attraverso il classico metodo. Basta semplicemente usare il comando "mysql": (questo ti chiederà la password per l'utente root di MySQL - impostata prima)

$ mysql -p -u root
CREATE DATABASE amarokdb;
USE mysql;
GRANT select, insert, alter, update, delete, create, drop, create temporary tables, index 
ON amarokdb.* TO amarok@localhost IDENTIFIED BY 'PASSWORD_UTENTE';
FLUSH PRIVILEGES;

Nell'esempio sopra, è stato creato un database chiamato "amarokdb", e un utente chiamato "amarok" che può accedere il locale localhost" usando la password "PASSWORD_UTENTE". Se vuoi usare la funzione per il backup automatico con mysqldump, cambia la stringa GRANT con GRANT ALL

Nota: Di default amarok usa un database chiamato "amarok" e non "amarokdb".

Ora che il database esiste, è sufficiente aprire il pannello di configurazione di amaroK (si trova nel menu Impostazioni), e andare nella sezione Collezione. Qui bisogna cambiare nel menu a tendina SQLite e selezionare MySQL. Probabilmente bisognerà specificare un hostname (il nome del computer, o meglio localhost), la porta (di default la 3306), il nome del database che hai creato per amaroK (nell'esempio precedente "amarokdb") e il nome dell'utente che ha accesso (e che abbia anche i privilegi di scrittura) al database con relativa password (nell'esempio sopra l'utente è "amarok" e la password è "PASSWORD_UTENTE").

Usare il supporto di MySQL da remoto: La maggior parte delle installazioni, usano il demone MySQL configurato per le connessioni in locale (localhost) di default.

Perciò può capitare di avere un errore del tipo "Impossibile connettersi al server o al database" (errori che comunque non sono legati alla password sbagliata). Per risolvere tali problemi bisogna editare il file my.cnf sulla macchina col database (/etc/mysql/my.cnf) e decommentare la variabile "bind_address" e riavviare il mysql. Per quanto ne so, non c'è motivo di impostare anche l'interfaccia della scheda di rete e la porta in ascolto. Nel caso comunque andrebbe aggiornato il firewall con i dati di connessione.

Convertire i Database

Da SQLite -> MySQL

Uno (sconsigliato) metodo per trasferire il tuo database SQLite3 a MySQL è:

cd ~/.kde/share/apps/amarok && \
sqlite3 collection.db .dump | \ 
grep -v "BEGIN TRANSACTION;" | \
grep -v "COMMIT;" | \
perl -ne 's/INSERT INTO \"(.*)\" VALUES/INSERT INTO \1 VALUES/; print' | \
perl -ne 's/VARCHAR\(256\)/VARCHAR\(255\)/; print' | \
mysql -u root -p amarokdb

Io ho visto che questo metodo non funzionava, potevo importare i dati da SQLite

così:

   * Lanciare amaroK, cambiare il database a mysql, e creare il database (senza far partire nessuna canzone)
   * Scaricare SQLite Database Browser
   * Esportare tutti i dati in un file temporaneo, per es. amarok_dump.sql
   * Rimuovere tutti i comandi sql, BEGIN TRANSACTION, COMMIT e CREATE
   * Importare il file usando MySQL: 
cat amarok_dump.sql | mysql -u root -p amarokdb

Nel caso dia qualche errore, è possibile che tu abbia fatto partire qualche canzone e che il programma abbia scritto delle stringhe riguardo quel particolare file nel database. In questo caso, basta editare il file amarok_dump.sql, e cercare la linea con i dati della canzone; trovatala basta rimuovere TUTTO prima di questa(poichè quei comandi sono già stati eseguiti da MySQL -- si riceverà un errore) Se vuoi contiunuare a usare questa stringa, si può rimpiazzare INSERT INTO con REPLACE INTO. e rilanciare la stringa di comando sopra.