jump to navigation

Amarok 2 richiede un MySQL tutto speciale [howto]

In Facili, o quasi :), Guide il 30/09/08 @ 16:17 trackback

12/12/2008: adesso uso mysql 5.1.30 e installo in /opt (come osserva Federico Moretti)

Amarok 2.0 svn - Pollycoke :)

Prevedo qualche piccola rogna per gli impacchettatori e i betatester di Amarok: da pochi giorni la versione di sviluppo di Amarok 2, disponibile nell’svn di KDE, richiede la compilazione di MySQL per sfruttare alcune caratteristiche della versione Embedded.

Sembrerebbe che l’unica distribuzione a non aver bisogno di compilazioni extra sia OpenSUSE: a meno di smentite, tutte le altre per poter impacchettare Amarok hanno bisogno di una versione speciale di MySQL con supporto ad alcune istruzioni non presenti nei pacchetti attualmente disponibili. Giusto per riferimento: nemmeno la prossima aggiornatissima Ubuntu 8.10 “Intrepid Ibex” ha al momento un pacchetto in ordine in tal senso1.

Beh ecco le istruzioni, segnalate in MessageBox da amaroker (grazie!) e direttamente provenienti dalla Mailing List di Amarok. Le ho leggermente adattate per funzionare con la guida “KDE 4.1 per Ubuntu Hardy, in un paio di ore ;)“, che suppongo stiate tutti usando, si? ;)

L’intera procedura non è eccessivamente lunga e non dovrebbe presentare intoppi, sempre che siate soliti compilare Amarok e che seguiate la mia guida sopracitata. Alla fine avreste il vostro bell’Amarok e una nuova directory “/opt/mysql”. Per far sì che Amarok funzioni dobbiamo però aggiungere quella directory alla lista di librerie di sistema:

$: echo "/opt/mysql" | sudo tee -a /etc/ld.so.conf.d/mysql-amarok.conf
$: sudo ldconfig

Mi chiedo però in quanti “passeranno” e lasceranno perdere in attesa che arrivino pacchetti aggiornati di MySQL e Amarok stesso; e poi mi chiedo quanto possa essere influente il team di Amarok per forzare le distribuzioni ad adeguarsi ad una loro decisione progettuale; e poi mi chiedo anche se non sia troppo tardi per un caffè.

Vado a berlo

Note all'articolo:

  1. Confidiamo in Jonathan “Mr Kubuntu” Riddel []

Condividi questo articolo:

  • TwitThis 
  • FriendFeed 
  • Facebook 
  • Badzu 
  • LinkedIn 
  • Google 
  • del.icio.us 
  • Wikio IT 
  • DiggIta 
  • Technotizie 
  • OKNotizie 

Pagine forse correlate:

Etichette: , ,

Commenti »

1. Anonymous - 30/09/08 @ 16:45

Grazie della dritta, sto compilando. O la va, o la va…

2. manang - 30/09/08 @ 17:06

grazie mille…uso gentoo…attendevo aggiornamenti per poter compilare la mia versione svn.
angelo

3. baxeico - 30/09/08 @ 17:40

Pare ci sia un po’ di “confusione” nella gestione dei dati in KDE. Ho letto questo post interessante a riguardo, si parla anche un po’ delle scelte degli sviluppatori di Amarok nei commenti:

http://pusling.com/blog/?p=85

Trovo strano che un progetto che mira all’integrazione come KDE non si sia ancora posto il problema di una soluzione database unica.

4. baxeico - 30/09/08 @ 17:42

Dopo averlo segnalato me lo sono un po’ riletto… forse la risposta ai miei dubbi è: Nepomuk!

5. anonimo - 30/09/08 @ 17:47

Il comando corretto è

./build-mysqle.sh --prefix=${HOME}/usr

6. Dass - 30/09/08 @ 18:03

passo & attendo che questa follia cessi :-)
amo amarok ma mica possono costringere a un tale smanettamento…
troveranno una soluzione migliore…

7. felipe - 30/09/08 @ 18:09

