[Linux] 使用 Wine

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/buildcourage/article/details/80871141

Wine 是一个在 x86、x86-64 上允许类 Unix 操作系统在 X Windows System 下运行 Microsoft WIndows 程序的软件。Wine 通过提供一个兼容层来将 Windows 的系统调用转换成对 POSIX 标准的调用。
Wine 最早是“Windows Emulator”,即 Windows 模拟器的所写,但现在为“Wine Is Not an Emulator”的缩写,即 Wine 不是模拟器。Wine 的正确名称是“Wine”,而不是全大写或全小写。

操作系统

Wine 官方支持 Ubuntu 而没有 CentOS,之前我用 CentOS 自己编译构建官方源码时,总会报依赖错误。后来我转向了 Ubuntu,考虑到可能后者更适合桌面使用与开发。以下有关 Wine 的安装与使用都是在 Ubuntu 18.04 中进行的。

安装 Wine

下载安装网址:https://wiki.winehq.org/Ubuntu,步骤如下:
如果是64位系统,首先允许32位架构:

sudo dpkg --add-architecture i386 

添加仓库:

wget -nc https://dl.winehq.org/wine-builds/Release.key
sudo apt-key add Release.key
sudo apt-add-repository https://dl.winehq.org/wine-builds/ubuntu/

这样会默认添加当前操作系统版本对应的仓库。或者可以显式指定操作系统版本:

wget -nc https://dl.winehq.org/wine-builds/Release.key
sudo apt-key add Release.key
sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main'

安装稳定版 Wine:

sudo apt-get install --install-recommends winehq-stable

注意

使用 apt-get 安装 Wine 默认会在 /usr/share/applications 下创建 wine.desktop 文件,但似乎这个文件无效,反而导致我启动 Wine 相关的命令时 gnome docker(gnome 桌面侧边栏)无法显示 Wine 的图标(侧边栏显示图标读取 */applications/ 下的 *.desktop文件)。所以解决办法就是删除对应目录下的 wine.desktop

初始化 Wine

Wine 默认将配置文件和安装的 Windows 程序保存在 ~/.wine。这样的目录称为一个”Wine prefix”或”Wine bottle”(保留原文,下文称“系统目录”)。每次运行 Windows 程序(包括内置程序,如 winecfg)时,系统目录会自动创建(如果缺失)或更新。系统目录中存放有相当于 Windows 下 C盘(更确切的说应是系统盘)的文件夹。

WINEPREFIX

通过设置 WINEPREFIX 环境变量,可以更改 Wine 系统目录的位置。如果希望让不同的 Windows 程序使用不同的系统环境或配置,这一变量会非常有用。
例如,如果您使用 WINEPREFIX=~/.win-a wine-A程序.exe 参数来运行一个程序。另一个使用 WINEPREFIX=~/.win-b wine-B程序.exe 参数,这两个程序将使用独立的C盘和注册表配置。
以下命令会建立一个默认的系统目录,且不启动任何 Windows 程序:

WINEPREFIX=~/.customprefix wineboot -u

WINEARCH

很多软件(如 QQ) 只能在32位环境下安装,而使用 Winetricks 甚至有些软件(如wmp10)只能在纯32位环境下安装。
对于64位用户,默认创建的系统目录是64位环境的。若想使用纯32位环境,修改WINEARCH 变量win32为即可: WINEARCH=win32 winecfg 这样就会生成32位Wine环境。若不设置 WINEARCH 得到的就是64位环境。
通过 WINEPREFIX 变量,在不同的系统目录分别创建32位和64位环境:

WINEARCH=win32 WINEPREFIX=~/.win32 winecfg 
WINEPREFIX=~/.win64 winecfg

winetricks也接受WINEPREFIX变量,以安装Steam为例:

WINEARCH=win32 WINEPREFIX=~/.win32 winetricks steam

Winetricks

Winetricks是一个辅助脚本,用于在wine中下载并安装各种闭源的组件和运行库。

安装 Winetricks

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

更新 Winetricks

winetricks --self-update

使用 Winetricks

在控制台输入 winetricks 即可运行,如果不带参数,winetricks 将以图形界面显示可用的软件包列表。也可以在 winetricks 命令后附带需要安装的软件包的名称,它会立即开始安装过程。例如,安装 corefonts 包和 vcrun6 包:

winetricks corefonts vcrun6

与 wine 命令相似,winetricks 可以使用 $WINEPREFIX 变量,对应不同的 wine 目录,例如:

env WINEPREFIX=~/.winetest winetricks mfc40u

向 ~/.winetest 前缀中安装 mfc40u 包。

Wine 使用32位环境

WINEARCH=win32 WINEPREFIX=~/.win32 winecfg

输入以上命令后,Wine 会自动创建 ~/.win32 及该文件夹下的系统目录

Wine 安装字体

WINEPREFIX=~/.win32 winetricks cjkfonts corefonts fakechinese fontfix fontsmooth-gray fontsmooth-rgb fontsmooth-bgr tahoma allfonts
  • 我当时安装 tahoma 时无法连接下载网站,所以后来在另一个网站中下载了 tahoma32.exe,并替换到 ~/.cache/winetricks/tahoma 目录下,再运行:

    WINEPREFIX=~/.win32 winetricks tahoma

    下载网址为:http://dir.vietnam.online.fr/home/vnDownloads.htm

Wine 安装 Windows DLL 或组件

WINEPREFIX=~/.win32 winetricks d3drm d3dx9 devenum dotnet40 gdiplus msctf mfc40 mfc42 msls31 msxml6 ole32 quartz riched20 vb6run vcrun6 vcrun2003 vcrun2005 vcrun2008 vcrun2010 vcrun6 wmp10
  • 安装 wmp10 时可能需要中断,killwine相关进程后再次使用 winetricks 进行安装才行。

