
La principale novità di Windows Vista doveva essere WinFS.
WinFS era un filesystem basato su database, in cui i file erano organizzati in base al loro contenuto o relazione, invece che in cartelle e sottocartelle da riempire a cura dell’utente. Ad esempio creando una cartella “Cucina”, essa doveva venire popolata da tutti i file che parlavano dell’argomento “cucina”, in base ad una ricerca sui tag.
Il progetto è stato rimosso da Vista e forse non lo vedremo mai, ma l’idea, non nuova e ovviamente non della Microsoft, era ottima.
Beagle permette di fare anche questo.
Il segreto è Beaglefs, un modulo per FUSE (vi ricordate?) che permette di creare cartelle contenenti i file che risultano da una certa ricerca. Ovviamente i file non vengono copiati, ma viene creato un link simbolico (del tutto trasparente per le applicazioni) al file “vero”.
Siccome la ricerca, con Beagle, può avvenire sul contenuto, sui tag, sul tipo, o persino sul commento che è possibile inserire nella finestra “proprietà” del file su Nautilus, immaginate le possibili applicazioni.
Purtroppo Beaglefs non è mantenuto da tre anni e soffre di un bug dovuto al cambiamento della sintassi della query di Beagle. Inutile installare la versione presente su Synaptic. Ma niente paura: ho risolto il bug con una piccola modifica al sorgente e l’ho segnalato agli sviluppatori di Beagle
Queste sono le cose che mi danno soddisfazione con il software libero!
Quindi chi legge il mio blog ha in anteprima l’unica versione di Beaglefs funzionante con l’attuale Beagle. Che culo.
Bando alle ciance e procediamo.
Installazione
Prerequistiti: ovviamente dovete aver installato Beagle come spiegato in nel primo post su questo motore di ricerca desktop.
1. Scaricate questo file: http://www.megaupload.com/?d=B2Z0HZTP e mettetelo nella vostra cartella home
2. Copiatelo nella directory /sbin: sudo cp beaglefs /sbin
3. Rendetelo eseguibile: sudo chmod a+x /sbin/beaglefs
Utilizzo
Prima di tutto occorre crearci un punto di mount, ovvero una cartella che conterrà la nostra ricerca. Possiamo ad esempio crearla sulla Scrivania. Supponiamo di voler avere una cartella con tutti i file che citano la parola “Roma” (la ricerca verrà effettuata anche nei tag delle fotografie, se li avete valorizzati, ad esempio con F-Spot), creiamo sulla Scrivania una cartella vuota e chiamiamola proprio Roma.
Ora da terminale diamo:
beaglefs "Roma" ~/Scrivania/Roma
Il risultato sarà questo:

Figo no?
In generale la sintassi è:
beaglefs "query di ricerca" /punto/di/mount
Purtroppo non è possibile smontare direttamente da Nautilus, quindi da terminale diamo:
fusermount -u ~/Scrivania/Roma
Utilizzi divertenti
Combinate questa nuova funzionalità con la sintassi di ricerca di Beagle per ottenere risultati carini:
beaglefs "ext:mp3" ~/Scrivania/mp3
una cartella con tutti gli mp3, anche se li abbiamo messi per sbaglio da un’altra parte invece che in musica
beaglefs "artist:beatles" ~/Scrivania/Beatles
tutte le canzoni dei Beatles
beaglefs "Parigi ext:jpg" ~/Scrivania/Foto_Parigi
tutte le fotografie di Parigi che avete taggato con F-Spot
E se volessimo montarle in fstab? Aggiungiamo una riga come questa:
beaglefs#Roma /home/guido/Roma fuse user 0 0
E’ tutto.














