詳解Wine+QQ輕聊版7.7的安裝步驟
準(zhǔn)備 Wine 環(huán)境
wine 版本要求,越新越好,我用的 1.7.55,目前最新是1.8rc2。
刪除或者備份你的 ~/.wine,如果你之前運(yùn)行過(guò) wine 的話。因?yàn)樯婕暗缴倭颗渲茫M量不要讓以前的環(huán)境干擾你。
配置 Wine
運(yùn)行 winecfg,在“應(yīng)用程序”頁(yè)簽底部,“Windows版本”,選擇為"8.1"。8.0可能也是可以的,但我選的是8.1。
設(shè)置為 windows 8.1,打開(kāi)所有外部鏈接,比如 qq 空間等,會(huì)使用內(nèi)置的 IE 瀏覽器(gecko win32 引擎)。如果不喜歡這個(gè)行為,可以用 winecfg 修改為"Windows XP",增加一個(gè) QQProtect.exe 設(shè)置,將其單獨(dú)設(shè)置為 "Windows 8.1" 即可。
安裝 QQ 輕聊版
下載安裝
下載 QQ7.7Light.exe,有官方去廣告版我們就用官方去廣告版好了。去官方網(wǎng)站下載。別人做的我信不過(guò)。
安裝命令:WINEDEBUG=-all wine ./QQ7.7Light.exe
加 WINEDEBUG=-all 的目的是避免安裝過(guò)程中的各種調(diào)試信息和 warning 信息,因?yàn)闆](méi)必要看。
耐心等待,直到安裝完成。(最后的組件注冊(cè)時(shí)間會(huì)比較長(zhǎng),耐心等待)。安裝過(guò)程無(wú)任何注意事項(xiàng)。
安裝完成,QQ 登錄窗口出現(xiàn),先退出即可,因?yàn)檫@時(shí)候是無(wú)法輸入的(我們需要替換幾個(gè) DLL 才行)。
替換 DLL
首先下載 DLL :riched20.dll 和 iphlpapi.dll。
◆riched20.dll 下載win7版本的
◆iphlpapi.dll 下載 windows 2008版本的
然后替換 DLL:
- cd .wine/drive_c/windows/system32
- mv iphlpapi.dll iphlpapi.dll.bak
- mv riched20.dll riched20.dll.bak
將下載的兩個(gè)dll拷貝到此處。
修改注冊(cè)表
- vi ~/.wine/user.reg
添加:
- [Software\\Wine\\DllOverrides] 1447325077 6869640
- #time=1d11d37208b6b08
- "*iphlpapi"="native"
- "*riched20"="native,builtin"
- "*qcap"=""
- "txplatform.exe"=""
- "txupd.exe"=""
說(shuō)明
1.禁用 qcap 的原因是“禁用本地?cái)z像頭”(如果有的話),因?yàn)?wine 目前的攝像頭處理跟 QQ 所需要調(diào)用的接口仍有差距,本地?cái)z像頭打開(kāi)會(huì)崩潰,結(jié)果是視頻聊天時(shí)如果使用了本地?cái)z像頭會(huì)崩潰。禁用后,雖然不能使用本地的視頻,但遠(yuǎn)程的視頻可以正常使用。這個(gè)問(wèn)題,可以通過(guò)修改wine的代碼來(lái)搞定。(有時(shí)間再搞吧)。
2.替換 riched20.dll,是為了讓“登錄對(duì)話框可以輸入”。
3.替換 iphlpapi.dll,是避免登錄后的崩潰退出。
4.禁用 txplatform.exe,是因?yàn)檫@個(gè)進(jìn)程在 wine QQ 退出后不退出,對(duì)于 Windows 倒是無(wú)所謂,對(duì)于 Linux 來(lái)說(shuō),這意味著后臺(tái)跑著一堆 wine 進(jìn)程。
5.禁用 txupd.exe,是因?yàn)樗诤笈_(tái)定期檢查更新時(shí)會(huì)偶發(fā)崩潰,不影響使用,但總彈“wine 崩潰對(duì)話框”也是不好的。
替換字體
如果不使用 SimSun 字體,其實(shí)沒(méi)必要使用 simsun,更沒(méi)必要使用什么 CoreFont。
wine 的字體位于 /usr/share/wine/fonts/ ,我只保留了 DejaVu 系列 ttf 字體和 SourceHanSansCN-Normal.otf,對(duì)于中文環(huán)境來(lái)說(shuō)已經(jīng)足夠了。
因?yàn)?Windows 下的軟件字體調(diào)用比較亂,有時(shí)候會(huì) fallback 到 SimSun 或者“宋體”,替換的目的是“當(dāng)軟件請(qǐng)求宋體時(shí),使用我們的替代字體”,這可以解決到幾乎所有的"中文方框問(wèn)題"。如果不做替換(也沒(méi)有使用 simsun),qq 的某些界面字體可能會(huì)顯示成“方框”。
替換方法是:
找到 ~/.wine/user.reg 中的 [Software\\Wine\\Fonts\\Replacements],如果沒(méi)有就自己加入。
- [Software\\Wine\\Fonts\\Replacements] 1448856028 1650250
- #time=1d12b23a623844a
- "NSimSun"="\x601d\x6e90\x9ed1\x4f53 CN Normal"
- "SimSun"="\x601d\x6e90\x9ed1\x4f53 CN Normal"
- "\x5b8b\x4f53"="\x601d\x6e90\x9ed1\x4f53 CN Normal"
- "\x65b0\x5b8b\x4f53"="\x601d\x6e90\x9ed1\x4f53 CN Normal"
后面的字提名按照你的實(shí)際情況來(lái)寫。記得以后不用再裝 simsun 或者什么 winetricks corefont 了,這個(gè)方法適用于所有字體顯示為“方框”的情況,比如“網(wǎng)易云音樂(lè)”客戶端。
運(yùn)行QQ
- cd ~/.wine/drive_c/Program Files/Tencent/QQLite/Bin
- WINEDEBUG=-all wine ./QQ.exe
如果你系統(tǒng)的 wine 會(huì)自建菜單項(xiàng),也可以使用菜單項(xiàng)運(yùn)行。
保留環(huán)境
wine 可以通過(guò) WINEPREFIX 變量保留多個(gè) wine 環(huán)境。
- mv ~/.wine QQLite
- cd QQLite
添加一個(gè)腳本“qq”,內(nèi)容如下:
- #!/bin/bash
- EXEPATH=$(cd `dirname $0`; pwd)
- export WINEPREFIX=$EXEPATH
- export WINEDEBUG=-all
- export LANG=zh_CN.UTF-8
- export LC_ALL=zh_CN.UTF-8
- cd "$EXEPATH/drive_c/Program Files/Tencent/QQLite/Bin"
- wine QQ.exe
自己保存好 QQLite 這個(gè)目錄,以后可以放在任何地方運(yùn)行。視頻單向,語(yǔ)音雙向,演示桌面等都是可以正常使用的。
殘留問(wèn)題
理論上這些可以通過(guò)修改 wine 代碼解決。
◆不能保存密碼和自動(dòng)登錄。
◆密碼輸入框有點(diǎn)難點(diǎn),用彈出小鍵盤輸入或者輪換點(diǎn)擊賬號(hào)密碼框1,2次就可以輸入了。
◆本地?cái)z像頭被禁用(暫時(shí)的,以后都會(huì)好的)。
◆某些窗口,比如“文件列表窗口”不接受窗口管理器管理,點(diǎn)開(kāi)后可能“X”不掉,偶爾可以用“系統(tǒng)任務(wù)欄”關(guān)閉窗口,無(wú)礙,少點(diǎn)就可以了,如果 Hang 了可以退出重新登錄。
◆離線后無(wú)法再上線,只能退出重新登錄。
◆其他各種小問(wèn)題。
如果只是正常的使用聊天功能,一整天加休眠等應(yīng)該都沒(méi)什么問(wèn)題,我還沒(méi)遇到拖慢系統(tǒng),崩潰,無(wú)法退出等問(wèn)題。