liuspider 最后修訂于 2003年4月10日 版本 0.9.5
本文檔最新版可以在 http://xbkconfp.cosoft.org.cn/linuxxdict.php 得到。
wine 的最新版本是 20030408 ,使用這個 wine 可以近乎完美的使用 金山詞霸 2003!
下面將介紹如何可以使用 金山詞霸 2003 的過程。
首先,解決 wine 本身,請參閱 《Wine 的安裝和配置(實現(xiàn)中文輸入法)》:
然后修改 wine 的配置文件并復(fù)制需要的 DLL
復(fù)制 幾個windows dll :他們是 comctl32.dll, commdlg.dll, commctrl.dll,shell.dll,shell32.dll,shfolder.dll,ole32.dll,oleaut32.dll,rpcrt4.dll 位于 你的真實windows 目錄下的 system 下,將他們復(fù)制到你的虛擬windows目錄下的 system32下。可以使用 wine 工具包 中的 install_win_lib 來自動完成這個工作。格式如下:
./install_win_lib /mnt/c /
其中,第一個參數(shù)是你的 真實windows 所在的掛載點 (mandrake 的默認(rèn)掛載位置為 /mnt/win_c),第二個參數(shù)是你在剛才設(shè)置的 fake windows 的c盤所在的目錄。
注意:這幾個文件必須是 win98 版本的!如果你手頭沒有,可以上 google 找到。
修改 wine 的 config 文件:打開 ~/.wine/config ,在某個空行中,插入以下內(nèi)容(可以在 [DllOverrides] section 的后面的空行中插入)
[AppDefaults\\setup.exe\\x11drv]
"Managed" = "N"
"Desktop" = "800x600"
[AppDefaults\\setup.exe\\DllOverrides]
"ole32" = "native"
"oleaut32" = "native"
"rpcrt4" = "native"
"comctl32" = "native"
"shell" = "native"
"shell32" = "native"
"shfolder" = "native"
[AppDefaults\\ikernel.exe\\x11drv]
"Managed" = "N"
"Desktop" = "800x600"
[AppDefaults\\ikernel.exe\\DllOverrides]
"ole32" = "native"
"oleaut32" = "native"
"rpcrt4" = "native"
[AppDefaults\\xdict.exe\\DllOverrides]
"commdlg" = "native"
"ole32" = "native"
[AppDefaults\\xdict.exe\\Version]
"Windows" = "win2000" ;關(guān)鍵所在
將 wine 工具包 中的 updatereg 放到 wine 源碼的根目錄中,并執(zhí)行他
./updatereg
如果你在后面執(zhí)行 金山詞霸 2003 的安裝程序時,得到找不到 ikernel.exe 的錯誤提示,那么就是因為少做了這一步。
安裝 金山詞霸 2003
現(xiàn)在,你有兩個選擇,如果你有他的安裝程序,那么強(qiáng)烈建議你在 linux 下安裝他,因為這樣 金山詞霸 2003 的絕大部分功能都是正常的;如果實在沒有,請?zhí)^這一部分,直接轉(zhuǎn)到 使用 金山詞霸 2003。
放入光盤,進(jìn)入 /mnt/cdrom 下運(yùn)行安裝程序:
cd /mnt/cdrom
wine setup.exe
此時會彈出兩個窗口,一個是歡迎畫面,和一個進(jìn)度條,當(dāng)這個進(jìn)度條到 100% 時,在第二個窗口(IKernel.exe)中就會出現(xiàn)安裝界面。
在選擇安裝目錄時,建議使用默認(rèn)位置,如果要自己指定,請指定一個不存在的目錄,否則安裝程序可能會 crash 掉。
安裝應(yīng)該沒有任何問題。只是在安裝結(jié)束后,那個 ikernel.exe 窗口可能不會自動消失,需要在某個 console 中輸入一下命令(不過一般可以自動退出的,等一會兒,如果還沒退出,再使用如下命令)
killall wine
killall wineserver
注意:每次運(yùn)行完一個windows程序后,稍等片刻,執(zhí)行以上兩句,再運(yùn)行其他 windows程序,可以免除很多麻煩的!
使用 金山詞霸 2003
現(xiàn)在你有了一個完全的 xdict 目錄了,我們假設(shè)其位于 /Program File/xdict 下面
如果你沒有在wine下安裝,那么需要手工安裝音標(biāo)字體。將位于 /Program File/xdict/fonts 目錄下的 4 個 ttf 復(fù)制到 你 虛擬C盤的 c:\windows\fonts 下
cp /Program\ File/xdict/* /windows/Fonts/
好,現(xiàn)在我們來試運(yùn)行
cd /Program\ File/xdict/
wine xdict.exe
你應(yīng)該可以看到熟習(xí)的畫面了,試著輸入一個單詞,按回車,看看解釋,如果你看到的英文,中文大部分正常,那么恭喜你。
效果圖:
單擊圖片,可看到原圖(1240x1024)
查找 spider 這個單詞
主菜單-> 專業(yè)詞庫
存在的問題
以下每一條后面括號中,BOTH 表示不論是否在linux 下安裝,都存在的問題,而 UNINSALLED 表示如果在 linux 下安裝,則不存在的問題。
從下面的列表可見,在linux 安裝的話,會解決很多問題的。
不能使用 主菜單=》設(shè)置,否則 xdict 會 crash 掉。補(bǔ)救方法:直接修改 xdict 目錄下的 ini 文件。下面是一份不完整的對應(yīng)表。(UNINSALLED)
文件名
功用
config.ini
設(shè)置程序的ID,一般不需要修改
dicts.ini
專業(yè)詞庫定義文件,不需要手工修改,可以通過使用 主菜單-> 專業(yè)詞庫 設(shè)置
Display.ini
顏色與字體設(shè)置
network.ini
網(wǎng)絡(luò)相關(guān)選項
ScrollWord.ini
ScrollWord 程序配置文件(不能正常運(yùn)行)
xdict.ini
主菜單->設(shè)置中的內(nèi)容就保存在此文件中
不能在 KDE ,GNOME 等程序中屏幕取詞,但在 xdict 的窗口中正常。(BOTH)
某些字符顯示的不正確,但是基本不影響正常使用。(UNINSALLED)
不能發(fā)音。盡管我可以使用 wine 流暢的運(yùn)行 Diablo II 以及 starcraft ,而且他們的聲音都正常,但是這個就是不行。 (UNINSALLED)
生詞本和背單詞都不能運(yùn)行。估計應(yīng)該是沒有通過 wine 安裝的原故。(UNINSALLED)
詞霸左邊單詞列表窗口中的字總是一片黑,雖然用鼠標(biāo)單擊一個,就可以好一個,但是一旦 xdict 窗口被別的應(yīng)用程序遮住,再回來時,又是黑的了。(UNINSALLED)
通過修改 xdict.ini 可以讓 xdict 使用大字體,但是,在 linux 下沒有任何改變。(BOTH)
字體不受 wine 中字體分辯率的控制。(UNINSALLED)
常見問題:
1. 開始安裝時,彈出錯誤信息:安裝 iKernel.exe 時發(fā)生錯誤...
答:存在正在運(yùn)行的其他 wine 的 setup 程序,試試將已經(jīng)啟動的其他 wine 關(guān)閉。如果看不到有正在運(yùn)行的,使用 killall,強(qiáng)行將 wine 進(jìn)程殺死。
注:
以上均在
mandrake 9.0 ,kde 3.0.3,gcc3.2;
gentoo 1.4rc_3, kde 3.1.1, gcc 3.2.1
下測試通過。
如果您有好的建議和、或修改意見,請不吝賜教 :)
修改歷史
2003年4月10日 版本 0.9.5 版
升級到 支持 金山詞霸 2003;增加常見問題部分。
2001年1月18日 0.9 版
指定在運(yùn)行xdict時,wine模擬 win2000,可以不需要刪除 xdict 目錄下的 CJKTL16.DLL;將 wine 的安裝和配置 獨立為 單獨一篇文章。
2002年12月5日 0.6 版
修改了安裝程序使用的dll,現(xiàn)在應(yīng)該不會再出現(xiàn) 對話框 被復(fù)蓋的情況了,而且安裝速度也比原來快了;
發(fā)現(xiàn)在安裝時不可以選擇 定制安裝。
2002年12月2日 0.5 版
修改了 configure 的參數(shù);添加 指定共享庫 位置的方法;增加設(shè)置虛擬 c 盤部分;加入安裝 金山詞霸 的部分;找到了 金山詞霸 不能啟動的關(guān)鍵原因;修改 存在問題 部分。
添加一個shell啟動腳本。 按照這個版本做,大部分人應(yīng)該可以成功運(yùn)行 xdict 了 :)