如何安装和配置 Wine?

Lui*_*ado 198 wine software-installation

我正在寻找分步说明来指导我安装、配置和调试新用户在 Ubuntu 中处理 Wine 时遇到的许多问题。

安装 Wine 的推荐方式是什么,它存在的一些关键问题以及如何解决这些问题?

如果我对 Wine 中的应用程序有特定问题,我该如何解决?建议采取哪些步骤来确保我可以解决与我希望使用的应用程序相关的问题?

Lui*_*ado 294

如果您想使用 Wine 的最新开发/暂存版本,请务必遵循Ubuntu 官方 WineHQ 指南中的指南,主要包括:

我们将像这样添加存储库(lsb_release -sc将自动获取代号):

sudo apt-add-repository "deb https://dl.winehq.org/wine-builds/ubuntu/ $(lsb_release -sc) main"
sudo apt update
Run Code Online (Sandbox Code Playgroud)

视频演示展示了 Wine 1.9.X 的实际应用 - Wine 1.9.X 性能

1. Wine Stable、Development 和 Staging 版本之间的差异

稳定版本提供更少的错误和更好的稳定性,并在发布后每 3-6 个月接收一次更新。

开发版本是开发中的下一个稳定版本,每 2 周接收一次更新。

暂存版本与开发版本相同,但包括Wine-Staging 的所有补丁和增强功能

坚持使用稳定版本(偶数版本:1.0、1.2、1.4...)还是使用不稳定版本(奇数版本:1.1、1.3、1.5...)取决于用户,主要区别兼容性和性能都在开发版本中得到了增强。您可以获得它提供的最新修复程序,并成为可以在开发周期中提供帮助的测试人员。

2. 安装推荐的稳定 Wine 版本(来自 PPA)

在终端中键入以下内容以添加 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
Run Code Online (Sandbox Code Playgroud)

或者你可以包含 Wine 32-Bit Arch(更好的支持)并配置 winecfg(这应该只应用于新安装,因为它会将现有的 Wine 安装移动到一个名为 winebck 的文件夹):

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
Run Code Online (Sandbox Code Playgroud)

3.如何知道应用程序需要哪些组件

要了解应用程序需要哪些组件,请查看Wine 应用程序数据库。它列出了应用程序是否可用、它需要哪些组件以及如何安装它们。

4. 如何安装附加组件、DLLS 和库到 Wine

为了让你的游戏和应用程序有一个工作和增强的 Wine 环境,我建议你使用winetricks安装额外的组件来提供更好的游戏兼容性。为了有一个更好的工作系统,以下是 HL/HL2 的示例(非 Steam。对于 Steam 版本,请访问此处:如何安装 Steam?。知道半条命和 HL2 在 Ubuntu 中是本机支持的):

要玩 HL/HL2,您需要如上所述的 Wine PPA。在winecfg终端上至少打开一次后,winetricks通过运行打开winetricks --gui然后按照以下步骤操作:

选择选择默认的 wineprefix

在此处输入图片说明

选择安装 Windows DLL 或组件

在此处输入图片说明

安装我标记的所有内容(以及您需要的任何其他内容)。这涵盖了许多应用程序:

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

右键单击 HL/HL2 的安装程序并选择Open with Wine。这两款游戏都应该可以完美运行。这通常适用于应用程序,根据应用程序,您需要安装更多或更少的组件。

您还可以通过在winetricks命令后添加组件名称来在终端中安装每个组件:

winetricks vcrun2010 - 将使用 winetricks 安装 vcrun2010

winetricks xna40 - 将安装 xna40

5. Wine 应用程序故障排除

