从源码安装 wine

最近想玩一下 wine,在 linux 里运行一些 windows 的软件,最初的需求是为了解决 windows 下的 zip 包 中文文件名乱码的问题,感觉为了这么一点小事就开个虚拟机太蛋疼了,也没有找到 linux 下的原生解决方案,开个新终端,生成 zh_CN.GB18030locale ,然后设置 LANG=zh_CN.GB18030LC_ALL=zh_CN.GB18030 用 unzip 命令解压,结果是… 该是乱码的还是乱码。

wine 在 debian sid 源中的版本太低,只有 1.0 ,而 wine-unstable 的版本只有 1.1 ,而实际上 wine 的稳定版已经到了 1.4 ,而开发版已经到了 1.5 ,我决定从源码安装 wine

首先下载源码:

git clone git://source.winehq.org/git/wine.git ~/wine-git
cd ~/wine-git

然后安装 wine

./configure
make depend
make
make install

可以根据 ./configuare 的输出,来安装依赖关系,也可以参考 wine 的 wiki

如果没有出错的话,就安装成功了。接下来,就是要解决中文乱码的问题,这里我并没有找到一个非常好的方法,不过至少找到一个可用的方法。

首先执行:

winecfg

如果 LANG 是中文的话,这时应该显示的是乱码,不要紧,等会就不是了。它会在 ~/.wine 下生成一些文件,我们就是要修改这写文件。 (PS:根据我最近的编译安装经验,已经不需要手动更改字体文件了,只要环境变量是中文,LANG=zh_CN.UTF-8,wine 会自己处理中文字体的问题)

编辑 ~/.wine/system.reg ,搜索 CurrentVersion\\Fonts 把它下面指定字体文件的地址全部换成文泉驿 微米黑的字体文件

"Courier"="Z:\\path\\to\\wqy-microhei.ttc"
"Marlett (TrueType)"="Z:\\path\\to\\wqy-microhei.ttc"
"MS Sans Serif"="Z:\\path\\to\\wqy-microhei.ttc"
"MS Serif"="Z:\\path\\to\\wqy-microhei.ttc"
"Small Fonts"="Z:\\path\\to\\wqy-microhei.ttc"
"Symbol (TrueType)"="Z:\\path\\to\\wqy-microhei.ttc"
"Tahoma (TrueType)"="Z:\\path\\to\\wqy-microhei.ttc"
"Tahoma Bold (TrueType)"="Z:\\path\\to\\wqy-microhei.ttc"

这里有两个地方,一个是 Windows 还有一个是 Windows NT ,保存退出,再运行 winecfg 就可以看见亲切的中文了。

我安装的程序 7z 在安装和使用时都没有乱码。 radmin 的客户端,在安装过程中有乱码,使用时没有乱码。总之,已经不影响使用了。

blog comments powered by Disqus