Davvero interessante! Per pigrizia fino ad ora non ho installato Beagle, ma credo che lo farò presto, appena avrò un minimo di respiro dagli esami. Peccato però che il progetto non venga mantenuto, sembra davvero ricco di prospettive. È strano questo calo di interesse, è dovuto alla mancanza di sviluppatori o allo sviluppo di altri progetti?
L’autore mi ha detto che adesso beaglefs ha un altro mantainer, ho mandato la patch.
Anche l’aggiornamento per il plugin di firefox l’ho sollecicato io (ma l’hanno fatto loro).
Molto interessante Guido.
Dopo il comando
beaglefs “Roma” ~/Scrivania/Roma
ricevo questo errore:
beaglefs: error while loading shared libraries: libfuse.so.2: cannot open shared object file: No such file or directory
Credo che il problema sia dato dal fatto che ho un SO a 64bit.
Ho provato a creare un collegamento simbolico alla cartella lib32 coi comandi
sudo ln -s /lib/libfuse.so.2.7.4 /lib32/
sudo ln -s /lib32/libfuse.so.2.7.4 /lib32/libfuse.so.2
ma poi ottengo
beaglefs: error while loading shared libraries: libfuse.so.2: wrong ELF class: ELFCLASS64
Consigli?
Interessantissimo.
Penso proprio che lo proverò
Ma se beagles con estensioni varie fa tutte queste belle cose
(e c’è a chi queste cose servono tantissimo)
perchè buttarsi su tracker o su uno dei vari progetti “semantici” che nascono falliscono e muoiono ogni 3 minuti, e non portare avanti invece beagles?
Giuro, io dei “decisionsti” dei vari DE e distribuzioni, ogni giorno che passa ne ho sempre più le scatole piene.
Ok, ho risolto. Spiego come.
Ho scaricato questo pacchetto
http://packages.ubuntu.com/jaunty/i386/libfuse2/download
Ho estratto il file libfuse.so.2.7.4 nella home e ho dato
sudo mv libfuse.so.2.7.4 /lib32/
sudo ln -s /lib32/libfuse.so.2.7.4 /lib32/libfuse.so.2
Poi mi si è presentato un altro problema, ovvero
beaglefs: error while loading shared libraries: libbeagle.so.1: cannot open shared object file: No such file or directory
Ho quindo risolto allo stesso modo.
Ho scaricato il pacchetto da qui
http://packages.ubuntu.com/jaunty/i386/libbeagle1/download
Ho estratto il file libbeagle.so.1.0.2 nella home e ho dato
sudo mv libbeagle.so.1.0.2 /lib32/
sudo ln -s /lib32/libbeagle.so.1.0.2 /lib32/libbeagle.so.1
Funziona perfettamente.
Potevi chiedermi il sorgente e te lo compilavi nativamente su 64bit
In passato avevo provato anch’io beaglefs e mi ero trovato bene, poi quando si è rotta la compatibilità ho lasciato stare.
Visto che ti interessi di Beagle, sai mica se è possibile far indicizzare (di nuovo) in tag XMP embedded nelle foto?
C’è questo bug aperto dal 2008 e ancora nessuna novità
https://bugs.launchpad.net/ubuntu/+source/beagle/+bug/292106
Il mantainer diceva che alcuni backend non funzionano più con mono 2. Ci stanno lavorando.
Cavolo veramente bello, ho seguito dal primo articolo ma non ho mai installato perchè voglio imparare ad usare un po il terminale quindi cercavo con locate.
Oggi leggendo il tuo articolo mi son detto quasi quasi lo installo perchè mi sembra una figata.
Complimenti per l’ottimo blog, e ovviamente per aver risolto il bug.
Magari io sapessi usare il pc come te.
Sei veramente bravo e spieghi bene le cose ciao e grazie
Vaino
Grazie.
ottimo!!!
guido, sei in grado di creare una gui in gambas?
una gui per cosa? è solo un comando da dare…
pensandoci bene… una gui con mono… non sarebbe male.
Vediamo che tiro fuori.
Fatto
http://guiodic.wordpress.com/2009/07/10/beaglefs-gui-uninterfaccia-grafica-per-beaglefs/
[...] Leave a Comment Tags: beagle, beaglefs, c, gnu, GTK#, linux, mono, monodevelop Ieri notte Kimj mi suggeriva di creare un’interfaccia grafica per BeagleFS. Dopo averlo preso per scemo, ci [...]
però interessante! uso questa opzione su kde con gwenview + nepomuk, ma quando mi ritroverò su gnome proverò il cagnaccio.
ohhh che bello
quanto tempo ho atteso che qualcuno sapesse come risolvere questa cosa 
già installato e in fase di utilizzo, ti ringrazio molto per il contributo e se può servirti ti segnali mediafire.com al posto di megaupload, che non ha limiti né tempi di attesa.
ciao e grazie ancora,
uk
Grazie del suggerimento.
Si possono avere i sorgenti per compilarla con una distro a 64 bit?
Allora, scarica il sorgente normale di beaglefs poi sostituisci il file hit.c con questo:
https://bugzilla.gnome.org/attachment.cgi?id=138792
Ti devo correggere su due cose, la prima è che win fs non è un filesystem, ma un sistema di gestione di metadati, la seconda è che non sia stato implementato in Vista! Su Vista è possibile creare una cartella virtuale a partire dal modulo di ricerca (il “salva ricerca”) ed è possibile la selezione dei files per metadati, tra cui anche il tag. Questo giusto per onor del vero!
Grazie, la guida è molto esaustiva. Ho eseguito la procedura alla lettera installando anche l’interfaccia grafica e beaglefs fa il suo lavoro, tuttavia ho due domande da farti:
1- come mai riavviando il sistema i volumi si cancellano? Come posso renderli permanenti?
2- E’ possibile non montare i volumi sulla scrivania ma soltanto in places?
1) sì è possibile, se leggi l’ho anche spiegato
2) sì, basta che li monti in un posto diverso da /media (ad esempio in /mnt) poi in nautilus aggiungi il segnalibro.
Grazie…essendo nuovo del mondo linux semplicemente ignoravo cosa fosse “fstab”.