Mono 和 Wine 可以在同一个操作系统中使用吗?两者同时使用有什么副作用?

Mono 和 Wine 可以在同一个操作系统中使用吗?两者同时使用有什么副作用?

作为上下文,我通过需要 Mono 的 Linux 终端在 Chromebook 上使用 Linux 版本的 BizHawk(多系统 TAS 模拟器)。出现错误(错误是当我尝试创建视频转储时崩溃),尽管有创建视频转储所需的 FFMPEG 软件版本,但我无法创建视频转储。我使用视频转储功能的唯一方法是为我的 Linux 终端获取一个实际的 FFMPEG 软件。这解决了问题,但是当我告诉某人这个问题时,他们告诉我不应该这样做。

他们还向我索要日志文件,他们注意到我当时同时拥有 Wine 和 Mono。我最终卸载并重新安装了 Linux Terminal,这次只安装了 Mono。我曾经在原始安装中使用过 Wine,但我将其删除以查看是否解决了问题。事实并非如此,因为模拟器或我的 Linux 终端可能有问题。我知道 Chromebook 的设计从来没有考虑过游戏,但我出于需要而需要使用它。

我也很困惑。我想对程序使用 Mono,对其他程序使用 Wine,但我不确定这是否会引起冲突。这里有人能告诉我同时使用两个模拟器有什么副作用吗?会导致崩溃吗?难道会引起其他Linux程序的一些问题吗?我的 Linux 终端上的 Linux 操作系统是 Debian 11 Bullseye。

答案1

是的,Mono 和 Wine 可以同时使用。但必须小心,因为 Mono 和 Wine 处理类似的可执行文件(Windows 可移植可执行文件,称为PE);这些太相似了Linux 的内置binfmt机制处理,因此需要外部支持。一种可能的支持机制是binfmt 支持;这包括可插入的检测机制。

没有 binfmt-support 这样的机制,但是 binfmt启用(这似乎是您系统上的情况),最后设置的 PE 处理程序获胜。这可能是您的系统上发生的情况,BizHawk 最终由 Wine 而不是 Mono 运行,反之亦然。如果 BizHawk 在 Wine 中运行,那么您还需要在 Wine 设置中安装 Windows 版本的 FFMPEG;如果它与 Mono 一起运行,那么您需要安装 Linux 版本的 FFMPEG。

我不知道你的环境中是否可以设置 binfmt-support(Debian 11 支持它,但我不知道 Debian 11 在 Chromebook 上的集成是什么样的)。你实际上并不需要这种机制能够使用 Mono 或 Wine 运行程序;您可以同时安装 Mono 和 Wine,并手动指定使用哪一个:

mono /path/to/program.exe

或者

wine /path/to/program.exe

相关内容