@anonimo #5:
Cosa intendi per “comando corretto”? Io ho usato build-mysql-sh come consigliato in mailing list e ha funzionato alla perfezione, ma forse basta compilare solo la versione embedded, di questo non sono sicuro. Potresti chiarire il tuo commento?

@Dass:
Aspetteremo con calma che tu ceda :D

8. Dass - 30/09/08 @ 18:19

mi hanno risposto sul forum di Gentoo:

You need mysql with USE=”embedded” enabled.

Further more you’ll need to temporary add “-fPIC” to your CFLAGS before compiling mysql. Remove it again after mysql is rebuild!
That is nessecary until mysql.eclass is fixed for up to 5.0.60 or upstream fixes it in newer releases.

salvo i CFLAGS non sembra così ardua la cosa ;-)
sto cedendo, sto cedendo!

9. lolloso - 30/09/08 @ 18:34

egià :D con gentoo la cosa si gestisce decisamente meglio (infatti ho risolto in pochi minuti)
comunque, indipendentemente, We Love Amarok :D

10. anonimo - 30/09/08 @ 18:36

@felipe
che nella cartella
$SORGENTI/amarok/supplementary_scripts/mysqle/
da me si chiama

build-mysqle.sh

non
build-mysql.sh

11. anonimo - 30/09/08 @ 18:39

corrisponde anche nel trunk
http://websvn.kde.org/trunk/extragear/multimedia/amarok/supplementary_scripts/mysqle/

12. lolloso - 30/09/08 @ 18:47

aiaiaiaiai e qui felipe ha copiato secco dalla mailing list senza accorgersi che c’e’ un piccolo errore :D

@felipe: ;)

13. mangus - 30/09/08 @ 18:49

mah.. io ho semplicemente ricompilato la mia versione di mysql
(5.0.60) aggiungendo –with-embedded-server al configure. Fine.

14. Anonymous - 30/09/08 @ 18:53

Mi fallisca al 97% la compilazione di amaro (e che c…)