有时,在运行应用程序时,可能会发生以下一种或多种操作:

  • 冻结的应用程序
  • Wine 打开蓝色窗口片刻,然后将其关闭
  • 似乎什么都没有发生
  • 在 Wine 窗口中,一开始或某个时候一切都是黑色的
  • DLL、显卡或组件无法识别

    对于大多数此类问题,都有解决方案。以下是推荐的步骤,让您开始对进入 Wine 应用程序的方式进行故障排除:

    1. 始终访问Wine 应用程序站点以查看其他测试人员为使应用程序运行所做的工作。例如,这里是我测试死岛:激流,我给它一个青铜,因为在选择角色后整个游戏进入黑屏。为了测试发生了什么,我所做的是去终端并从那里运行游戏。在终端中,一些错误表明我错过了游戏运行的重要部分。在阅读错误输出并按照它的建议进行操作(替换损坏的 DLL)后,我可以安装游戏所需的组件并且游戏运行良好

    2. 了解游戏需要什么对于让游戏正常运行至关重要。设置winecfg选项和操作系统环境只是一小部分。这只是为应用程序创建环境。您需要添加其他功能,例如 DirectX、XNA、.NET Framework 以及应用程序运行可能需要的更多功能。这些是某些应用程序的关键组件。没有它们,即使某些应用程序正常工作,其他应用程序也无法正常工作。确保您拥有所有这些组件可以让您更有机会满足应用程序的需求。

    3. 从我的死岛测试中可以看出,我添加了几个winetricks包,并安装了游戏附带的 3 个包(DirectX、Windows Media Format 和 Microsoft Visual C++ 2010)。有了这个,我设法保证游戏会开始并可以玩。

    4. 某些应用程序仅为某些 Windows 版本创建,如Dungeon Keeper所见。要为特定应用程序指定特定的 Windows 版本,您可以打开winecfg导航至应用程序并选择添加应用程序,然后搜索应用程序可执行文件并单击打开。现在从列表中选择应用程序,然后为其更改 Windows 版本。这样,只有此应用程序将分配给它特定版本的 Windows,而不是全局更改所有应用程序的 Windows 版本。

    5. 全局更改 Windows 版本可能会影响使用不同 Windows 版本安装的应用程序。例如,在 Windows XP 环境中安装泰拉瑞亚,然后在玩到 Windows 7 后更改它会给你两个错误之一,一个,找不到保存的游戏,两个没有运行应用程序。

    6. 运行应用程序来诊断问题可以通过终端完成,这是目前了解应用程序正在做什么或需要什么的最佳方式。该应用程序可以告诉您以下信息:

      • 它需要运行什么缺少的 DLL(mscore.dll、steam_api.dll)
      • 它需要运行什么缺少的组件(XNA、DirectX、.NET...)
      • 如果问题是您使用的是 64 位环境而不是 32 位
      • 如果您需要为应用程序添加一个参数来运行

      对于缺少的 DLL,我建议使用dll 文件来下载 APP 所需的特定 DLL。通常,您可以将此 DLL 粘贴到游戏文件夹或 Windows/System32 文件夹(或两者)中,这应该可以解决问题。对于缺少的组件,请使用winetricks.

    7. 对应用程序进行故障排除时,请始终在模拟桌面窗口中运行该应用程序。打开winecfg转到图形并启用模拟虚拟桌面。然后为它设置分辨率。这样,如果应用程序死机,劫持键盘和/或鼠标焦点,至少您有办法消除应用程序,而不是在您几乎没有选择的情况下全屏显示:

      在此处输入图片说明

    8. 对于全屏冻结应用程序的场景,我建议激活键盘布局窗口中的“Kill X”功能,这可以在尝试退出冻结的 Wine 应用程序时为您节省几秒钟的时间:

      在此处输入图片说明

    9. 另一种摆脱冻结状态的技术是打开终端并键入wineserver -k或杀死 X 服务器。要做到这一点,首先通过运行来配置它,sudo dpkg-reconfigure keyboard-configuration并在最后一个关于杀死 X 的选项上说“是”。这将使CTRL+ ALT+BACKSPACE组合。

    10. 请记住,如果应用程序在 Windows 中需要最低或推荐的硬件要求,那么它在 Linux 上也需要相同。如果应用程序需要 512 MB 的 RAM 和 2.0 Ghz 的 CPU,那么它在使用 Wine 的 Linux 上也需要相同。

    11. 有时您会遇到无法打开或安装的 ISO 或任何其他图像格式的应用程序。Ubuntu 附带了多种工具来打开这些文件,但迄今为止我尝试过的最好的一种是 CDEMU,它涵盖了多种类型的图像,这些图像具有多扇区或受保护的格式。这是最接近 DAEMON Tools 的东西。模拟人生 3、模拟城市 2000 等案例只能使用此应用程序打开和安装。能够安装/卸载多扇区或受保护格式的 CD/DVD 图像的应用程序中的更多信息

    12. 对于特定应用程序未运行、显示图形故障、黑屏或未以完整图形运行的情况,我实际上建议阅读以下适用于最终用户的链接之一以获得视频支持:

      Nvidia 用户-如何安装 Nvidia 驱动程序?

      混合- Ubuntu 是否支持采用 Optimus 技术的 NVIDIA GeForce?

      Ati -直接从 AMD 安装专有 ATI Catalyst 视频驱动程序 (fglrx) 的正确方法是什么?

      除了检查上述内容外,如果您有正确的驱动程序,我还要补充一点,您需要检查您的显卡是否支持 OpenGL。为此,如果尚未安装,我将首先安装 mesa-utils:

      sudo apt-get install mesa-utils

      测试 OpenGL 支持。只需运行检查以查看您是否有 OpenGL 支持:

      glxinfo|grep 'direct rendering'

      如果您确实有支持,应该说。另一种选择是:

      /usr/lib/nux/unity_support_test -p

      最后,您可以运行glxgears以了解视频卡的渲染方式及其渲染的 FPS。另一个非常重要的一点是从终端运行应用程序wine AppName.exe,这样它就会显示出问题所在。

    13. 如果 Unity Launcher 在运行 Wine 应用程序时没有隐藏自身或将应用程序向右移动,您可以执行以下两项操作之一:

      • 按住ALT键并单击并将 Wine 拖动到左侧

      • 在外观选项中选择“自动隐藏启动器”并将灵敏度设置为您喜欢的级别。这样,当鼠标离开它的区域时,启动器将隐藏。

      在此处输入图片说明

    14. 在 Wine 中无法识别着色器模型 3.0(包括 Steam 游戏)

      有些游戏需要着色器模型并输出类似于必需的 OpenGL 扩展 GL_EXT_texture_compression_s3tc的错误。要解决此问题,只需在终端中键入以下内容:

