Ubuntu 下 Wine的安装与使用(以22.04为例)

原文:Ubuntu 下 Wine的安装与使用(以22.04为例)
安装

验证是否为64位架构

返回amd64

查看是否安装了32位架构

若显示i386则跳过此步,否则执行

再次检查

下载并添加 WineHQ 存储库密钥

根据需要选择需要使用的sources文件

使用官方的源

使用国内的源则编辑/etc/apt/sources.list.d/winehq-jammy.sources文件,在文件中写入以下内容

其他版本预计修改Suites以及.sources文件名中的jammy字段即可,版本代号可参考下图
sources

更新数据库

安装Wine

使用方法

将Windows的程序放到任意目录,并在终端进入该目录
执行wine安装或使用任意Windows程序

手册使用或安装需要.NET框架的程序会自动安装Wine Mono
mono

常见事项

字体缺失或排版错乱
    找到一台win电脑,找到C:/Windows/fonts/,右键排序方式类型,复制.ttf和.ttc文件到linux下并进入该目录。
    将ttf和ttc文件拷贝到linux下的/usr/share/fonts/文件夹中。
    找不到字体是因为ttf不全

段落格式错乱是因为ttc不全生成字体的索引信息:更新字体缓存:

系统默认语言不是中文的情况下的中文界面乱码问题可通过

的方式运行相应的程序解决

USB转串口对应的COM口可在~/.wine/dosdevices中通过ll指令查看对应的接口,如下串口使用的是COM33:
tty

USB转串口无法打开,需要配置好串口权限,可配置udev处理,具体操作流程如下:

在/etc/udev/rules.d创建rules文件(若想在已有的rules文件中写入则跳过此步骤)

在文件中添加以下内容

重新加载udev服务

重启udev服务

乱码问题:
链接:用wine运行程序出现中文乱码的解决方法
一、确认语言区域设置没有问题

如果安装的系统LANG不为zh-CN,那么wine运行程序的默认语种也不会是中文,这可能导致一部分乱码。
解决这个问题,用

env LANG=zh_CN.UTF-8 wine example.exe

1

运行程序
二、确认中文字体安装无误

区域设置没有问题了,但是有时对于特定字体的调用仍然会导致乱码,这时就需要对字体进行手动配置,下面提出几种平行的解决方法
1、如果不考虑开源与否以及授权问题的话,最简单的解决方式是去windows下的Windows\fonts目录下拷贝simsun.ttc或simsun.ttf到WINEPREFIX(如果你不知道这是什么,默认去找~/.wine这个目录)的/drive_c/windows/Fonts目录下。wine(1.8.2)可以直接识别该目录下面的字体而无需手动配置。注意这种方式的前提是之前没有对wine的字体进行配置,没有手动进行一些override。
2、有些人可能会喜欢直接在系统范围使用宋体,这种情况只需要在系统范围安装宋体即可,wine会自动识别。
A、给某个用户安装simsun 把simsum.ttc/simsum.ttf拷贝到Home目录下面的.fonts文件夹(注意要给字体合适的权限,用chmod 755 simsum.ttc授权),再cd到该目录执行

mkfontscale

1

即可。
B、给系统安装simsun

sudo mkdir /usr/share/fonts/winfonts
sudo cp simsun.ttc /usr/share/fonts/winfonts
sudo fc-cache -fv

1
2
3

注意如果直接给用户或系统安装simsun的话,可能会因为默认对simsun的渲染方式的问题导致在非wine的地方宋体显示相当难看。

3、配置wine regedit,fake字体。这是我在用的方式。下面提出两种方式来实现。
A、通过winetricks
执行winetricks,安装wqy字体,然后再选择fakechinese,这样可以强制让所有的中文字体用wqy字体来显示。
B、手动配置一下regedit(这里不用改[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink]的方法)

REGEDIT4

[HKEY_CURRENT_USER\Software\Wine\Fonts\Replacements]
"DFKai-SB"="Droid Sans Fallback"
"FangSong"="Droid Sans Fallback"
"KaiTi"="Droid Sans Fallback"
"Microsoft JhengHei"="Droid Sans Fallback"
"Microsoft YaHei"="Droid Sans Fallback"
"MingLiU"="Droid Sans Fallback"
"NSimSun"="Droid Sans Fallback"
"PMingLiU"="Droid Sans Fallback"
"SimHei"="Droid Sans Fallback"
"SimKai"="Droid Sans Fallback"
"SimSun"="Droid Sans Fallback"

1
2
3
4
5
6
7
8
9
10
11
12
13
14

把上面的内容写入tmp.reg文件,然后执行

wine regedit tmp.reg

1

其中”Droid Sans Fallback”是debian下的默认中文字体,自己也可以根据regedit下[HKEY_CURRENT_USER\Software\Wine\Fonts\Cache]下面有的字体来手动编辑。

至此,中文乱码的问题应该已经基本解决了。
三、解决字体显示问题

REGEDIT4
[HKEY_CURRENT_USER\Software\Wine\X11 Driver]
"ClientSideAntiAliasWithCore"="Y"
"ClientSideAntiAliasWithRender"="Y"
"ClientSideWithRender"="Y"

[HKEY_CURRENT_USER\Control Panel\Desktop]
"FontSmoothing"="2"
"FontSmoothingType"=dword:00000002
"FontSmoothingGamma"=dword:00000578
"FontSmoothingOrientation"=dword:00000001

1
2
3
4
5
6
7
8
9
10
11

把上面的内容写入tmp.reg文件,然后执行

wine regedit tmp.reg

1

注意如果显示的中文字体看起来有些“脏”的话,把”ClientSideWithRender”=”Y”的’Y’改为’N’

经过这些调整,wine的中文显示效果应该会比较不错了。
参考链接:
[1]. https://wine.htmlvalidator.com/install-wine-on-ubuntu-22.04.html
[2]. http://www.zztongyun.com/article/yum%E6%9B%B4%E6%8D%A2%E5%9B%BD%E5%86%85%E6%BA%90

# 无标签


添加新评论