make[2]: *** [amarok/src/collection/mtpcollection/CMakeFiles/amarok_collection-mtpcollection.dir/MtpMeta.o] Error 1
make[1]: *** [amarok/src/collection/mtpcollection/CMakeFiles/amarok_collection-mtpcollection.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs….
[ 97%] Building CXX object amarok/src/collection/ipodcollection/CMakeFiles/amarok_collection-ipodcollection.dir/amarok_collection-ipodcollection_automoc.o
Linking CXX shared module ../../../../lib/libamarok_collection-ipodcollection.so
[ 97%] Built target amarok_collection-ipodcollection
make: *** [all] Error 2

Why?

15. felipe - 30/09/08 @ 19:17

@anonimo #10
Hai ragione! Nella history della bash ho ./build-mysqle.sh perché devo aver usato il TAB per autocompletare, ma poi ho incollato i comandi suggeriti in ML ^^

16. Andrea - 30/09/08 @ 19:49

Ma utilizzare sqlite al posto di mysql?

Non ne vedo l’utilità progettuale se non il solito cannone per andare a caccia di storni!?
Qualcuno può darmi qualche delucidazione?

PS: per di più una ricompilazione adhoc . . . Mah!

17. lolloso - 30/09/08 @ 19:58

@Andrea #16: più che altro la questione è che l’unica distro che ha il pacchetto funzionante alla prima è SUSE.
Non si capisce bene se sono i DEV che devono andar diestro alle distro o le distro che devono andare dietro ai DEV.

18. BoySka - 30/09/08 @ 20:00

@Andrea 16
c’erano problemi di prestazioni se non erro, per questo hanno deciso di “forzare” su mysql. Del resto anche Akonadi ora usera’ MySql embedded, quindi sembra una decisione comune nel team KDE.
Bisogna soprattutto tener conto del fatto che Amarok adesso avra’ integrate le collezioni di Jamendo e molti altri servizi web, pertanto le dimensioni del suo db aumenteranno moltissimo.
Se non fosse per le “difficolta’” di compilazione (soprattutto spero le distro rispondano bene a queste richieste) appoggerei al 100% questa scelta

19. anonimo - 30/09/08 @ 20:05

@16
segui questo thread contiene le risposte degli sviluppatori
http://lists.kde.org/?l=amarok-devel&m=122223417508692&w=2

20. Golem - 30/09/08 @ 21:08

SQlite è sempre stata la soluzione straconsigliata dai dev per amarok (mi presi una cazziata da Flameeyes a riguardo) … direi che se sono passati così energicamente a MySql evidentemente non c’è proprio scelta

21. belze - 30/09/08 @ 21:24

io ho cominciato ad usare database esterni quando ho superato le 5.000 canzoni nella collezione, ho provato un po’ tutto, ma a mysql ho trovato migliore postgresql ma è solo un’impressione personale, non sono un esperto di database…e mi dispiace che in amarok2 non sembra sia possibile (nel prossimo futuro) usare la mia collezione attuale…peccato.

22. BoySka - 30/09/08 @ 21:35

in realta’ ho visto che e’ apparso uno script per importare la vecchia collezione di amaroK… qualcuno ha provato se funziona?

23. Fale - 30/09/08 @ 22:57

amarok-neon non funziona, magari è per questo. sto cercando di contattare apachelogger per chiedergli

24. orchideo - 30/09/08 @ 23:21

su mandriva 2009 (che uscirà tra 2 settimane) c’è l’ultimo amarok svn con mysql “pecciato”

25. matazz - 1/10/08 @ 8:59

Un motivo in più per mettere in pratica i miei progetti di passaggio a opensuse….a questo punto si avvicinano.

26. luca - 1/10/08 @ 17:13

io fallisco al 98% con
Linking CXX shared module ../../../../../lib/amarok_context_applet_lastfmevents.so
[ 98%] Built target amarok_context_applet_lastfmevents
make: *** [all] Error 2

27. amaroker - 2/10/08 @ 0:09

l’errore è un pò prima di quello che hai postato… magari posta le ultime 20 linee su pastebin!

28. Henryx - 2/10/08 @ 1:17

Personalmente sono perplesso:

- Secondo le FAQ, la scelta di supportare MySQLe e` dovuta ad una maggiore semplicita` di manutenzione del codice. Perche`, a questo punto, non utilizzare i backend messi a disposizione da Qt? In teoria potrebbero ottenere lo stesso risultato senza pero` dover rinunciare alla flessibilita` presente nella serie 1.x (basterebbe controllare in un if quale database e` stato scelto e comportarsi di conseguenza)?
- Perche` MySQLe ? Capisco che MySQL e` un nome famoso, ma considerare anche le varie alternative sul mercato (e.g. Firebird) no, eh?

Enrico

29. BoySka - 2/10/08 @ 10:27

@28 Henryx
Infatti loro _utilizzano_ QSql. Ciononostante hanno detto che con sqlite hanno incontrato vari problemi (non dovuti a QSql, ma a caratteristiche del db che ora non ricordo meglio, immagino prestazioni…). Per questo hanno lasciato la porta aperta a sqlite, nel caso riuscissero a trovare un modo per configurarlo in modo adeguato alle loro esigenze: l’astrazione QSql e’ gia’ li!

30. luca - 3/10/08 @ 19:05

@ amaroker
l’errore che ottengo è qua: http://pastebin.com/m65c9bf31
grazie

31. amaroker - 6/10/08 @ 22:04

@luca:
appunto… segui questa guida!stiamo parlando del problema che riscontri te…………..

32. luca - 7/10/08 @ 14:04

eh lo so, però evidentemente sbaglio quando mi chiede:
>>> Hi there!
Where’re mysql patches located? [patches]
cosa devo mettere?
grazie

33. amaroker - 8/10/08 @ 15:11

premi invio e basta

34. http://emailtoid.net/i/ba1261c0/4be1fb7e/ - 9/10/08 @ 22:32

http://pastebin.com/m33418dac

uffa.. non va

35. luca - 10/10/08 @ 19:59

@ amaroker
grazie ora si compila perfettamente, però non riesco ad avviarlo perchè dice che non riesce a trovare libamarok_mysql.so o qualcosa del genere…in ogni caso questo .so è in /usr/lib/kde4…come faccio a dirglielo? (eheh)
@ emailtoid
prova a compilare dando
sudo kdesvn-build extragear/multimedia/amarok