sudo apt-get install libtxc-dxtn-s2tc0 (注意在最新版本的 Ubuntulibtxc-dxtn-s2tc0中不再需要)

从不能玩新游戏的时代开始,葡萄酒已经走了很长一段路。已经到了在 Ubuntu 中玩游戏毫不费力的地步。Wine 甚至在 Wine 1.6 上支持 SM4.0 和 DirectX 10/11。如果问题仍然存在,则意味着您的视频卡不支持此功能或您缺少正确的库。

Wine 可能无法检测到着色器模型的另一个原因是它可能在 Winetricks 中设置为禁用。打开 Dash 并键入winetricks. 选择您的 wineprefix,然后选择Change Settings。然后查找glsl=enabled选项并选择它。这应该可以解决着色器模型问题。像 Limbo 游戏这样的案例就是通过这种方式解决的。

6. 如何在没有它们的情况下使用同一个窗口打开多个 Wine 应用程序(重叠)

在启动每个单独的 Wine 程序之前,您可以通过调整一些 Wine 参数来设置多个 Wine 窗口。最快的方法是打开您要运行的应用程序的可执行文件所在的终端。让我们假设它是Wow.exe应用程序。然后只需键入以下内容:

wine explorer /desktop=WOW,1024x768 "Wow.exe" -opengl -console
Run Code Online (Sandbox Code Playgroud)

这将打开带有标题为“WOW”的窗口的 Wow.exe 可执行文件,该特定窗口的分辨率为 1024x768,并将参数 -opengl 和 -console 应用于 Wow 可执行文件。现在假设您在其他地方安装了游戏,您将进行以下更改:

wine explorer /desktop=WOW,1024x768 "/media/cyrex/fun/wow/Wow.exe" -opengl -console
Run Code Online (Sandbox Code Playgroud)

这将执行 Wow.exe,假设它驻留在 /media/USER 文件夹中名为 fun 的分区内的 wow 文件夹中。运行示例 4 个应用程序时,输出应与此类似:

葡萄酒

有一种更简单的方法可以实现这一点。这个想法是通过右键单击桌面并选择New Document --> Empty Document来创建桌面快捷方式。这应该会在您的桌面上创建一个“无标题文档”文件。现在打开文件并粘贴以下内容:

[Desktop Entry]
Type=Application
Run Code Online (Sandbox Code Playgroud)

现在保存它并将文件重命名为您要打开的应用程序,但最后添加“.desktop”。它将变成一个“可执行的 Windows 图标”。现在再次右键单击图标并转到Properties --> Permissions --> Activate Allow execution of file as program。现在转到“基本”选项卡并插入执行该 Wine 应用程序所需的信息。最终结果应该是这样的:

在此处输入图片说明

7. Ubuntu 64 位对 Wine 有影响吗

是的,拥有 Ubuntu 64 位也会将 Wine 设置为 64 位。这将给许多只能在 32 位上运行的 Windows 应用程序带来几个问题,例如无法安装多个 .NET Framework,因为它们只能在 32 位版本上运行,这将导致用户无法运行许多 Windows 应用程序。要解决此问题,您需要在成功安装我上面提到的 PPA 版本后执行以下操作。安装 PPA wine 包后立即winecfg打开终端(确保您在您的主文件夹中,键入cd ~)并键入以下内容:

