Rhythmbox et liens symboliques

Bonjour le monde,

Après de longues années loin de debian, j’ai ressenti le besoin d’utiliser Lenny pour mes besoins personnels afin de réaliser une station et serveur multimédia. Pour cela, j’ai installé via la netinstall gnome, station/serveur à laquelle j’ai ajouté 2/3 trucs pour mes besoins. Jusque là, pas de problème.

Afin d’écouter mes ogg/vorbis, j’utilise rhythmbox. Ce dernier créé un fichier, $HOME/.gnome2/rhythmbox/rhythmdb.xml, jouant le rôle de base de données de mes chansons. Afin de ne pas être dépendant de mon réseau local ni d’internet lors de mes déplacements professionnels, ma musique se trouve sur un média amovible dont le système de fichier est ext3 ; j’ai donc déplacé ce fichier rhythmdb.xml sur ce même média amovible afin qu’il ne soit pas recréé à chaque fois. Et à cette fin, je créé un lien symbolique $HOME/.gnome2/rhythmbox/rhythmdb.xml pointant sur /media/bla/bla/rhythmdb.xml.

Mon problème est que lorsque je lance rhythmbox sur debian, le lien logique est supprimé afin de créer un fichier équivalent dans mon $HOME et mon lien disparaît. Que je lance rhythmbox en local ou à travers ssh, ce phénomène se produit. Ce qui me surprend le plus, c’est que si j’utilise rhythmbox avec mon netbook eeebuntu ou avec ubuntu 8/04 LTS via nfs de ma station de travail (avec mon compte ou celui de ma copine), le lien symbolique reste en place et pointe bien sur le fichier de mon média amovible.
Je ne comprend pas ce qui ce produit, la raison du pourquoi du comment ; aussi, si quelqu’un pouvait m’éclairer et m’expliquer ce qui se passe, je lui en serait reconnaissant.

Cdt,
Viking31

ps : j’utilise la même “bidouille” pour le répertoire “covers” et ce phénomène ne se produit pas.

Et avec un lien symbolique placé un rang plus haut : $HOME/.gnome2/rhythmbox pointant sur /media/bla/bla/rhythmbox/ (impliquant un /media/bla/bla/rhythmbox/rhythmdb.xml) ?

Problème de droits ? Tes comptes ont-ils le même uid sur tes ubuntu et sur ta debian ?

@ vv222
Cette solution m’embête dans la mesure où le répertoire $HOME/.gnome2/rhythmbox contient également le fichier playlists.xml contenant, comme son nom l’indique, les playlists ; et j’aurai aimé que chaque utilisateur puisse avoir ses playlists personnelles. Malgré tout j’ai essayé ta solution ; et cela m’a permi de comprendre ce qui ce passe. En effet, avec ta solution, je me suis aperçu que chaque instance de rhythmbox (celle de debian du serveur et celle(s) de la(des) station(s) de travail(glandouille) ubuntu) reconstruit la base de données à chaque lancement. Mais alors pourquoi ? En effet, la racine de l’arbre xml du fichier rhythmdb.xml, dans les deux cas, est

<?xml version="1.0" standalone="yes"?> <rhythmdb version="1.4"> ... </rhythmdb>
donc le fait que mes 2 rhythmbox soient de version différentes (0.11.5 coté ubuntu 8/04 LTS et 0.11.6 coté debian 5.0.1) n’est pas en cause puisqu’ils utilisent tous les deux la même version de rhythmdb.

Et donc -la vérité- le problème est ailleurs. Et l’explication se trouve au sein du fichier rhythmdb.xml qui rend le partage nfs impossible en soit. En effet, le fichier xml contient, entre autres et pour chaque fichier audio, les balises

<location>file:///media/bla/bla/audio/artiste/chanson.ogg</location> <mountpoint>file:///media/bla/bla</mountpoint>
Et comme on peut le constater, il s’agit là d’url, et donc le chemin est “en dur” sans utiliser de variable que je nommerai ici pour l’explication $AUDIOTHEQUE qui est défini dans gconf via les préférences de rhythmbox ; ce qui pourrait donner un fichier xml du genre

<location>file:///$AUDIOTHEQUE/artiste/chanson.ogg</location> <mountpoint>file:///$AUDIOTHEQUE_MNT_POINT</mountpoint>
Et ce chemin n’est pas le même si je passe par nfs car, coté client nfs tel que je l’ai configuré, j’aurait besoin de balises du genre

<location>file:///mnt/nfs/audio/artiste/chanson.ogg</location> <mountpoint>file:///mnt/audio</mountpoint>

Mais alors la solution ?
Et bien directement, il n’y en a pas. Afin de régler cette problèmatique, une solution possible est une bidouille : utiliser virtuellement les mêmes chemins “en dur” grâce aux liens logiques. Ce que j’essayerai la semaine prochaine, en vous tenant au courant, au cas où quelqu’un soit confronté au même problème.

@ kna
Tu fais bien de soulever ce problème, nfs et la gestion réseau en général n’étant pas ma spécialité. Malgré tout, j’ai essayé de “gouguelé” :wink: assez correctement afin de configurer mon serveur de façon, sinon correcte, au moins de façon satisfaisante afin de gérer mon petit réseau perso. Cela dit, ta réflexion est très intéressante car cela aurait pu être une solution à envisager.

Hello wold,

Je reviens donc sur mon problème plus tard que prévu car j’ai entre temps reçu une nouvelle bécane pour remplacer ma machine cliente qui commençait à être sur ces vieux jours.
Bref, après moultes tests dans tous les sens, notamment grâce à l’intervention de vv222, j’en suis arrivé à la conclusion que les nouvelles versions de rhythmbox ne supportent plus les liens logiques sur le fichier rhythmdb.xml ; en effet, dès l’ouverture de rhythmbox, le lien est systématiquement remplacé par son fichier cible que ce soit avec lenny en local ou à travers ssh/nfs ou avec ubuntu. Dès lors, il n’est plus possible de partager une unique base de données xml, ni entre utilisateurs locaux, ni même à travers nfs. Une volonté délibérée des programmeurs de rhythmbox ou un bug récemment introduit ? Je n’en sait rien…

Et malheureusement, je ne peux plus utiliser l’astuce de vv222, à savoir partager directement le répertoire $HOME/gnome2/rhythmbox/rhythmdb.xml car sur ma nouvelle machine cliente, j’ai installé la nouvelle version d’ubuntu, Jaunty Jackalope (ubuntu est la seule distrib que ma copine accepte d’utiliser, mais il s’agit là d’un autre débat), et cette version d’ubuntu utilise une version plus récente de rhythmbox que Lenny et la version du fichier rhythmdb.xml a été incrémentée en 1.6, version non compatible avec rhythmbox de Lenny utilisant rhythmdb.xml v1.4.

Bref, en l’état actuel, ma bidouille n’est plus possible ; attendons de voir la version 1.0 de rhythmbox.