36. luca - 10/10/08 @ 19:59

@ amaroker
grazie ora si compila perfettamente, però non riesco ad avviarlo perchè dice che non riesce a trovare libamarok_mysql.so o qualcosa del genere…in ogni caso questo .so è in /usr/lib/kde4…come faccio a dirglielo? (eheh)
@ emailtoid
serve il log

37. amurian - 11/10/08 @ 13:39

@luca

Il tuo problema è che amarok non riesce a trovare libmysqlclient.so.16, che è contenuto nella cartella dove hai installato mysql con lo script per amarok.
Se hai seguito questa guida, dovrebbe essere in
[code]${HOME}/usr/lib/mysql/[/code]
Per risolvere quel problema devi dire al linker di guardare specificamente anche in quelal cartella. Per farlo dai il comando
[code]sudo kwrite /etc/ld.so.conf[/code]
e aggiungi la directory contenente il famigerato libmysqlclient.so.16 come una nuova riga
Per esempio: io ho aggiunto la riga /home/nik/usr/lib/mysql/
Per finire il tutto dai il comando
[code]sudo ldconfig[/code]

38. luca - 11/10/08 @ 14:21

@ amurian
grazie mille, ora provo…c’ero arrivato però inserivo le cartelle sbagliate in /etc/ld.so.conf

39. Anonymous - 12/10/08 @ 13:08

Grande amurian ora va!

40. tosky - 12/10/08 @ 13:44

In generale, più che toccare ld.so.conf, specialmente se le modifiche si applicano ad un solo utente, sarebbe meglio cambiare la variabile d’ambiente LD_LIBRARY_PATH aggiungendo in testa il valore del percorso verso le proprie librerie.

41. Anonymous - 12/10/08 @ 15:41

Amarok apppena compilato non mi fa ascoltare gli mp3, mentre kplayer e gli altri sì, cosa potrebbe essere? Non posso vivere senza amarok… è troppo potente!XD

42. Federico Moretti (AKA "fedmor") - 22/11/08 @ 17:55

Io l’ho installato in /opt/mysqle, che così non rompe le bàlle nella home… :) Con MySQL 5.1.29 RC non compila (c’è un bug noto su abi.check), mentre con MySQL 5.1.28 RC (come da esempio qui) va benissimo. Installato pochi minuti fa…

43. Amarok 2 + KDE 4.2 su Ubuntu/Intrepid a 64-bit, con un bug noto at brand:GNU - 23/11/08 @ 19:55

[...] ogni modo, è possibile preparare il sistema per quando sarà risolto: allo scopo, ho modificato la guida di riferimento (a proposito, sono diventato un fan di pollycoke :) su Facebook, ndFM) — affinché rispecchiasse [...]

44. Anonymous - 1/12/08 @ 13:58

E’ uscito il 5.1.30 stabile! sto provando a compilare…

45. Anonymous - 27/12/08 @ 21:07

grazie Felipe per l’aggiornamento. Da qualche giorno il 5.1.28 non funzionava più. ora sto compilando. Comunque su planetkde ci sono aggiornamenti importanti riguardo amarok 2.0.1!

46. Anonymous - 28/12/08 @ 22:56

quando apro amarok mi da sto errore

KLibLoader could not load the plugin:
libamarok_collection-sqlcollection
Error message:
QLibrary::load_sys: Cannot load /opt/kde4/lib/kde4/libamarok_collection-sqlcollection.so (libmysqlclient.so.16: impossibile aprire il file oggetto condiviso: Nessun file o directory)

Come posso risolvere?

47. Dareus - 20/02/09 @ 14:30

a me il procedimento non funziona…
continua a trovare prima il mysql installato con i pacchetti, ho provato anche la strada proposta da tosky ma non ho avuto molto successo…

48. Anonymous - 21/02/09 @ 14:59

è uscito da 3 settimane il .31, ma .deb non ce ne sono in giro?

(commentando accetti implicitamente le Regole di pollycoke, leggile!)