rm -fr ~/.wine  
export WINEARCH=win32  
export WINEPREFIX="/home/USER/.wine"  
winecfg
Run Code Online (Sandbox Code Playgroud)

使用您的用户帐户更改USER。例如,在我的情况下,该行将读取export WINEPREFIX="/home/cyrex/.wine"

使用此方法,您已将 Wine 架构更改为 32 位,并且在您打开 Winecfg 的那一刻,它将配置所有可用于 32 位的 Windows 版本。

8. 葡萄酒 PPA 的替代品

PlayOnLinux (PoL)

虽然您实际上可以单独使用 Wine 安装和配置您需要的一切,并且使用 PoL 补充应用程序(winetricks、regedit、资源管理器)可以在安装应用程序时为您节省一些麻烦和时间。使用 PoL,您可以找到可以选择并安装在其数据库中的应用程序列表:

在此处输入图片说明

只需选择安装即可获得以下好处:

  • 创建一个独立的容器来保存已安装的应用程序,安装的应用程序的特定 Wine 版本(在某些情况下,特定的 Wine 版本比当前的 Wine 版本更适用于特定的应用程序)。

  • 自动安装应用程序正常运行所需的任何其他 DLL 和组件。

  • 添加应用程序所需的适当注册表项

  • 创建运行多个应用程序的独立方式,而不会因 Windows 版本更改、regedit 更改、特定 Wine 版本等而相互重叠。

    当然,重要的是要知道 PoL 与 Wine 并行工作并且它需要 Wine 正常工作(它基于它)。在许多情况下,应用程序可能不适用于 PoL,但可以使用我在本指南中提到的默认 Wine 配置。因此,如果您找到要在 PoL 中使用的应用程序,那就太好了。但是如果你没有找到它,请记住你总是可以选择使用默认的 Wine 来安装和配置应用程序。

    使用 Wine 安装应用程序并使用 PoL 安装它的好处是,使用 Wine,您可以使用 DASH 访问和执行应用程序,如下图所示:

    在此处输入图片说明 (泰拉瑞亚)

    在此处输入图片说明 (死亡空间和死亡岛)

    CodeWeavers 交叉 (CC)

    CC 在如何安装和配置应用程序方面与 PoL 非常相似。主要区别在于 CC 提供官方支持。他们甚至拥有自己的CodeWeavers 数据库,其中包含 10.000 多个应用程序。不仅如此,他们还有一个类似于 Wine 的 AppDB 中的排名系统。他们还为 Wine 的开发做出了贡献,您可以在他们的支持中看到其中的一些。

    DosBox (DB)

    DB 之于 MS-DOS 应用程序就像 Wine 之于 Windows 应用程序一样。使用 DB,您可以在系统中运行 MS-DOS 应用程序。只需安装dosbox软件包即可完成。运行应用程序就像转到应用程序所在的文件夹并执行以下操作一样简单:

    dosbox ./

    这将打开当前文件夹作为数据库环境中的驱动器号。

    您还可以在打开数据库后通过执行以下操作来挂载文件夹:

    mount x: /Absolute/Path/To/Folder/Of/App

    例如

    mount c: /home/cyrex/Desktop/Dune2

    将创建包含 Dune2 文件夹的 C: 盘符。因此,如果我只是执行 dune2.exe,我会得到以下信息:

    在此处输入图片说明

9. Wine 可以使用哪些特殊参数和提示?

有一对,例如:

命令

wine --version - 显示葡萄酒的版本

wineserver -k- 杀死特定用户的所有葡萄酒版本。如果您的 Wine 应用程序被冻结、占据整个屏幕并且不允许您使用 Ubuntu、鼠标或键盘专注于它以及某些应用程序可能出现的其他 Wine 问题,这将非常有用。

wine explorer - 将打开一个类似于 Windows 资源管理器的资源管理器

wine explorer /desktop=X,Y- 创建一个虚拟桌面,其中X是桌面窗口的名称,Y是窗口的分辨率。例如:wine explorer /desktop=WOW,1024x768 Wow.exe

regedit - 将打开类似于 Windows 版本的 Wine 的 regedit 版本。

wine uninstaller- 将打开类似于 Windows 中的添加和删除 Wine。在这里,您不仅可以查看已安装和卸载的应用程序,还可以根据需要安装新应用程序。

