aMsn 是 Linux 平台下一款功能強大的 MSN 即時通訊工具。自 0.95 版本發布後,它支援攝影機傳輸與檔案傳輸等功能,體驗遠勝於 gaim。本文將詳細記錄在 Fedora Core 3 環境下從零開始編譯安裝 aMsn 的完整過程,特別針對中文輸入這一難點提供解決方案。
在開始之前,請確備齊以下檔案與工具:
將上述所有檔案下載後,放在 /home 目錄下。
為避免版本衝突,建議先卸載系統自帶的 Tcl 和 Tk:
[root@localhost ~]# rpm -qa | grep tcl tcl8.4***** [root@localhost ~]# rpm -e tcl [root@localhost ~]# rpm -qa | grep tk tk8.4***** [root@localhost ~]# rpm -e tk
若卸載 Tcl 時提示有其他套件依賴於它,且這些套件對你而言不重要,可先將其移除;否則可使用 rpm -e --nodeps tcl 強制卸載。
[root@localhost home]# tar xvzf tcl8.5a3-src.tar.gz [root@localhost home]# tar xvzf tk8.5a3-src.tar.gz
在編譯 Tcl/Tk 之前,需要先套用 jserv 提供的 XIM 補丁:
[root@localhost home]# patch -p0 < tk-cvs-xim-fixes.diff
此補丁主要修改了兩個檔案:
generic/tkEvent.c:在 InvokeInputMethods 方法中,將 XFilterEvent 的觸發條件限定於 KeyPress 和 KeyRelease 事件,確保中文輸入法事件能被正確處理。unix/tkUnixEvent.c:調整 X 事件佇列的轉移邏輯,讓 KeyPress 和 KeyRelease 事件在 Tk_HandleEvent 中進行過濾,而非在此處直接丟棄,從而讓 Tk 的焦點管理代碼能正確轉向這些事件。[root@localhost home]# cd tcl8.5a3 [root@localhost home]# cd unix [root@localhost home]# ./configure --prefix=/usr \ --enable-gcc \ --disable-threads \ --disable-shared [root@localhost home]# make clean [root@localhost home]# make [root@localhost home]# make install
[root@localhost home]# cd ../tk8.5a3 [root@localhost home]# cd unix [root@localhost home]# ./configure --prefix=/usr \ --enable-gcc \ --disable-threads \ --disable-shared \ --enable-xft \ --disable-symbols [root@localhost home]# make clean [root@localhost home]# make [root@localhost home]# make install
以下兩個連結非常重要,請務必執行:
[root@localhost home]# ln -s /usr/bin/wish8.5 /usr/bin/wish [root@localhost home]# ln -s /usr/bin/tclsh8.5 /usr/bin/tclsh
[root@localhost home]# tar xvzf amsn-0.95.tar.gz [root@localhost home]# cd amsn-0.95 [root@localhost home]# ./configure --with-tcl=/usr/lib && make clean && make
編譯完成後,即可運行 aMsn,大功告成!
aMsn 開發語言為 Tcl/Tk,對中文的支援本身並非強項。0.95 版本需要 Tcl/Tk 8.4 以上版本,因此舊版的 Tcl/Tk 8.3 XIM 補丁已不再適用。套用上述 jserv 的補丁是解決中文輸入問題的關鍵步驟。在整個安裝過程中,如遇編譯錯誤,請根據錯誤訊息搜尋並安裝對應的依賴套件。