[Share Experiences] wine使用教程1-用原生wine安装/运行exe程序的方法
Tofloor
poster avatar
delsin
deepin
2022-06-10 23:54
Author

wine使用教程

第1辑:在Deepin/UOS家庭版用原生wine安装/运行exe程序的方法

注:

1、以下教学以32位7-Zip的安装程序7z2107.exe(版本21.7.0.0)为案例软件,该exe程序我放在系统下载(Downloads)文件夹,即/home/$USER/Downloads/7z2107.exe,或者写作~/Downloads/7z2107.exe

多数情况下,/home/$USER与~可以相互替代。

2、wine对32位的exe程序支持较好,所以尽量选择32的软件。

一、安装exe程序

查看系统上原生wine的版本,终端输入:

wine --version

原生wine的默认容器路径:/home/$USER/.wine 或~/.wine

用原生wine安装/运行windows软件的方法:

方法1:安装程序到默认容器(方法1不推荐,推荐方法2)

终端输入:

wine /exe文件路径

案例:

wine ~/Downloads/7z2107.exe

安装好后,就可以在/home/$USER/.wine/drive_c/Program Files里看到7-Zip的程序文件了。

方法2:安装程序到一个新建的容器

终端命令:

WINEARCH=win32或者wine64 WINEPREFIX=容器路径 wine 需安装/运行的exe软件的路径

案例:

WINEARCH=win32 WINEPREFIX=~/.deepinwine/Wine-7zip wine ~/Downloads/7z2107.exe

(注:如果提示安装mono,可点取消。mono模拟的.NET Framework,不是所有exe软件都需要这个。需要的时候你再手动安装即可)

上述命令结构解析:

(1)WINEARCH=后面写win32,即表示新建一个32位的容器,如果写win64,即表示新建一个64位的容器。

(2)WINEPREFIX=是指定的容器路径(此处Wine-7zip就是容器名称),如果容器不存在,会默认新建这个容器。

(3)wine即你指定的wine的执行程序,原生wine的执行程序就是wine。(如果要用deepin-wine,则这里可以换成deepin-wine5或者deepin-wine6-stable,或者~/.deepinwine/deepin-wine5-stable/bin/wine)

二、运行已安装到容器内的exe主程序

终端命令:

WINEPREFIX=容器路径 wine “c:/exe主程序虚拟C盘(即drive_c)里的路径”

案例:

WINEPREFIX=~/.deepinwine/Wine-7zip wine "c:/Program Files/7-Zip/7zFM.exe"

三、winecfg设置

可设置虚拟的windows版本、替换dll函数、窗口修饰、显示分辨率等。

1、修改windows版本

默认的windows版本是windows7,有的exe安装时提示系统版本太低的话,就需要利用winecfg修改为windows10。有的exe软件在windows xp表现更好,就需要用winecfg修改为windows xp。

打开winecfg的终端命令:

WINEPREFIX=容器路径 winecfg

案例:

WINEPREFIX=~/.deepinwine/Wine-7zip winecfg

上述命令结构解析:

WINEPREFIX=是指定的容器路径,后面打一个空格,然后输入winecfg

案例软件7-Zip无需修改windows版本即可正常运行。

2、函数库函数顶替

有的exe软件,无需新增函数顶替。

有的exe软件,新增以下几个函数顶替基本上就能正常运行了:atl100、mlang、msls31、riched20、usp10

有的exe软件还需要添加msvcp60、riched32等函数

案例软件7-Zip无需新增顶替函数即可正常运行。

四、字体设置

由于linux系统默认是没有windows常用字体(如Arial、微软雅黑、宋体),所以用wine安装的exe软件大概率会出现字体乱码、字体呈现方块、字体显示不出来等问题。此时,需要设置字体,方法有三种:

第一种:直接安装“Win字体”应用

到星火应用商店里下载安装“Win字体”。安装好后,再调出winecfg(方法如前述),字体选项下勾选“允许加载系统字体”,建议顺便把“允许加载Windows Fonts目录下的字体”也勾上。(最新原生wine版本,如wine-devel-7.10的winecfg里面已经没有字体选项了,可能是改成默认了吧)

第二种:复制字体到虚拟C盘的字体文件夹

将exe软件需要用的字体文件(如宋体的文件为simsun.ttf)复制粘贴到容器的字体文件夹,路径通常为:

~/.deepinwine/容器名称/drive_c/windows/Fonts

案例软件Fonts文件夹路径:~/.deepinwine/Wine-7zip/drive_c/windows/Fonts

调出winecfg(方法如前述),字体选项下勾选“允许加载Windows Fonts目录下的字体”,建议顺便把“允许加载系统字体”也勾上。(最新原生wine版本,如wine-devel-7.10的winecfg里面已经没有字体选项了,可能是改成默认了吧)

第三种:修改字体注册表

不安装字体,而是在虚拟的windows注册表里把需要的字体替换为你系统已有字体。

打开注册表的命令:

WINEPREFIX=容器路径 regedit

案例:

WINEPREFIX=~/.deepinwine/Wine-7zip regedit

找到HKEY_CURRENT_USER\Software\Wine\Fonts\Replacements,如果没有Replacements,新建一个项,项名为Replacements。

然后在Replacements下添加字符串值。如要把宋体(SimSun)替换为思源宋体(Noto Serif CJK SC),则字符串名称为SimSun,值为Noto Serif CJK SC

截图_regedit.exe_20220610152347.png

一个一个添加字符串太麻烦,楼主做了一个字体替换注册表字体替换自建注册表10.zip,解压后把里面的.reg文件导入注册表即可(regedit界面左上角——注册表——导入注册表文件)。

