wine编译安装及中文字体替换

wine

1. wine编译与安装,严格安装此顺序,编译安装32位和64位wine,分别支持32位和64位windows应用。

sudo dpkg --add-architecture i386
deb os dependency, 64-bit:
sudo apt-get install -y  flex bison libfreetype6-dev libxcursor-dev libxi-dev libxrandr-dev libxinerama-dev libxcomposite-dev libosmesa6-dev libpcap-dev libasound2-dev libpulse-dev libdbus-1-dev libfontconfig1-dev libfreetype6-dev libgnutls28-dev libinotify-ocaml-dev libjpeg-dev libpng-dev libtiff5-dev libunwind-dev libx11-dev libxml2-dev libxslt1-dev libncurses5-dev libgstreamer-plugins-base1.0-dev libmpg123-dev libosmesa6-dev libsdl2-dev libudev-dev libvulkan-dev libcapi20-dev liblcms2-dev libcups2-dev libgphoto2-dev libsane-dev libglu1-mesa-dev libgsm1-dev libgssapi-krb5-2 libkrb5-dev libldap2-dev libnet1-dev ocl-icd-opencl-dev libpcap-dev libusb-1.0-0-dev libv4l-dev libopenal-dev libxcomposite-dev   --allow-downgrades --fix-missing

32-bit:
sudo apt-get install libc6-dev-i386 libx11-6:i386 libx11-dev:i386 libfreetype6:i386 libfreetype6-dev:i386 linux-libc-dev=4.4.0-21.37kord1kylin20171101  libxcursor-dev:i386 libxi-dev:i386 libxrandr-dev:i386  libxinerama-dev:i386 libxcomposite-dev:i386 libglu1-mesa-dev:i386 libosmesa6-dev:i386 ocl-icd-opencl-dev:i386 libdbus-1-dev:i386 libsane-dev:i386 libv4l-dev:i386 libgphoto2-dev:i386 liblcms2-dev:i386 libpulse-dev:i386 libgstreamer-plugins-base1.0-dev:i386 libudev-dev:i386 libcapi20-dev:i386 libcups2-dev:i386 libfontconfig1-dev:i386 libkrb5-dev:i386 libtiff5-dev:i386 libxslt1-dev:i386 libldap2-dev:i386 libvulkan-dev:i386 libopenal-dev:i386 libmpg123-dev:i386 libgsm1-dev:i386  libhbalinux-dev:i386  libncurses5-dev:i386 libpulse-dev:i386  libgnutls-dev:i386 nettle-dev:i386 libidn11-dev:i386 libsdl2-dev:i386  libsane1:i386 libegl1-mesa-dev:i386 libgles2-mesa-dev:i386 libmirclient-dev:i386  libxkbcommon-dev:i386  libglib2.0-0:i386 libgphoto2-6:i386 libldap-2.4-2:i386 libpulse0:i386 libxml2:i386 libasound2-plugins:i386 libexpat1:i386 libx11-6:i386 libx11-dev:i386 

git clone git://source.winehq.org/git/wine.git
mkdir
cd wine64
../configure --enable-wine64
make -j 4

cd ../wine32
PKG_CONFIG_PATH=/usr/lib/pkgconfig ../configure --with-wine64=../wine64
make -j 4

cd wine32
make install

cd wine64
make install

2. wine配置工具winetricks安装

sudo apt-get remove winetricks
wget  https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
sudo mv -v winetricks /usr/local/bin

3. wine安装及卸载应用命令。WINEARCH指定应用是32位还是64位。WINEPREFIX指定应用安装路径,默认是/home/qz/.wine/。wine默认是wine64。LC_ALL=zh_CN.UTF-8指定应用使用简体中文字符集。

WINEARCH=win32 WINEPREFIX=/home/qz/wine/wechat LC_ALL=zh_CN.UTF-8 wine WeChatSetup.exe
wine32 uninstaller
wine64 uninstaller

默认的路径是这样,虚拟的c盘是:~/.wine/drive_c

z@ubuntu:~/.wine$ pwd
/home/qz/.wine
qz@ubuntu:~/.wine$ ls
dosdevices  drive_c  system.reg  userdef.reg  user.reg

4. 字体替换:

一些中文windows应用使用的字体,通常不是免费商用的。可以在wine里使用字体替换方法解决(适用于windows应用硬编码指定了字体文件)或是windows字体连接功能。不同的linux发行版使用不同的字体,所以字体替换没有进入社区代码,但是社区提供patch [介绍][1];也可以使用regedit修改注册表。

注册表替换方法:

4.1 使用wine的替换字体功能

首选定义字体,默认搜索路径为~/.wine/drive_c/windows/Fonts/和/usr/share/fonts/,保证任意一个目录下保存有字体文件,本例是wqy-microhei.ttc,文泉驿黑体,开源可以免费商用。

