在Ubuntu 8.10 中安裝使用新一代IMEibus Deb包下載_Ubuntu,Linux,ibusIME,拼音,五筆,搜狗
Linux下常見的IME有fcitx和scim。fcitx,全稱“Free Chinese Input Toy for X”,中文名稱為“小企鵝IME”,支援拼音,五筆字型以及區位、二筆。可以輸入UTF-8、GB 18030編碼中的漢字。fcitx 小巧好用,相容性好,Fcitx 的配置以及使用較為簡單,比較適合於初學者以及習慣Windows輸入方式的人使用,但 fcitx 只能提供中文輸入,且投供的IME種類稍少,尤其是fcitx已經停止開發,另外Fcitx屬於XIM,而XIM崩潰之後會導致應用程式和X的崩潰,所以 若fcitx若崩潰可能導致使用者資料的丟失;SCIM,Smart Common Input Method,是一個在類Unix作業系統上支援多國語言的一個IME平台,在其上可以使用很多種IME,支援各種語言的輸入,但SCIM最大的問題是其 相容性,很多情況下導致使用者無法正常使用,給使用者帶來了極大的不便。
因為上面問題的存在,下一代IME應運而生。ibus(http://code.google.com/p/ibus/)是下一代IME的架構中的其 中一個,作者Shawn.P.Huang同時也是scim-python的作者。其它的兩個下一代IME架構有scim2(首頁在 http://code.google.com/p/scim2/,由stardict的作者胡正領導開發),imbus(http: //code.google.com/p/imbus/,由scim的作者蘇哲帶領開發),目前,imbus和scim2都沒有什麼進展。
ibus的主要特色在於它的C/S結構,ibusIME引擎都是各自獨立的單獨的進程,這種方式可以有效避免IME引擎之間的影響,另外,也比較容 易地載入和卸載IME引擎。
ibus使用了dbus作為進程間通訊的機制,dbus具有低延遲和低開銷的特點,小巧而高效,在GNOME和KDE中都獲得了廣泛應用。dbus的 使用,使ibus具有小巧高效的特點。
另外,在圖形介面方面,ibus使用pygtk,使開發更加容易。
ibusIME的安裝
如果自己編譯ibus的話,需要最新的dbus-python,而8.04的dbus-python是低版本的。還要先編譯最新版的dbus-python,比較麻煩。好在不久前ibus在 ubuntu 8.04下可以直接通過cn99的源安裝了。
添加ibus的軟體源到系統。編輯/etc/apt/sources.list檔案,在檔案的最後添加一行:
deb http://Ubuntu.cn99.com/ubuntu-cn/ hardy main restricted universe multiverse (此源已廢)
要不然會提示找不到ibus包。如果只用拼音的話,直接 sudo apt-get install ibus-pinyin 就可以了。這條命令會安裝ibus和ibus-pinyin兩個包。如果要用其他IME,可以再安裝 ibus-tables這個包,其中包含了五筆86、五筆98、二筆、鄭碼、倉頡5代。
更新軟體包列表
$ sudo apt-get update
然後搜尋軟體包
$ apt-cache search ibus |grep ^ibus
ibus - iBus - Intelligent Input Bus for Linux / Unix OS
ibus-pinyin - ibus-pinyin
ibus-table - IBus-Table
上面已經可以看到ibus軟體包的資訊了,上面的軟體包中ibus-pinyin是ibus的拼音IME的引擎,ibus-table是其它IME的 引擎,如倉頡第五代,二筆,五筆86,五筆98,鄭碼等。
安裝ibus軟體包
$ sudo apt-get install ibus ibus-table
因為筆者不使用拼音IME所有只安裝了ibus和ibus-table,用拼音IME的朋友還需要安裝ibus-pinyin軟體包,使用下面的命令來安裝
$ sudo apt-get install ibus ibus-table
安裝完成後,設定使用者預設使用ibusIME,還需要配置ibus為系統IME。比較簡單且不容易出錯的方法是通過im-switch來設定,im-switch應該在系統中內建了,沒有的話就apt一個。因為ibus在安裝的過程中已經在/etc/X11/xinit/xinput.d下面建了一個設定檔,所以直接打“im-switch -s ibus“選定這個配置。接著重新啟動就可以使用ibus了。這種方法保留了scim,以後可以im-switch切換回來。
ibus並不會自動載入IME引擎,要在ibus-setup介面的engine中啟動並設定自啟動(我只安裝了拼音IME)。
開啟一個終端,在終端中執行下面的命令:
$ im-switch -s ibus
登出目前使用者,重新登入。
雖然是基於python的,但是用下來覺得還是很流暢的,效率是沒有問題的,詞庫也很豐富,選詞準確率很高,個人覺得好似linux上的搜狗IME,呵呵。
當然,每個人的輸入習慣不一樣,scim、小企鵝也是不錯的。要找到合適的IME還是要自己去慢慢體會和比較。
ubuntu編譯完成Deb包下載:
ubuntu 8.10手工下載安裝:
http://archive.ubuntu.org.cn/ubuntu-cn/dists/intrepid/main/binary-i386/ibus/
安裝順序為: http://archive.ubuntu.org.cn/ubuntu-cn/dists/intrepid/main/binary-i386/ibus/python-dbus_0.83.0-1_i386.deb
ibus 0.1.1 deb包: http://archive.ubuntu.org.cn/ubuntu-cn/dists/intrepid/main/binary-i386/ibus/ibus_0.1.1.20081106-1_i386.deb
ibus拼音deb包 http://archive.ubuntu.org.cn/ubuntu-cn/dists/intrepid/main/binary-i386/ibus/ibus-pinyin_0.1.1.20081106-1_i386.deb
ibus五筆deb包 http://archive.ubuntu.org.cn/ubuntu-cn/dists/intrepid/main/binary-i386/ibus/ibus-table_0.1.1.20081106-1_i386.deb
安裝此處的ibus相關包裹後 如果沒辦法選擇ibus為預設IME請執行下列命令
sudo update-alternatives /
--install /etc/X11/xinit/xinput.d/zh_CN xinput-zh_CN /
/etc/X11/xinit/xinput.d/ibus 40
ibus for 32bit ubuntu 8.10 下載
http://ubuntu:ubuntuftp@ftp.ubuntu.org.cn/home/bora/package/Ubuntu8.10/
i386版本,支援 im-switch 管理,支援QT4,已加入到中文源,呵呵,還不錯,有興趣者可以放心使用。
目前發現的問題是拼音開了模糊後,反應有點慢。
$ ls
ibus_0.1.1.20080908-1.diff.gz
ibus_0.1.1.20080908-1.dsc
ibus_0.1.1.20080908-1_i386.changes
ibus_0.1.1.20080908-1_i386.deb
ibus_0.1.1.20080908.orig.tar.gz
ibus-pinyin_0.1.1.20080901-1.diff.gz
ibus-pinyin_0.1.1.20080901-1.dsc
ibus-pinyin_0.1.1.20080901-1_i386.changes
ibus-pinyin_0.1.1.20080901-1_i386.deb
ibus-pinyin_0.1.1.20080901.orig.tar.gz
ibus-table_0.1.1.20080901-1.diff.gz
ibus-table_0.1.1.20080901-1.dsc
ibus-table_0.1.1.20080901-1_i386.changes
ibus-table_0.1.1.20080901-1_i386.deb
ibus-table_0.1.1.20080901.orig.tar.gz
python-dbus_0.83.0-1_i386.deb
使用方法,安裝 ibus ibus-pinyin ibus-table python-dbus
然後使用 sudo im-switch -c 選擇 ibus IME。
退出後重啟電腦。
附:ibus初探:
http://imtx.cn/archives/527.html
那天在Toy上看到下一代IME架構 ibus,當時沒什麼感覺,只是覺得名字ibus有點意思。
今天把ibus的代碼git下來後一看:原來ibus是一個基於pygtk、dbus的一個IME引擎!!!興趣立馬大增。
當初還以為是基於Unix Socket的、只提供了Qt的圖形介面的C/SIME引擎。現在一看ibus中的三樣核心技術(Python, dbus, gtk)都是目前我學習的方向,因此打算好好研究一下ibus。
—–
ibus的全稱是input bus,是由scim-python的作者Shawn.P.Huang所開發的。
中文領域還有兩個正在開發當中的IME引擎,分別是scim2和imbus,分別是由胡正和蘇哲領導開發。不過進展不明,特別是imbus,最近的commit都是半年前了。
與scim2和imbus基於C/C++所不同的是,ibus是基於Python的。你會說肯定會效率問題怎麼解決?我想只要不是打字打到每分鐘500個以上,不用管這個問題了吧?
Python開發迅速,加上Shawn.P.Huang的活躍開發,應該有理由相信ibus能很快地成熟起來並得到應用。
廢話不多說,初探一下ibus吧!
先說dbus
ibus使用了dbus作為C/S架構的核心部分,這個的應用實在是棒。因為dbus是一個高效、低延時的IPC通訊匯流排,而且有著完善的Python綁定,俺在Ubuntu Tweak也是用dbus來搞一些系統級的服務調用的。
記得之前遇到過FitxIME的作者,FitxIME的是基於scim-python的,不過後端的引擎是基於Unix Socket的。這兩種通訊管道哪個好呢?這個就沒有深入研究了,我只知道dbus是基於註冊的服務,提供的介面和語言綁定比較豐富和靈活,這樣前端也可 以比較多樣化了(現在就有Qt4前端了)。
因為自己也只是初識dbus,Unix Socket更是沒用過,這方面也不好多說。希望能從ibus那學習到更多有關dbus的東西。
再說pygtk
說ibus是基於pygtk的,不如說是基於pygobject的,當然底層是glib。
ibus的基類:自訂的Object,就是繼承於gobject.GObject。在整個ibus引擎中(特別是在daemon),都廣泛用到了 gobject,也就是訊號/回調之類。用Python來寫定義GObject就是方便,如果用C語言那真是麻煩死了。所以想學pygtk的核心部分的朋 友,去參考一下ibus也不錯。
……<<<<<<<……俺是瘋哥線……>>>>>>>……
不能光看不做,於是打算安裝試用一下。折騰了很久,才把ibus安裝上去。
因為過程實在是太複雜了,所以這裡只講主要過程。
安裝過程是參考這裡:http://code.google.com/p/ibus/wiki/ReadMe,只安裝了ibus本身和PinYin engine。
ibus預設依賴Qt4,這個倒沒關係,不過無論我怎麼configure均通過不了。無奈之下,把configure.ac中有關Qt的去掉,然後在Makefile.am和Makeifle.in中也把Qt相關的去掉,終於成功編譯了ibus。
編譯完後運行ibus,一堆Python錯誤。一看,Ubuntu 8.04的python-dbus不合乎要求,沒有dbus.server這個包,ibus需要0.83,但預設0.82。於是上Index of /releases/dbus-python下載了個0.83的python-dbus安裝更新之。
終於可以運行ibus的daemon了,可是執行GTK_IM_MODULE=ibus gedit,在gedit中就是打不開ibus。
再去研究,發現make install時把im相關的東西安裝至了/usr/lib/gtk-2.0/immodules,而Ubuntu下預設是集中在/usr/lib /gtk-2.0/2.10.0/immodules這的。於是手動移到那個目錄,並手動編輯了:/usr/lib/gtk-2.0/2.10.0 /immodule-files.d/libgtk2.0-0.immodules 這個檔案。
重新登入GNOME,呼~ibus終於出現了!
雖然我不是用拼音的,但是還是硬著頭皮試用了一個安裝了PinYin的ibus。
用了一會,感覺非常滿意!
介面很漂亮,輸入效果也很棒,還支援Fcitx式的直接輸英文:這意味著我將來可以非常自然地過渡至使用ibus!
看下面的:
在Leafpad裡使用ibus
浮動條,很小巧
PinYin的設定介面,很詳細。
因為是一個全新的IME(不像scim-python是基於scim的),所以ibus擁有一些scim不具備的特性,而且IME正在不斷開發當中,我相信ibus一定會成為最牛的IME的!哈哈。
今天先熟悉下,往後抽出時間來繼續看源碼,希望能為開發盡一點自己的能力!