截图_选择区域_20220610154327.png

五、winetricks设置

可以添加一些运行时、组件、dll。不是每一个exe软件都需要用到winetricks。案例软件7-zip无需设置winetricks。

安装winetricks的终端命令:

sudo apt install winetricks

运行winetricks的终端命令:

WINEPREFIX=~/.deepinwine/Wine-7zip winetricks

选择默认的wine容器——安装windows DLL和组件,然后根据需要安装运行时、组件、dll。

六、给exe软件制作一个桌面图标

在桌面新建一个txt文件(如7zip.txt),复制以下内容:

[Desktop Entry]
Categories=Application
Exec=sh -c 'WINEPREFIX=/home/$USER/.deepinwine/Wine-7zip wine "c:/Program Files/7-Zip/7zFM.exe"'
Icon=/usr/share/icons/Default/devices/64/media-optical.svg
MimeType=
Name=7-zip
StartupNotify=true
Type=Application
X-Deepin-Vendor=user-custom

保存txt,右键重命名,把这个txt文件的后缀改为desktop(如7zip.desktop)

截图_选择区域_20220610163830.png

注:

Exec= ————sh -c 'WINEPREFIX=容器路径 wine "c:/exe主程序路径在虚拟C盘里的路径"'

Icon= ————指图标路径,文件格式一般为png、svg、icon,图标大小64×64为宜,图标格式最好是svg。

Name= ————图标文件显示的名称

以上三项后面的内容可以根据你自己所安装的软件的实际情况更改。

特别说明,Exec=后面不能用~来代替/home/$USER

七、卸载exe软件

方法1:终端命令:

WINEPREFIX=容器路径 wine "c:/exe软件的卸载程序uninstall.exe的路径"

案例:

WINEPREFIX=~/.deepinwine/Wine-7zip wine "c:/Program Files/7-Zip/Uninstall.exe"

方法2:直接删除容器文件夹。

八、升级原生wine版本

具体方法参考WineHQ官网方法

Deepin/UOS预装的原生wine版本为4.0,已经很老旧了。而WineHQ官网稳定版原生wine版本是7.0,开发版原生wine版本是7.10。推荐想尝新的小伙伴升级wine版本。

Reply Favorite View the author
All Replies
185******44
deepin
2022-06-11 00:20
#1

收藏了,辛苦了

tail

Reply View the author
dgmenghuan
deepin
2022-06-11 16:15
#2

applaud

Reply View the author
zhangzhipeng
deepin
2022-07-21 17:43
#3

/home/ZZP/.deepinwine' is not owned by you, refusing to create a configuration directory there

请问这是为什么?

Reply View the author
zhangzhipeng
deepin
2022-07-21 18:44
#4
zhangzhipeng

/home/ZZP/.deepinwine' is not owned by you, refusing to create a configuration directory there

请问这是为什么?

因为我是第一使用wine,之前没有配置过winecfg,所以出了点问题。安装之后配置一下就行了。然后后面的步骤就没问题了。还是要提醒一下,文章里的链接下载的是最新的exe文件,所以文章里的命令不能直接用,不然就会报错,说打不开文件。

Reply View the author
仰而望星兮
deepin
2022-08-03 00:22
#5

关于安装mono

我参考了教程7中的命令:WINEPREFIX=~/.deepinwine/Spark-Office ~/.deepinwine/Lwine7.1-my/bin/wine msiexec /i ~/.deepinwine/Lwine7.1-my/mono/wine-mono-7.1.1-x86.msi,擅自将其中Lwine7.1改为

Lwine4.0

然后,理所当然地失败了~~

我想问:

wine4.0背景下怎么安装mono呀

Reply View the author
delsin
deepin
2022-08-03 04:43
#6
仰而望星兮

关于安装mono

我参考了教程7中的命令:WINEPREFIX=~/.deepinwine/Spark-Office ~/.deepinwine/Lwine7.1-my/bin/wine msiexec /i ~/.deepinwine/Lwine7.1-my/mono/wine-mono-7.1.1-x86.msi,擅自将其中Lwine7.1改为

Lwine4.0

然后,理所当然地失败了~~

我想问:

wine4.0背景下怎么安装mono呀

当然会失败啊。

Lwine7.1在本帖中就没出现过啊。

Lwine7.1是我在其他帖子里打包给用户的wine版本,并非是系统自带wine版本。你又没装过我其他帖子里打包的应用,你电脑上不可能有Lwine7.1。

你电脑上的原生wine版本是4.0,但是使用原生wine时,是不用写版本号的,所以你把说的wine4.0改成wine即可。

Reply View the author
仰而望星兮
deepin
2022-08-03 06:15
#7

一番撞墙后,终于是安装上了“原生wine7.0”和“wine mono 7.3.0”了。然而,又出幺蛾子了:程序是运行起来了,但权限却好似差了那么一丢丢~~

image.png

image.png

我在网上查了一下,只发现了一个与本案相似的:https://www.mysmth.net/nForum/#!article/LinuxApp/939714

@delsin,我该怎么给wine中的软件授权呢

Reply View the author
delsin
deepin
2022-08-03 06:40
#8
仰而望星兮

一番撞墙后,终于是安装上了“原生wine7.0”和“wine mono 7.3.0”了。然而,又出幺蛾子了:程序是运行起来了,但权限却好似差了那么一丢丢~~

image.png

image.png

我在网上查了一下,只发现了一个与本案相似的:https://www.mysmth.net/nForum/#!article/LinuxApp/939714

@delsin,我该怎么给wine中的软件授权呢

我不知道如何解决。

凡是涉及网络接口的wine应用,我都不会弄。

建议你到论坛发帖问。

Reply View the author