/usr/share/fonts/truetype/wqy/wqy-microhei.ttc 
~/.wine/drive_c/windows/Fonts/wqy-microhei.ttc 
#fonts.reg
REGEDIT4
#定义字体
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Fonts]
"WenQuanYi Micro Hei"="wqy-microhei.ttc"

#当使用到例如宋体等字体时,wine把宋体其替换为文泉驿黑体
[HKEY_CURRENT_USER\Software\Wine\Fonts\Replacements]
"System"="WenQuanYi Micro Hei"
"Sans Serif"="WenQuanYi Micro Hei"
"Arial"="WenQuanYi Micro Hei"
"Arial Black"="WenQuanYi Micro Hei"
"Arial CE,238"="WenQuanYi Micro Hei"
"Arial CYR,204"="WenQuanYi Micro Hei"
"Arial Greek,161"="WenQuanYi Micro Hei"
"Arial TUR,162"="WenQuanYi Micro Hei"
"Microsoft Sans Serif"="WenQuanYi Micro Hei"
"Microsoft YaHei"="WenQuanYi Micro Hei"
"微软雅黑"="WenQuanYi Micro Hei"
"MS Sans Serif"="WenQuanYi Micro Hei"
"MS Shell Dlg"="WenQuanYi Micro Hei"
"MS Shell Dlg 2"="WenQuanYi Micro Hei"
"Tahoma"="WenQuanYi Micro Hei"
"Tahoma Bold"="WenQuanYi Micro Hei"
"SimSun"="WenQuanYi Micro Hei"
"SimHei"="WenQuanYi Micro Hei"
"SimKai"="WenQuanYi Micro Hei"
"SimFang"="WenQuanYi Micro Hei"
"宋体"="WenQuanYi Micro Hei"
"新細明體"="WenQuanYi Micro Hei"
"MingLiU"="WenQuanYi Micro Hei"
"PMingLiU"="WenQuanYi Micro Hei"
"DFKai-SB"="WenQuanYi Micro Hei"
"FangSong"="WenQuanYi Micro Hei" 
"KaiTi"="WenQuanYi Micro Hei"
"Microsoft JhengHei"="WenQuanYi Micro Hei"
"NSimSun"="WenQuanYi Micro Hei"
"Lucida Sans Unicode"="WenQuanYi Micro Hei"
"Courier New"="WenQuanYi Micro Hei"
"Courier New CE,238"="WenQuanYi Micro Hei"
"Courier New CYR,204"="WenQuanYi Micro Hei"
"Courier New Greek,161"="WenQuanYi Micro Hei"
"Courier New TUR,162"="WenQuanYi Micro Hei"
"FixedSys"="WenQuanYi Micro Hei"
"Helv"="WenQuanYi Micro Hei"
"Helvetica"="WenQuanYi Micro Hei"
"Times"="WenQuanYi Micro Hei"
"Times New Roman CE,238"="WenQuanYi Micro Hei"
"Times New Roman CYR,204"="WenQuanYi Micro Hei"
"Times New Roman Greek,161"="WenQuanYi Micro Hei"
"Times New Roman TUR,162"="WenQuanYi Micro Hei"
"Tms Rmn"="WenQuanYi Micro Hei"

由于不知道windows都使用了哪几种字体,所以多列了些要替换的字体,可以酌情增删。可以把以上保存为reg文件,如fonts.reg,使用winetricks或regedit注册,注意WINEPREFIX设置。每个WINEPREFIX模拟一个C盘。通过将多个应用安装到一个模拟C盘,winetricks或者winecfg或者regedit的配置对这个模拟C盘下的所以应用有效。也可以一个应用对应一个模拟c盘。

4.2 使用Windows支持的字体链接

当一种字体中不存在某个字符时,可以尝试从另一个字体文件中寻找相应的字符。通过注册表指定代替的字体以达到wine程序使用linux已经安装的字体的目录(/usr/share/fonts/),这种方法适用于windows应用没有硬编码指定字体。把注册文件fonts.reg中的[HKEY_CURRENT_USER\Software\Wine\Fonts\Replacements]替换为[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink]即可。

几种操作方式总结:


winetricks导入注册表
regedit fonts.reg
WINEPREFIX=/home/qz/wine/wechat regedit fonts.reg

操作系统为英文时,需要设置中文字符集,再进行其他操作

locale -a
sudo vi /etc/locale.gen
zh_CN.UTF-8
sudo locale-gen zh_CN.UTF-8

下载并安装winetricks

wget http://www.kegel.com/wine/winetricks
chmod +x winetricks
sudo mv winetricks /usr/local/bin
// 或者
wget http://www.kegel.com/wine/winetricks
sudo apt-get install cabextract
chmod +x winetricks

references:
https://wiki.winehq.org/Main_Page
https://source.winehq.org/git/wine.git/
https://github.com/wine-mirror/wine
[1]: https://wiki.winehq.org/Font_Replacements#column-one "Fonts Replacements"
https://bugs.winehq.org/show_bug.cgi?id=13829
https://wiki.winehq.org/Wine_User's_Guide

stay hungry, stay foollish, dos is changing

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335