如果您想自行編譯 HIME,以下提供了簡單的步驟:
原始碼位置:
您可以在 https://github.com/caleb-/hime/downloads 取得 HIME 的最新穩定版/開發版 tarball。
穩定版 tarball 備份站: http://hime.luna.com.tw/
所需套件:
必需套件:build-essential libgtk2.0-dev/libgtk-3-dev libxtst-dev
build-essential 是 Debian 的一個虛擬套件,裡面包含了一些編譯時的必要套件,像 gcc 或 make 之類的;
如果您使用的是其它的 Linux Distribution,可能要找找看有沒有類似的套件。
選用套件:libanthy-dev libchewing3-dev libgtk2.0-dev/libgtk-3-dev
libqt3-mt-dev libqt4-dev libappindicator-dev gettext
libanthy-dev: 如果要加入 anthy 的支援的話
libchewing3-dev: 如果要加入 新酷音 的支援的話。注意至少要使用新酷音 0.3.2 以上才能順利編譯喔!
libgtk2.0-dev 如果要編譯 GTK2+ 輸入法模組的話
libgtk-3-dev: 如果要編譯 GTK3+ 輸入法模組的話
libqt3-mt-dev: 如果要編譯 QT3 輸入法模組的話。
libqt4-dev: 如果要編譯 QT4 輸入法模組的話
libappindicator-dev:
如果要支援 Ubuntu 的 Unity Tray 的話。
注意至少要使用 Ubuntu 11.10 的 libappindicator-dev 0.4.1 以上才能順利編譯喔!
gettext:
如果要編譯翻譯檔的話。覺得沒必要的話記得指定 --disable-nls。
因為要 QT3 im-modules 能動作需在 QT3 上套用一個非官方的修正程式,請確認您的系統有套用此修正程式,
再啟用 --enable-qt3-immodule 選項來編譯 QT3 輸入法模組。
HIME 可以在純 GTK2+(libgtk2.0-dev) 或 GTK3+(libgtk-3-dev) 環境下編譯。
在編譯時會同時編譯相對應的 GTK2+/3+ 輸入法模組。
解開原始碼
目前 HIME 的官方原始碼是用 xv 壓縮的。所以請以以下指令解開下載來的原始碼:
tar xJf hime-0.9.9.tar.xz
編譯流程:
清除上次編譯所殘留下來的暫存檔:
在開始編譯之前,請順手清除上次編譯所殘留下來的暫存檔,以確保您的 HIME 是全新編譯的:
make clean distclean
HIME 支援以下的 make 指令:
make clean:
清除在 make 過程中所產生的所有中繼檔,如 *.o 之類的。
make distclean:
清除由 configure 所產生的設定檔。
make:
編譯 HIME。
make install:
將 HIME 安裝至系統中。
HIME 目前尚未支援 make uninstall 指令。
執行 ./configure 並設定 CFLAGS、CC 和 --prefix 及其它編譯選項
可以使用 CFLAGS 和 CC 來指定 HIME 所要使用的編譯程式和它的 CFLAGS。
目前 HIME 支援了 gcc/clang 編譯程式,預設的 CFLAGS 則為 -Wall。
也可以藉由 --prefix 來指定 HIME 的安裝路徑,建議要小心得修改這個值,
像是 Debian User 應該指定為 /usr;
否則 GTK/QT im moduels 很可能會安裝在錯誤位置。
如果您的系統中同時有 GTK2+ 及 GTK3+,但您想編譯 GTK3+ based 的 HIME,
請記得加上 --with-gtk=3.0 選項。
如果您沒安裝 gettext 套件,您可能得下達 --disable-nls 讓 HIME 不會去編譯翻譯檔。
綜合範例如下:
CFLAGS="-g -Wall -Os" ./configure --prefix=/usr --with-gtk=3.0 --disable-nls
HIME 目前所提供的編譯選項如下:
--prefix=PREFIX 指定安裝路徑。預設為 /usr/local
--with-gtk=2.0|3.0 要以 GTK2+ 還是 GTK3+ 來編譯 HIME。預設為 2.0。
--disable-nls 不編譯翻譯檔,目前預設介面為繁體中文。
--disable-xim 不使用 XIM。
--disable-system-tray 不使用 System Tray。
--disable-tsin 不使用詞音。
--disable-gtk2-im-module 不編譯 GTK2+ 輸入模組。預設為自動偵測。
--disable-gtk3-im-module 不編譯 GTK3+ 輸入模組。預設為自動偵測。
--enable-qt3-immodule 編譯 QT3 輸入模組。預設為自動偵測。
--disable-qt4-immodule 不編譯 QT4 輸入模組。預設為自動偵測。
--disable-anthy 不支援 anthy。預設為自動偵測。
--disable-chewing 不支援 chewing。預設為自動偵測。
--disable-appindicator 不支援 Ubuntu Unity Tray。預設為自動偵測。
--qt3-moc-path=PATH 指定 QT3 的 moc 指令的路徑。
--qt4-moc-path=PATH 指定 QT4 的 moc 指令的路徑。
--qt4-im-module-path=PATH 指定 QT4 輸入模組的安裝路徑。
開始編譯
接下來只要下達 make 就會開始編譯了。如果在編譯過程中遇到任何問題,請您不吝向我們回報:
make
如果編譯一切順利,您就可以開始測試/除錯 HIME 了。請參考下個章節的介紹;
或是把 HIME 安裝在系統裡,請參考下個步驟。
將 HIME 安裝至系統裡:
如果編譯的過程中沒出現任何問題,您可以利用以下指令把 HIME 安裝到系統裡:
make install
註:為了維護您系統的純淨度,請儘量利用系統的套件機制來安裝軟體。
自行用 ./configure && make && make install 來編譯軟體並將軟體直接安裝到您的系統裡
可能會搞亂您的系統並使得您的系統套件機制混亂。請戒而慎之。
自行打包 deb 套件:
為了確保您的系統的純淨度,在此強烈建議把 HIME 打包成 deb 套件後再用 dpkg 指令來安裝 hime 套件。
這在 HIME 裡這完全不是難事,只要先安裝好 fakeroot、debhelper,以及上文所寫的必需/選用套件,
然後執行以下指令即可生成 hime_0.9.9+git120115-1_amd64.deb 了:
sh distro/debian/gen-deb
然後用 dpkg 把它安裝起來即可:
dpkg -i hime_0.9.9+git120115-1_amd64.deb
自行打包 rpm 套件:
這部份由於筆者對 rpm 系列實在不熟,尚待強者補完。
測試 HIME:
HIME 還提供了一個小小 script 可以讓您不用將 HIME 安裝至系統裡,就能直接執行 HIME 並進行測試/除錯。
首先,請先安裝 gtk2.0-examples gtk-3-examples 這幾個套件,然後執行以下指令即可:
sh distro/dev-tools/scripts/test-hime
如果以上指令失效,您可能要稍加修改 distro/dev-tools/scripts/test-hime 才能讓這個小測試程式能夠動作。例:
GTK_2_DEMO_APP=leafpad ← 測試 GTK2+ 的程式。
您可以考慮在此指定為 leafpad 之類的 GTK2+ based 應用程式。
GTK_3_DEMO_APP=l3afpad ← 測試 GTK3+ 的程式。
您可以考慮在此指定為 l3afpad 之類的 GTK3+ based 應用程式。
GTK_QUERY_IMMODULES_2=/usr/lib/x86_64-linux-gnu/libgtk2.0-0/gtk-query-immodules-2.0 ←
gtk-query-immodules-2.0 這個指令的路徑。
GTK_QUERY_IMMODULES_3=/usr/lib/x86_64-linux-gnu/libgtk-3-0/gtk-query-immodules-3.0 ←
gtk-query-immodules-3.0 這個指令的路徑。
然後再執行一次 distro/dev-tools/scripts/test-hime 試試看。
不過這個小小 script 只能測試 XIM 及 GTK2+/3+ 輸入模組。
QT3/4 輸入模組還是只能安裝到系統裡後再行測試了。
回報問題:
如果您在測試 HIME 時發現了任何問題,請您不吝向我們回報問題。
為了能更快速釐清問題所在,建議您能詳述問題發生的步驟,如果可以,請先參考:如何有效地報告錯誤。
# http://www.chiark.greenend.org.uk/~sgta ... gs-tw.html
而在必要時,建議您在回報問題時,順便回報您的系統設定。
在 HIME 裡有一個小小的 script 可以顯示一些 HIME 的相關系統設定,請直接執行:
hime-env
然後,再把輸出的資訊貼上來即可。
善用 coredump 資訊
在 Linux 裡,如果程式當掉了的話,系統可以把當時記憶體內容 dump 成檔案以便於日後除錯。
但在 Debian/Ubuntu 裡,因為這些除錯檔可能會佔上硬碟很大的空間,所以預設上這個功能是被關閉的。
如果您想打開這個功能,請設定 /etc/security/limits.conf 如下:
# <domain> <type> <item> <value>
* hard core 409600
* soft core 102400
其中的 <domain> 指的是使用者名稱;
<type> 中的 hard 指的是『系統限制大小』;soft 指的是『使用者預設大小』;
<item> 指的是類別;
<value> 指的是檔案限制大小,不想限制的話可在此填上 unlimited。
請 man limits.conf 以取得更多詳盡資訊。
設定完成後,登出登入後即可生效。
之後,如果您在執行 HIME 的期間發生了什麼問題而當掉了,您應該可以看到如下的錯誤訊息:
程式記憶體區段錯誤 (core dumped)
然後會在執行 HIME 的目錄下生成 core 這個檔案。您可以提交這個檔案以利於除錯。
不過,這個檔案包含了您的記憶體的資料,提交這個檔案可能會引發安全及個人隱私上的隱憂。
如果您會使用 gdb 的話,建議您自行用 gdb 載入這個檔案並 backtrace 後提交追蹤後的資訊方為上策。
參與 HIME
您不需要是箇中高手才能加入 HIME 開發團隊,我們需要的只是您肯試著捲起袖子幫忙。
我們 HIME 開發團隊的成員其實都只是在修改各自自己感興趣的地方,所以時時期待能有新血加入。
HIME 開發團隊中有個新成員是高中生,這是他第一次接觸 C 語言,也是第一次開發 GTK 程式。
讓 HIME 能支援 Ubuntu 的 Unity Tray 就是他的大作喔!
而對於 HIME 團隊而言,其實只要您肯幫忙測試推廣回報問題,對我們就是莫大的助益。
請立即加入 IRC 頻道 #hime@freenode.net 吧!就算上來聊天哈啦也好。
但其實只要您肯試用看看 HIME,我們 HIME 團隊就感到非常榮幸了。
我們衷心期望您立即下載測試使用 HIME 吧!謝謝!