2007年9月1日 星期六

解決amsn的傳檔問題

在Ubuntu裡有很多MSN client可以使用,但是各有各的優缺點。而個人試用過後,覺得amsn 0.97RC1以後的版本,不管在功能與介面跟MSN Messanger都很相似,使用起來也比較順手。amsn 0.97RC1目前只有source package可以安裝,所以必須自己手動compile跟install,而為了解決中文輸入的問題,需要的Tcl/Tk也必須安裝8.5以上版本。相關的安裝方式在網路上已有人詳述。但是,amsn 0.97RC1有一個問題,就是傳輸稍大的檔案時,會很容易無故斷線。為了解決這個問題,必須將Tcl/Tk升級到最新版的8.5a7,另外amsn也必須使用最新的svn版的source code來編譯。以下是安裝步驟的簡單紀錄:
  1. 先安裝svn client與cvs client:
    sudo apt-get install subversion
    sudo apt-get install cvs
  2. 由於Ubuntu 7.04內建的Tcl/Tk為8.3,而amsn在編譯階段會檢查版本,所以必須先安裝8.4版
  3. 安裝必要相依套件:
    sudo apt-get install libxft-dev
    sudo apt-get install imlib11 sox libpng12-0 docker tcltls python libc6 libgcc1 libice6 libjpeg62 libsm6 libstdc++6 libx11-6 zlib1g
  4. 下載cvs版的Tcl/Tk
    1. Tcl:
      cvs -z3 -d:pserver:anonymous@tcl.cvs.sourceforge.net:/cvsroot/tcl co -P tcl
    2. Tk:
      cvs -z3 -d:pserver:anonymous@tktoolkit.cvs.sourceforge.net:/cvsroot/tktoolkit co -P tk
  5. 安裝Tcl cvs版:
    1. 進入下載的cvs版Tcl的unix目錄
    2. 執行以下指令:
      ./configure --with-x --enable-xft --enable-threads
      make
      sudo make install
      sudo ln -f -s /usr/local/lib/tclConfig.sh /usr/local/lib/tcl8.5/
  6. 安裝Tk svc版:
    1. 進入下載的cvs版Tk的unix目錄
    2. 執行以下指令:
      ./configure --with-tcl=/usr/local/lib/tcl8.5/ -with-x --enable-xft -enable-threads
      make
      sudo make install
      sudo ln -f -s /usr/local/lib/tkConfig.sh /usr/local/lib/tk8.5/
      注意:一定要加–enable-xft參數,否則在字型的顯示與切換會有問題
  7. 設定amsn的執行環境:由於amsn是透過Tcl的wish模組來執行,所以也必須在安裝完新版的Tcl/Tk時,設定好新的wish路徑。先用
    whereis wish
    找出最新版的wish的位置,一般來說Ubuntu應該會是在/usr/local/bin/wish8.5,然後用以下指令設定路徑
    sudo ln -f -s /usr/local/bin/wish8.5 /usr/bin/wish
  8. 編譯amsn:
    1. 下載svn版amsn:
      svn co https://amsn.svn.sourceforge.net/svnroot/amsn/trunk/amsn
    2. 進入下載的amsn目錄,並用以下指令編譯:
      ./configure --with-tcl=/usr/local/lib/tcl8.5/ --with-tk=/usr/local/lib/tk8.5/
      make clean
      make
      編譯完成之後,可以用
      sudo make install
      安裝,或是用
      make deb
      來產生.deb檔,再用deb檔安裝,詳細的安裝資訊可以參考INSTALL.TXT
  9. 安裝完畢之後,可以安裝libsnack2套件來增加Tcl/Tk對於聲音功能的支援;另外在啟動的時候,如果遇到需要安裝TLS套件的錯誤訊息,請安裝tcltls套件,並在安裝後修改 /usr/lib/tls1.50/pkgIndex.tcl。將裡面的1.5改成1.50,然後存檔再重新啟動amsn。
心得:amsn svn版+Tcl/Tk 8.5a7 cvs版,目前的確可以解決傳大檔案斷線的問題,而且使用的記憶體也比之前的amsn 0.97RC1少蠻多的。
P.S: amsn 0.97RC1 + Tcl/Tk 8.5a7 cvs版會無法啟動

1 則留言:

Heero 提到...

昨晚測試結果:amsn 0.97b-svn9010版 + 最新Tcl/Tk 8.5a7會出現無法load TkCximage模組的錯誤訊息,然後無法啟動;但是同一版本的amsn + Tcl/Tk 8.5a6 or 稍舊的a7是可以正常無誤的執行