安装Wine的推荐方法是什么?它有哪些关键问题,以及如何解决这些问题?
如果我在Wine中遇到特定应用程序的问题,我该如何解决?有哪些推荐步骤可以确保我能够修复与我希望使用的应用程序相关的问题?
如果您使用的是64位架构,请启用32位以获得更好的兼容性
sudo dpkg --add-architecture i386
添加Wine密钥、Wine仓库和更新仓库
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
lsb_release -sc
将自动获取codename):sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/$(lsb_release -sc)/winehq-$(lsb_release -sc).sources
sudo apt update
在终端中输入以下内容,添加 Wine PPA,更新存储库并安装最新的 Wine 和 Winetricks 版本:
wget -nc https://dl.winehq.org/wine-builds/Release.key && sudo apt-key add Release.key && sudo apt-add-repository -y https://dl.winehq.org/wine-builds/ubuntu/ && sudo apt update && sudo apt install wine-devel winehq-devel winetricks
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 -y https://dl.winehq.org/wine-builds/ubuntu/ && sudo apt update && sudo apt install wine-devel winehq-devel winetricks && export WINEARCH=win32 && winecfg
winetricks
来安装额外的组件。以下是一个示例,适用于HL/HL2(非Steam版本。Steam版本请参考:如何安装Steam?。请注意,Half-Life和HL2在Ubuntu上有原生支持):winecfg
后,通过运行winetricks --gui
来打开winetricks
,然后按照以下步骤操作:winetricks
命令后面添加组件名称:
winetricks vcrun2010
- 将使用winetricks安装vcrun2010
winetricks xna40
- 将安装xna40总是访问Wine App网站,看看其他测试人员为了使应用程序正常工作所做的工作。例如,这是我测试Dead Island: Riptide时遇到的情况,我给它评了一个铜牌,因为在选择角色后整个游戏都变成了黑屏。为了测试发生了什么,我去终端并从那里运行游戏。在终端中,一些错误提示表明我缺少游戏所需的重要组件。阅读错误输出并按照建议的方法(替换损坏的DLL)进行操作后,我可以安装游戏所需的组件,游戏完美地运行。
了解游戏所需的内容对于正确运行游戏至关重要。设置winecfg
选项和操作系统环境只是其中的一小部分。这只是为应用程序创建环境。您还需要添加其他功能,如DirectX、XNA、.NET Framework等,这些可能是应用程序所需的。对于没有这些组件的应用程序,即使某些应用程序能够正常工作,其他应用程序也无法正常工作。确保您拥有所有这些组件将增加您符合应用程序需求的机会。
从我的Dead Island测试中可以看出,我添加了几个winetricks
包,并安装了游戏自带的3个包(DirectX、Windows Media Format和Microsoft Visual C++ 2010)。通过这样做,我成功地确保游戏能够启动并可玩。
某些应用程序只适用于特定的Windows版本,如Dungeon Keeper所示。要为特定的应用程序指定特定的Windows版本,您可以打开winecfg
,导航到应用程序,选择添加应用程序,然后搜索应用程序的可执行文件并点击打开。现在从列表中选择该应用程序,然后更改其Windows版本。这样,只有该应用程序将被分配一个特定版本的Windows,而不是全局更改所有应用程序的Windows版本。
全局更改Windows版本可能会影响使用不同Windows版本安装的应用程序。例如,在Windows XP环境中安装Terraria,然后在游戏后将其更改为Windows 7,将导致两种错误之一:找不到保存的游戏或无法运行应用程序。
通过终端运行应用程序以诊断问题是迄今为止最好的方法,因为它可以告诉您应用程序正在做什么或需要什么。应用程序可以提供诸如以下信息:
运行所需的缺失DLL文件(mscore.dll,steam_api.dll)
运行所需的缺失组件(XNA,DirectX,.NET...)
如果问题是您使用的是64位环境而不是32位
如果需要添加参数以使应用程序运行
对于缺失的DLL文件,建议使用dll-files下载所需的特定DLL文件。通常,您可以将这些DLL文件粘贴到游戏文件夹或Windows/System32文件夹中(或两者都可以),这样应该可以解决问题。对于缺失的组件,请使用winetricks
。
winecfg
,进入图形选项,并启用模拟虚拟桌面。然后设置其分辨率。这样,如果应用程序冻结、劫持键盘和/或鼠标焦点,至少你有一种方法来关闭应用程序,而不是让它全屏显示,选择很少:wineserver -k
或关闭X服务器。要做到这一点,首先通过运行sudo dpkg-reconfigure keyboard-configuration
来配置它,在最后一个选项中,关于关闭X的选项,选择“是”。这将启用CTRL+ALT+BACKSPACE组合键。sudo apt-get install mesa-utils
glxinfo|grep 'direct rendering'
/usr/lib/nux/unity_support_test -p
glxgearssudo apt-get install libtxc-dxtn-s2tc0
(注意,在最新版本的Ubuntu中,不再需要libtxc-dxtn-s2tc0
)
Wine从不能运行较新游戏的时期发展了很长一段时间。现在在Ubuntu上玩游戏已经变得非常轻松。甚至在Wine 1.6上,它对SM4.0和DirectX 10/11也有一定的支持。如果问题仍然存在,那么要么是因为您的显卡不支持,要么是缺少正确的库。
Wine无法检测到着色器模型的另一个原因可能是在Winetricks中它被设置为禁用。打开Dash并输入winetricks
。选择您的wineprefix,然后选择更改设置。然后找到glsl=enabled选项并选择它。这应该解决着色器模型的问题。像游戏Limbo这样的情况就可以通过这种方式解决。
6. 如何打开多个Wine应用程序而不重叠显示在同一个窗口中
你可以通过在启动每个单独的Wine程序之前调整一些Wine参数来设置多个Wine窗口。最快的方法是打开所要运行应用程序的可执行文件所在的终端。让我们假设它是Wow.exe应用程序。然后只需输入以下内容:
wine explorer /desktop=WOW,1024x768 "Wow.exe" -opengl -console
这将打开名为"WOW"的窗口,分辨率为1024x768的Wow.exe可执行文件,并将参数-opengl和-console应用于Wow可执行文件。现在假设您已经在其他地方安装了游戏,您需要进行以下更改:
wine explorer /desktop=WOW,1024x768 "/media/cyrex/fun/wow/Wow.exe" -opengl -console
这将执行Wow.exe,假设它位于您的/media/USER文件夹中名为wow的分区内。当运行4个应用程序时,输出应该类似于这样:
![Wine](https://istack.dev59.com/Kbsdt.webp)
有一种更简单的方法来完成这个任务。这个想法是通过在桌面上右键单击并选择“新建文档”-->“空白文档”来创建一个桌面快捷方式。这将在您的桌面上创建一个“无标题文档”文件。现在打开该文件并将以下内容粘贴到其中:
[Desktop Entry]
Type=Application
现在保存并将文件重命名为您想要打开的应用程序,但在末尾添加“.desktop”。它将变成一个“可执行的Windows图标”。现在再次右键单击该图标,然后转到属性-->权限-->激活允许作为程序执行文件。现在转到基本选项卡,并插入您需要执行的Wine应用程序的信息。最终结果应该类似于这样:
![enter image description here](https://istack.dev59.com/1vrvs.webp)
7. Ubuntu 64位会对Wine产生影响吗
是的,使用Ubuntu 64位也会将Wine设置为64位。这会给许多仅适用于32位系统的Windows应用程序带来一些问题,例如无法安装几个.NET Frameworks,因为它们只能在32位版本上运行,这将导致用户无法运行许多Windows应用程序。为了解决这个问题,在成功安装了我之前提到的PPA版本后,你需要按照以下步骤操作。在打开winecfg
之前,立即打开终端(确保你在主文件夹中,输入cd ~
),然后输入以下命令:
rm -fr ~/.wine
export WINEARCH=win32
export WINEPREFIX="/home/USER/.wine"
winecfg
将USER替换为您的用户帐户。例如,在我的情况下,该行将变为export WINEPREFIX="/home/cyrex/.wine"
通过这种方法,您已将Wine架构更改为32位,并且在打开Winecfg时,它将配置所有可用的Windows版本为32位。
8. Wine PPA的替代方案
PlayOnLinux(PoL)
虽然您实际上可以仅使用Wine及其补充应用程序(winetricks、regedit、explorer)安装和配置所需的一切,但使用PoL可以节省一些麻烦和时间。使用PoL,您可以在其数据库中找到一个应用程序列表,您可以选择并安装:
![enter image description here](https://istack.dev59.com/1f22V.webp)
通过简单选择安装,您可以获得以下好处:
创建一个独立的容器来安装应用,并为应用安装一个特定的Wine版本(在某些情况下,特定的Wine版本对某个应用比当前的Wine版本更有效)。
自动安装应用所需的任何额外的DLL和组件,以确保其正常运行。
添加应用所需的适当注册表键值。
创建一种独立的方式来运行多个应用程序,避免它们在Windows版本更改、regedit更改、特定Wine版本等方面出现重叠。
当然,重要的是要知道PoL与Wine并驾齐驱,需要Wine才能正常工作(它基于Wine)。在许多情况下,应用可能无法使用PoL运行,但可以使用本指南中提到的默认Wine配置。因此,如果您在PoL中找到想要使用的应用程序,那很好。但如果没有找到,记住您始终可以使用默认的Wine来安装和配置该应用程序。
使用Wine和使用PoL安装应用的好处是,通过Wine,您可以使用DASH访问和执行应用程序,如下面的图片所示:
(Terraria)
(Dead Space & Dead Island)
CodeWeavers CrossOver (CC)
CC在安装和配置应用程序方面与PoL非常相似。主要区别在于CC提供官方支持。他们甚至有自己的CodeWeavers数据库,其中包含10,000多个应用程序。不仅如此,他们还有一个类似于Wine的AppDB中的排名系统。他们还为Wine的开发做出了贡献,其中一些可以在他们的支持页面上看到。
DosBox (DB)
DB对于MS-DOS应用程序就像Wine对于Windows应用程序一样。使用DB,您可以在系统中运行MS-DOS应用程序。只需安装dosbox
软件包即可完成。运行应用程序就像进入应用程序所在的文件夹并执行以下命令一样简单:
`dosbox ./`
这将在DB环境中将当前文件夹作为驱动器打开。
在打开DB后,您还可以按照以下步骤挂载文件夹:
`mount x: /Absolute/Path/To/Folder/Of/App`
例如
`mount c: /home/cyrex/Desktop/Dune2`
将创建一个包含Dune2文件夹的C:驱动器。所以,如果我只是执行dune2.exe,我会得到以下结果:
![enter image description here](https://istack.dev59.com/R7Zq5.webp)
9. 有哪些特殊参数和提示可以在Wine中使用?
有几个,例如:
命令
`wine --version` - 显示Wine的版本
`wineserver -k` - 终止特定用户的所有Wine版本。如果您的Wine应用程序冻结,占据整个屏幕并且无法让您使用Ubuntu,或者鼠标或键盘聚焦于它以及其他可能出现的Wine问题,这将非常有用。
`wine explorer` - 打开类似Windows资源管理器的资源管理器
`wine explorer /desktop=X,Y` - 创建一个虚拟桌面,其中X是桌面窗口的名称,Y是窗口的分辨率。例如:`wine explorer /desktop=WOW,1024x768 Wow.exe`
`regedit` - 打开与Windows相似的Wine注册表编辑器。
wine uninstaller
- 打开与Windows中的“添加和删除程序”类似的Wine卸载程序。在这里,您不仅可以查看已安装的应用程序并卸载它们,还可以安装新的应用程序(如果需要的话)。
winetricks
- 打开winetricks应用程序,以安装许多Windows应用程序所需的缺失库、DLL和组件。
winecfg
- 打开Wine配置界面,您可以设置视频、声音和Windows版本。
wine ipconfig
- 显示Wine可见的IP地址。类似于ipconfig命令。
wine netstat
- 显示已建立的IP/端口连接。类似于netstat命令。
wine start
- 设置可执行文件的工作目录。该选项适用于只能从同一文件夹而非完整路径运行可执行文件的情况。例如,如果您想要运行一个.bat文件或者从另一个文件夹(例如:父文件夹)执行命令,假设我们不在与MetroLL.exe相同的文件夹中,您可以像这样操作:
`wine start /d "C:\\Program Files\\GMT-MAX.ORG\\Metro Last Light" MetroLL.exe`
这样做会有两个效果,首先它会将目录设置为“Metro Last Light”文件夹,然后运行末尾提到的“MetroLL.exe”。这与从同一文件夹运行可执行文件类似,但它具有从任何其他位置运行应用程序的优势。需要注意的是:
- Wine不支持Unix路径,所以您需要使用“\\”而不是“\”来分隔文件夹。
- 您需要使用绝对路径。您需要从“C:\\”开始,以确保可执行文件始终正常工作。
- 如果可执行文件位于“C:”驱动器之外,则添加相应的字母。例如,要在Wine之外执行Windows二进制文件,您将使用“Z:\\”字母,因为“Z:”通常指向Linux系统的根目录。
- 如果有疑问,请使用“/?”参数询问命令(例如:wine start /?)。
export WINEPREFIX
- 这个变量用于将 Wine Prefix 更改为另一个位置。例如,如果您希望合并 PoL 和 Wine(不建议,因为 PoL 有多个 Prefixes),可以执行以下操作:
`export WINEPREFIX="/home/USER/.PlayOnLinux/wineprefix/PREFIX"`
在这里,PREFIX是你想要与Wine合并的内容。你需要再次运行winecfg。
提示
当处理一个带有空格的文件夹(例如:魔兽世界),你可以通过在每个空格前面添加\符号来执行Wow.exe文件,这样可以转义该符号。最终结果将类似于"World\ of\ Warcraft\Wow.exe"。如果你不想在代码中添加这些转义符号,只需将整个链接用双引号括起来,就像这样:
wine explorer /desktop=WOW,1024x768 "/media/cyrex/My Partition/World of Warcraft/Wow.exe" -opengl -console
正如你所看到的,这里有两个带有空格的文件夹,"My Partition"和"World of Warcraft",但由于我将整个字符串用引号括起来了,所以不需要包含转义字符。如果你想使用Wine路径(例如:C:/),那么所有斜杠都应该是双斜杠(例如:"C:\\Program Files\\App")。
应用程序应用的参数应始终放在引号外面。以上面的例子为例,我们可以看到-opengl和-console是在引号外面的。
处理那些接管你的鼠标和/或键盘的应用程序时,你可以使用wineserver -k
来关闭应用程序,或者简单地以Windows模式打开应用程序,或使用wine explorer /desktop
参数设置Windows模式,这样就能避免鼠标/键盘问题。
10. 稳定性、性能和对应用程序的支持 Wine 提供给最终用户
应用程序支持
我从2005年开始使用Wine,目睹了Wine在Ubuntu下的开发过程如何迅速跟上最新游戏的步伐。
在2012年前,Wine 1.2发布之前,要让许多应用程序在Wine上正常工作是非常困难的。但是自从Wine 1.2发布以后,情况完全不同了。特别是在2012年发布的1.4版、2013年发布的1.6版以及2015年发布的1.8版之后。很多情况下,这些应用程序可以直接运行。比如Deep Space 2,那是我当时能玩到的最新游戏之一,在它发布后的3天内我就进行了测试。还有Alice in Wonderland(指的是新版本)、The Sims 3、World of Warcraft、Amnesia等等。甚至连Skyrim都可以玩。这些游戏需要强大的图形性能,但除了正常安装外,几乎不需要进行其他额外的设置。
要了解在Wine上可以玩哪些游戏,我建议访问Wine应用数据库:http://appdb.winehq.org/,其中包含超过10K+的信息。这包括有关游戏性能和稳定性的信息,并有助于了解游戏是否可玩。
Wine应用数据库还提供了一个排名,确定哪些游戏可以以较少问题的方式进行。当您看到这些排名时,您就会知道该应用是否能够正常工作。请注意,您还需要考虑测试人员在Wine数据库中显示的硬件和Wine版本。排名如下:
白金级别 - 表示您几乎有100%的机会使应用程序开箱即用。
黄金级别 - 表示您可能需要进行一些配置,但最终它将能够正常工作。
银级别 - 表示应用程序可以运行,但可能存在图形、声音或控制问题。
铜级别 - 表示应用程序将无法正确工作。
垃圾等级 - 意味着该应用程序仍然无法正常工作,甚至可能无法安装。唯一能让它工作的方式就是当超人早上开始吃克里普顿谷片。
参考一下,几年前白金游戏的数量还不到50个。2012年,你可以找到超过1.5K个游戏,其中近200个是最新标题。如今,有超过6K+个游戏,其中4K+个是白金游戏。参与测试Wine应用程序的人越多,越好。这也是我总是建议使用Wine的PPA的主要原因。
性能
有关性能信息,请参阅Windows和Ubuntu之间的游戏性能差异
11. 如何卸载Wine
根据您的需求,可以通过两种方式来卸载Wine。如果您只需要将Wine“重置”为默认值,只需删除.wine
文件夹,然后通过运行winecfg
重新创建它即可。如果您希望备份.wine
文件夹中的应用程序,在删除文件夹之前现在是个好时机。要删除文件夹,只需执行以下操作即可完全清除Wine环境:
rm -fr ~/.wine
rm -fr ~/.cache/wine
现在,如果您想从Ubuntu实际卸载Wine,可以执行以下操作,但请注意,这不会删除您的.wine
或缓存文件夹:
sudo apt purge wine*
这将卸载与Wine相关的每个软件包,包括wine、wine1.9、winehq、winetricks等。基本上删除与Wine相关的所有内容。
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install wine32 # or sudo apt-get install wine32
sudo apt install wine64 # or sudo apt-get install wine64
sudo apt update
wget -qO- https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -
sudo apt-add-repository 'deb http://dl.winehq.org/wine-builds/ubuntu/ focal main'
sudo apt-get install --install-recommends winehq-stable
wine --version
sudo apt-get install --install-recommends winehq-staging
wine --version
sudo apt-get install --install-recommends winehq-devel
wine --version
它应该给你酒-5.2
(复制并粘贴)在终端中运行wine,输入winecfg:
winecfg
在终端中,确保正确配置Wine(按照这个顺序)。您还需要安装winetricks(另一个配置包,非常有帮助,可用于安装Windows组件,如.NET Framework和其他所需的库)。因此,在此之后,请执行以下操作:sudo apt install winetricks
winecfg
sudo apt purge wine*
sudo apt autoremove
sudo apt upgrade
如果你对来自官方仓库的Wine 3.6.x版本不满意的话,请阅读以下方法。
对于这个Ubuntu版本,WineHQ仓库缺少FAudio依赖项。
我已经向WineHQ bugzilla报告了一个bug 48513。
所以我们需要部分地遵循Ubuntu的官方WineHQ指南:
sudo dpkg --add-architecture i386
sudo apt update
sudo apt-add-repository -r 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main'
为了防止存储库的混乱,然后继续。
接下来,我们需要从OpenSuse Build Service添加其他存储库to add以安装libfaudio0
:
wget -q https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_18.04/Release.key -O Release.key -O- | sudo apt-key add -
sudo apt-add-repository 'deb https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_18.04/ ./'
sudo apt-get update
# Stable branch
sudo apt install --install-recommends winehq-stable
#Development branch
#sudo apt install --install-recommends winehq-devel
#Staging branch
#sudo apt install --install-recommends winehq-staging
以下软件包存在无法满足的依赖关系: winehq-staging: 依赖于wine-staging (= 6.1~bionic-1),但将不会安装 E:无法修正问题,您有损坏的软件包。
这个对你来说没问题吗?你想要获得Wine,但是遇到了这个错误。 - N0rbert