winetricks - 将打开 winetricks 应用程序以安装许多 Windows 应用程序的正确功能所必需的缺少的库、DLLS 和组件。

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`
Run Code Online (Sandbox Code Playgroud)

这将做两件事,首先将目录设置为Metro Last Light文件夹,然后运行最后MetroLL.exe提到的。这类似于从同一文件夹运行可执行文件,但它具有从任何其他位置运行应用程序的优势。这里要知道的是:

  • Wine 不喜欢 Unix 路径,所以你需要用\\而不是分隔文件夹\
  • 您需要使用绝对路径。您需要从C:\\确保可执行文件始终正常工作开始。
  • 如果可执行文件在C:驱动器之外,则添加相应的字母。例如,要在 Wine 之外执行 Windows 二进制文件,您将使用该Z:\\字母,因为它Z:通常指向 Linux 系统的根目录。
  • 如有疑问请命令的帮助与/?参数(例如:wine start /?

export WINEPREFIX- 此变量用于将 Wine Prefix 更改为另一个位置。例如,如果您希望合并 PoL 和 Wine(不推荐,因为 PoL 有多个前缀),您可以执行以下操作:

   `export WINEPREFIX="/home/USER/.PlayOnLinux/wineprefix/PREFIX"`
Run Code Online (Sandbox Code Playgroud)

其中 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

    如您所见,其中有 2 个带有空格的文件夹,“我的分区”和“魔兽世界”,但由于我引用了整个字符串,因此不需要包含转义字符。如果您希望使用 Wine Path(例如:C:/),那么所有斜线都是双斜线(例如:“C:\Program Files\App”)。

  • 应用于应用程序的参数应始终位于带引号的字符串之外。使用上面的示例,我们可以在引号外看到-opengl-console

  • 在处理占用您鼠标和/或键盘wineserver -k的应用程序时,您可以使用杀死该应用程序,或者只是在 Windows 模式下打开应用程序或使用wine explorer /desktop参数设置 Windows 模式将避免您遇到此鼠标/键盘问题。

10. Wine 为最终用户提供的稳定性、性能和应用程序支持

应用程序支持

我从 2005 年开始尝试 Wine,并看到 Ubuntu 下 Wine 的开发过程如何快速赶上最新的游戏。

在 2012 年左右 Wine 1.2 出现之前,很难让许多应用程序在 Wine 上运行,但在Wine 1.2出现之后,结果完全不同。在 20121.4、20131.62015 年 1.8之后更是如此。许多案例开始出现在他们可以开箱即用的地方。像深空 2 这样的案例,这是我当时可以玩的最新游戏之一,我在发布 3 天后对其进行了测试。爱丽丝梦游仙境(我的意思是新的)、模拟人生 3、魔兽世界、失忆症等。甚至可以玩天际。这些是需要强大图形的游戏,除了上面提供的正常安装之外,您只需很少或不需要其他设置即可玩它们。

要了解您可以在 Wine 上玩哪些游戏,我建议访问 Wine 应用程序数据库:http : //appdb.winehq.org/,其中包含超过 10K+。这包括有关其性能和稳定性的信息,并有助于了解游戏是否可玩。

Wine 应用程序数据库还提供了一个排名,可以确定哪些游戏可以以较少的问题进行播放(如果有的话)。当您看到此排名时,您就知道该应用程序是否有效。请注意,您还需要考虑测试仪在 Wine 数据库上显示的硬件和 Wine 版本。排名如下:

Platinum Rank - 意味着您有几乎 100% 的机会应用程序可以开箱即用。

Gold Rank - 意味着您可能会发现自己进行了一些配置,但最终会奏效。

Silver Rank - 表示该应用程序可以运行,但可能存在图形、声音或控制问题。

青铜级- 表示该应用程序将无法正常运行。

Garbage Rank - 表示该应用程序仍然无法运行,甚至可能无法安装。唯一能让它发挥作用的方法就是超人早上开始吃氪星麦片的时候。

作为参考,几年前白金游戏的数量还不到 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 等。基本上删除任何与葡萄酒有关的东西。

  • @LuisAlvarado,多么了不起的回复!PlayOnLinux +1;我什至不知道如何使用 Wine — 我只是让 PlayOnLinux 为我做所有事情。 (4认同)
  • 这是大量的信息!很容易这是我在这里见过的最长的答案。您不能直接进入 Ubuntu 软件中心,搜索 Wine 并单击安装吗? (2认同)

归档时间:

查看次数:

516750 次

最近记录:

4 年,6 月 前