首次接觸Google Desktop以來,就盼望著Linux版本的誕生,不論是Google自家出品還是其他開放源碼計劃產品也好,即使功能遠遜於前者也沒相干,對早已為文件管理費煞思量的我來說,聊勝於無的方案也好過什麼都沒有。
對經常要找出藏於十多層目錄內的文件,那樣的工作厭惡極了,即使有”Recent Documents”這功能也不見得有多管用,只要文件量一多,再常用的文件都照樣會石沉大海。
最理想還是使用文字搜尋,只要預先建立索引資料庫,並有程式在背景更新,在不影響系統運作的同時,提供最速捷的搜尋服務,只要打幾隻關鍵字就可以把文件叫出來,簡單又方便。
可是為此而試了幾個Linux上的方案,結果都不符及要求,例如doodle及Gnome的search tool,各自都有自己的問題,例如說doodle就是怎樣也不鳥純文字檔,但那是我最常用的文件格式啊!而Gnome的search tool則只能提供檔案名字的索引服務,本來還算是聊勝於無的東西,可是索引的建立並不支援漸進式更新,每次都要花費大量時間重新製作,嚴重影響系統運 行。
這個情況一直得不到改善,直至我發現到Beagle為止。
Beagle的功能與Google Desktop相若,同樣地提供文件索引的建立及搜尋服務,所支持的文件類型如下:
- documents
- emails
- web history
- IM/IRC conversations
- source code
- images
- music files
- applications
看來跟Google Desktop差不多呢,急不及待立即便把Beagle裝了起來,玩了幾天,這裏是我少許的心德:
安裝:
在Debian sid下的安裝步驟並不複雜,首先用apt-get把Beagle及其他套件抓下來:
apt-get install beagle gtk-sharp2 mono-xsp wv
之後理論上只要執行`beagled`便可以進行索引及搜尋功能,可是就這樣的設定並不能發揮Beagle的效能,甚至乎會令人失望。在Beagle wiki裏提及過二項可以提高Beagle表現的Kernel功能,雖然那並非必需的設定,但我建議最少要打開其中一項。
首先是檔案系統的Extended attributes,這項功能容許用戶為檔案加入額外的資訊,Beagle因此便能迅速地得知那些檔案需重建索引,若沒有打開這個功能的話,Beagle會使用sqlite為基礎的回饋機制,那可是慢得不能接受的。
故此那其實是非用不可的功能才對,而啟動的方法也不算複雜,只要修改/etc/fstab,找出/home在處的檔案系統,並加入user_xattr這項參數。
假設你的/etc/fstab有這麼一行:
/dev/hda6 /home ext3 defaults 0 2
改為:
/dev/hda6 /home ext3 defaults,user_xattr 0 2
接著重載/home
mount -o remount /home
成功的話在mount指令裏會見到這行:
/dev/hda6 on /home type ext3 (rw,user_xattr)
而另一項功能是inotify,一種用作檔案監控的系統,Beagle可利用inotify得知最新修改的檔案,從而提供live query之類的功能。但inotify是於Linux Kernel 2.6.13-rc3及以後的版本才開始提供,所以不打算在這裏談及,詳情可參考Inotify Kernel - Beagle
建立索引:
建立索引並提供搜尋服務是beagled的工作,那是個在背景執行的程式,而且不需要root執行,在shell裏輸入beagled便可。
Beagle會盡可能在不影響其他程式的狀態下進行索引建立的工作,代價當然是更長的製作時間,如果想提高速度的話可以設置一個環境變數強逼Beagle全速進行索引建立:
export BEAGLE_EXERCISE_THE_DOG=1
為確保每次登入時Beagle都會自動執行,請打開Desktop->Preferences,點擊Sessions,然後把Beagled加入。 (注:新版本的beagle會自動加入)
另外要留意是Beagle並不懂得直接處理FireFox的web history,需依懶FireFox的plugin輔助。先到Firefox Extension - Beagle下載beagle.xpi,把它安裝到FireFox後,所有曾瀏灠過的網頁便會自動記錄到Beagle的資料庫中。
搜索:
Beagle提供三種不同的介面進行搜尋,包括web介面、指令輸入以及專用的程式。最簡單是在灠瀏器打開 http://localhost:8888/Beagle/search.aspx 便可以立即搜索,而習慣輸入指令的用家可以使用`beagle-query
(注:best已經被beagle-search所取代,捷徑在Applications->Accessories->Search)
設定:
通過`beagle-setting`這個指令便可以對Beagle進行簡單的設定,好像說除家目錄外,還有什麼目錄希望制作索索呢,又或者除本地用戶外,準容那些機資搜索這部機器的資料等等。
結束:
停止Beagle只需要輸入`beagle-shutdown`這個指令。
結論:
雖然Beagle已經提供與Google Desktop相若的功能,可是要改良的地方還有很多,就剛是穩定性一項已經需要大大改善,經常無故關閉,但更多時卻會化為zombie,霸著大量的系統 資源(有時高達100多MB)而不工作,即使用beagle-shutdown也沒反應。
至於核心的搜尋速度呢,就恰於其份,感覺上及不上Google Desktop,我想大概沒人期望它能跑贏Google吧? ;P
說到這裏,Beagle雖然有不少缺點,但我相信這是一個非常好的開始,所需要的是更多人的參與,不論是軟件開發或用戶意見都同樣非常重要,可惜我對C#一竅不通,只有參與討論一途呢……幸好剛有人加入了一個叫pybeagle(python binding for beagle)的系統,以後除C#外,還可以使用python進行開發,那麼便可以有更多程式員也可參與Beagle的開發呢!
沒有留言:
發佈留言