或者使用以下命令打开 winetricks GUI 界面:

WINEPREFIX=~/.win32 winetricks

进入“安装Windows DLL 或组件”界面:
安装Windows DLL 或组件
选择上述组件并安装

Wine 安装 QQ:

进入 winetricks 的 GUI 界面,选择安装 Windows 应用:
安装 Windows 应用
勾选 qq ,进行安装。
安装过程中,winetricks 会自动停用 ntoskrnl.exetxplatform.exe。需要禁止 winedevice.exe 使用 ntoskrnl.exe,必须在系统默认设置里面禁止,对 qq 单独设置无效。为了不影响其他程序,建议将 qq 安装在单独的系统目录内,比如:

WINEARCH=win32 WINEPREFIX=~/.wineqq winecfg

然后通过

WINEPREFIX=~/.wineqq winetricks

来安装 qq。

注意

在聊天界面使用气泡模式,输入文字会变成方块,解决方法是在 wine 命令前加 LANG=zh_CN LC_ALL=zh_CN.UTF-8 环境变量参数。

创建桌面快捷方式:

安装完程序最好登出一下账号,然后再次进入,这样 Wine 创建的应用快捷方式可以刷新生效。
Wine 自动创建的程序快捷方式位于 ~/.local/share/applications/wine/Programs 目录下。
将程序对应的快捷方式(比如 “腾讯QQ.desktop”)复制到 ~/Desktop 目录下即可创建桌面快捷方式。
desktop 文件的一般内容(经过了我的修改,因为原来的无法正常启动)如下:

[Desktop Entry]
Name=腾讯QQ
Type=Application
StartupNotify=true
Icon=QQ
Exec=env WINEPREFIX=/home/wayne/.win32 LANG=zh_CN LC_ALL=zh_CN.UTF-8 wine C:\\Program\ Files/Tencent/QQ/Bin/QQ.exe

Wine 安装微信:

从微信官网下载最新版微信安装包,使用 wine 进行安装:

WINEPREFIX=~/.win32 wine WeChat_C1018.exe

Wine 创建的微信快捷方式启动后微信是英文而且中文会乱码,解决方法是修改快捷方式,在 wine 命令前加 LANG=zh_CN LC_ALL=zh_CN.UTF-8 环境变量参数:

[Desktop Entry]
Name=微信
Exec=env WINEPREFIX="/home/wayne/.win32" LANG=zh_CN LC_ALL=zh_CN.UTF-8 wine C:\\\\windows\\\\command\\\\start.exe /Unix /home/wayne/.win32/dosdevices/c:/ProgramData/Microsoft/Windows/Start\\ Menu/Programs/微信/微信.lnk
Type=Application
StartupNotify=true
Path=/home/wayne/.win32/dosdevices/c:/Program Files/Tencent/WeChat
Icon=8A76_WeChat.0
StartupWMClass=wechat.exe

Wine 安装 三国志11

下载并使用 wine 来安装三国志11威力加强版。
我的 wine 自动生成的快捷方式启动会中文乱码,采取和微信一样的方法修改 desktop 文件。
一开始启动游戏是失败的,或者没有音频,会报如下错误:

fixme:gstreamer:unknown_type Could not find a filter for caps: video/mpeg, systemstream=(boolean)true, mpegversion=(int)1
fixme:gstreamer:watch_bus decodebin5639: Your Gstreamer Installation Is Missing A Plug-in。

解决方法是在 winecfg 中添加对 san11pk.exe 的程序设置,在函数库中停用 winegstreamer,并添加 quartz
这里写图片描述

Wine 安装 Office:

本人只测试过 Office 2010 和 Office 2013,其中 Office 2010 可以正常运行。Office 2013 Pro 只有英文版可以正常运行,而且只有在 wine 3.0.1 下运行正常,在 wine 3.11 中会异常。
另外在 Wine 中无法成功卸载 Office 2013 Pro。所以建议开启独立的系统目录来安装运行 Office,比如:

WINEARCH=win32 WINEPREFIX=~/.wineoffice winecfg

安装必要字体及DLL组件后,到相应的安装目录下执行:

WINEPREFIX=~/.wineoffice wine setup.exe

来安装 Office 2013 Pro

卸载软件

可以通过 winetricks 来卸载软件。
如果软件无法卸载或者系统出错,可以直接删除所对应的系统目录。

Winetricks-zh

winetricks-zh 是一个 winetricks 的修改版,添加了一些国内常用的 windows 应用支持,以弥补官方版 winetricks 对国内应用支持不足的情况。但最终目的仍然是希望上游能将这些应用添加进去。
winetricks 网址:https://github.com/hillwoodroc/winetricks-zh/

桌面图标

Ubuntu 18.04 Gnome桌面显示传统托盘图标:安装TopIconPlus的gnome-shell扩展,命令:sudo apt-get install gnome-shell-extension-top-icons-plus gnome-tweaks,然后用gnome-tweaks开启这个扩展。

参考资料

[1] https://homulilly.com/post/run-japanese-galgame-on-Ubuntu-with-wine.html “Ubuntu 下通过 Wine 运行日文 Galgame”
[2] https://wiki.archlinux.org/index.php/Wine_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#.E5.A3.B0.E9.9F.B3 “Wine (简体中文)”
[3] https://www.winehq.org/ “WineHQ 官网”
[4] https://www.cnblogs.com/jikexianfeng/p/5769430.html “winetricks 用WineTricks令你的Wine更完整”
[5] https://wiki.winehq.org/Winetricks “WInetricks”
[6] http://dir.vietnam.online.fr/home/vnDownloads.htm “Tahoma 字体”

猜你喜欢

转载自blog.csdn.net/buildcourage/article/details/80871141