wine 版本要求,越新越好,我用的 1.7.55,目前最新是1.8rc2。windows
删除或者备份你的 ~/.wine,若是你以前运行过 wine 的话。由于涉及到少许配置,尽可能不要让之前的环境干扰你。api
配置 Wine
运行 winecfg,在“应用程序”页签底部,“Windows版本”,选择为"8.1"。8.0可能也是能够的,但我选的是8.1。浏览器
设置为 windows 8.1,打开全部外部连接,好比 qq 空间等,会使用内置的 IE 浏览器(gecko win32 引擎)。若是不喜欢这个行为,能够用 winecfg 修改成"Windows XP",增长一个 QQProtect.exe 设置,将其单独设置为 "Windows 8.1" 便可。bash
安装 QQ 轻聊版
下载安装
下载 QQ7.7Light.exe,有官方去广告版咱们就用官方去广告版好了。去官方网站下载。别人作的我信不过。ide
安装命令:函数
WINEDEBUG=-all wine ./QQ7.7Light.exe字体
加 WINEDEBUG=-all 的目的是避免安装过程当中的各类调试信息和 warning 信息,由于不必看。网站
耐心等待,直到安装完成。(最后的组件注册时间会比较长,耐心等待)。安装过程无任何注意事项。ui
安装完成,QQ 登陆窗口出现,先退出便可,由于这时候是没法输入的(咱们须要替换几个 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
将下载的两个dll拷贝到此处。
修改注册表
vi ~/.wine/user.reg
添加:
[Software\\Wine\\DllOverrides] 1447325077 6869640
#time=1d11d37208b6b08
"*iphlpapi"="native"
"*riched20"="native,builtin"
"*qcap"=""
"txplatform.exe"=""
"txupd.exe"=""
说明
禁用 qcap 的缘由是“禁用本地摄像头”(若是有的话),由于 wine 目前的摄像头处理跟 QQ 所须要调用的接口仍有差距,本地摄像头打开会崩溃,结果是视频聊天时若是使用了本地摄像头会崩溃。禁用后,虽然不能使用本地的视频,但远程的视频能够正常使用。这个问题,能够经过修改wine的代码来搞定。(有时间再搞吧)。
替换 riched20.dll,是为了让“登陆对话框能够输入”。
替换 iphlpapi.dll,是避免登陆后的崩溃退出。
禁用 txplatform.exe,是由于这个进程在 wine QQ 退出后不退出,对于 Windows 却是无所谓,对于 Linux 来讲,这意味着后台跑着一堆 wine 进程。
禁用 txupd.exe,是由于它在后台按期检查更新时会偶发崩溃,不影响使用,但总弹“wine 崩溃对话框”也是很差的。
替换字体
若是不使用 SimSun 字体,其实不必使用 simsun,更不必使用什么 CoreFont
wine 的字体位于 /usr/share/wine/fonts/ 我只保留了 DejaVu 系列 ttf 字体和 SourceHanSansCN-Normal.otf,对于中文环境来讲已经足够了。
由于 Windows 下的软件字体调用比较乱,有时候会 fallback 到 SimSun 或者“宋体”,替换的目的是“当软件请求宋体时,使用咱们的替代字体”,这能够解决到几乎全部的"中文方框问题"。若是不作替换(也没有使用 simsun),qq 的某些界面字体可能会显示成“方框”。
替换方法是:
找到 ~/.wine/user.reg 中的 [Software\\Wine\\Fonts\\Replacements],若是没有就本身加入。
[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"
后面的字提名按照你的实际状况来写。记得之后不用再装 simsun 或者什么 winetricks corefont 了,这个方法适用于全部字体显示为“方框”的状况,好比“网易云音乐”客户端。
运行QQ
cd ~/.wine/drive_c/Program Files/Tencent/QQLite/Bin
WINEDEBUG=-all wine ./QQ.exe
若是你系统的 wine 会自建菜单项,也可使用菜单项运行。
保留环境
wine 能够经过 WINEPREFIX 变量保留多个 wine 环境。
mv ~/.wine QQLite
cd QQLite
添加一个脚本“qq”,内容以下:
#!/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 这个目录,之后能够放在任何地方运行。视频单向,语音双向,演示桌面等都是能够正常使用的。
残留问题
理论上这些能够经过修改 wine 代码解决
不能保存密码和自动登陆。
密码输入框有点难点,用弹出小键盘输入或者轮换点击帐号密码框1,2次就能够输入了。
本地摄像头被禁用(暂时的,之后都会好的)
某些窗口,好比“文件列表窗口”不接受窗口管理器管理,点开后可能“X”不掉,偶尔能够用“系统任务栏”关闭窗口,无碍,少点就能够了,若是 Hang 了能够退出从新登陆。
离线后没法再上线,只能退出从新登陆。
其余各类小问题。
若是只是正常的使用聊天功能,一成天加休眠等应该都没什么问题,我还没遇到拖慢系统,崩溃,没法退出等问题。
PS:Wine (“Wine Is Not an Emulator” 的递归缩写)是一个可以在多种 POSIX-compliant 操做系统(诸如 Linux,Mac OSX 及 BSD 等)上运行 Windows 应用的兼容层。另外英语单词wine是葡萄酒的意思。Wine (Wine Is Not an Emulator)[即Wine不是一个模拟器]是一个在Linux和UNIX之上的,Windows 3.x和 Windows APIs的实现。注意,Wine不是Windows模拟器,而是运用API转换技术实作出Linux对应到Windows相对应的函数来调用DLL以运行Windows程序。Wine能够工做在绝大多数的UNIX版本下,包括Linux, FreeBSD, 和 Solaris。另外,也有适用于Mac OS X的Wine程序。Wine不须要Microsoft Windows, 由于这是一个彻底由百分之百的免费代码组成的。若是有可利用的副本的话,它也能够随意地使用本地系统的DLLs。Wine的发布是彻底公开源代码的,而且是免费发行的。(基于LGPL发布:GNU宽通用公共许可证)关于Wine的真正含义,有人对“Wine Is Not an Emulator”的说法表示质疑,认为”非模拟器“的解释不过是一种娱乐性的说法,Wine的真实意思应当是是Windows Enviroment的缩写,即WinE。