如何在 Linux 上运行 Windows 软件?

准备好投入 Linux 的怀抱,但又不太想放弃您最喜欢的应用程序?或许有解决方案。
790 位读者喜欢这篇文章。
Windows

MartinHarry,来自 Pixabay。CC0 许可。

所以您已准备好跳到 Linux,但您仍然有一些程序不舍得放弃。您还能在 Linux 上运行 Windows 软件吗?

答案可能是肯定的,但有一些注意事项。

在继续之前,我想强调一个重要的区别。这可能看起来很明显,但有必要重复一遍:在 Linux 上运行程序并不会神奇地使其成为开源软件,就像在 Windows 上运行程序不会使其成为闭源软件一样。

 

虽然在理想的世界中,我们都只会在开源操作系统之上运行开源软件,但这对于今天的许多人来说并非一种选择,因此弥合开放和专有之间的差距是将新用户带向更开放世界的重要一步。

即使程序是免费和开源的,这也不意味着有人花时间将它们移植到您首选的操作系统。也许该软件现在已经有几年甚至几十年历史了,或者您想要一个特定功能,但该功能并未内置到为您操作系统发布的版本中。

无论您的原因是什么,如果您希望将 Windows 程序带到 Linux,您都有几种选择。以下是我会如何处理的方法。

查找 Linux 版本

当我最终放弃我的最后一个 Windows 分区转而使用 Linux 时,让我轻松过渡的事情之一是,我多年来一直在使用的许多开源软件都可以立即在我的 Linux 发行版中使用。像 Blender、Inkscape、GIMP、LibreOffice、FileZilla、Calibre、Audacity、VLC 等程序已经是我在 Windows 上的工作流程的一部分。许多程序是默认安装的,而其他程序只需在我的软件包管理器中快速搜索即可找到。对于那些习惯于在 Windows 中查找、下载和手动安装二进制文件的人来说,Linux 使获取这些软件甚至比以前更容易。

除了开源软件,您还会发现许多您尚未开源的收藏夹也为 Linux 构建,从 Chrome 到 Slack 再到 Skype。对于游戏玩家来说,Steam 安装得很好,并且无需额外努力即可为您提供您在 Windows 上可以访问的许多游戏。不仅有独立游戏,还有一些新旧顶级游戏。现在我的 Steam 游戏库中几乎一半的游戏都有原生 Linux 端口。

简而言之,在尝试使 Windows 版本正常工作之前,请确保您没有错过原生 Linux 应用程序。

选择替代方案

您的 Windows 程序的替代方案并不总是一个可行的选择。如果您正在参加一个围绕如何使用特定应用程序的课程,或者您需要能够导出为只有原始程序才能使用的特定专有格式,或者根本没有提供相同功能的切实可行的开源程序,那么,当然,寻找替代方案不会是您的最佳方法。

话虽如此,我无法告诉您我听过多少人坚持他们需要一个特定程序,而实际上他们真正想说的是他们需要一个特定功能。当然,如果您是电脑新手,并且从未使用过 Firefox,您可能会认为您需要 Internet Explorer 才能浏览互联网,但如果您愿意看看您错过了什么,您可能会惊喜地发现。

我也无法告诉您有多少次有人说他们需要最昂贵、行业领先、功能齐全的产品来完成特定任务。不,您可能不需要 AutoCAD 来规划那个树屋,也不需要 Photoshop 仅仅裁剪几张照片。问问自己您真正需要做什么。

开源替代方案并非旨在制作另一个应用程序的 1:1 克隆,至少通常不是。它们旨在为相同的通用问题提供类似的解决方案。它们不一定更好或更坏,它们只是不同,可能需要一点时间来适应。

使用 Wine

找不到 Linux 的原生版本,并且不想使用替代方案?开源项目 Wine 是您的下一站。Wine 是“Wine is not an emulator”(Wine 不是模拟器)的递归首字母缩写词,尽管您可能会情有可原地认为它是。Wine 提供了一个抽象层,对于 Windows 可执行文件,它通过重新创建程序期望的 Windows 系统的许多元素,使您的 Linux 系统看起来像 Windows 机器。

对于许多应用程序,Wine 运行完美;您很难分辨这些程序不是为在 Linux 上原生运行而设计的,除了 Windows 风格的窗口边框和小部件。而且它很容易安装;Wine 很可能已打包在您的 Linux 发行版中,并且位于您的默认存储库中,可以像任何其他程序一样安装。

它不仅适用于独立应用程序。您可以对许多 Windows 程序使用默认安装程序,它们将被正确安装和配置以在您的 Linux 机器上运行。

对于游戏,Wine 可能有点挑剔。许多游戏可以在默认设置下正常工作,但您可能需要进行一些调整才能使一切完美运行。幸运的是,那里有一个庞大的社区来支持您。您可能还想查看基于 Wine 的 PlayOnLinux,它提供了一个更简单的界面来启动和运行许多游戏。

运行虚拟机

有时,兼容性层是不够的。虚拟化允许您在 Linux 操作系统之上运行整个 Windows 操作系统,包括应用程序。用于桌面虚拟化的流行工具包括 VirtualBox、Boxes 和 Virtual Machine Manager。对于后者,虚拟化实际上是由一个较低级别的程序完成的,通常是直接构建到您的 Linux 内核中的 KVM 虚拟化基础设施,但带有一个友好的用户界面。

这种技术的缺点是您仍然需要 Windows 许可证,并且速度不会像原生运行应用程序那样快。

虽然虚拟化可以在许多应用程序中提供出奇的好性能,但它往往在图形密集型应用程序中表现不佳。特别是,除非您花时间正确配置,否则在虚拟机上玩游戏将是一种非常痛苦的体验,这可能很困难。您最好使用一种称为 VGA 直通 的技术,将视频卡的控制权直接传递给虚拟机,但设置它不是初学者的任务。您需要仔细阅读说明,如果您是 Linux 新手,可能需要寻求一些帮助。

双启动

无法在 Wine 中运行您的应用程序?虚拟化无法提供您需要的性能?您可以始终与 Windows 双启动,并且时不时地回到您的 Windows 分区以使用专用应用程序。

但就我个人而言,当我想帮助人们迁移到 Linux 时,我倾向于鼓励将双启动作为最后的手段,而不是首选。为什么?坦率地说,一旦您为了一个任务跳过去,就太容易留在 Windows 中了。如果您真的有兴趣学习使用 Linux,最好完全致力于切换,而不是每次遇到障碍时都屈服于以“旧方式”做事的诱惑。

一旦您使用 Linux 一段时间后,您很可能会认为必须重新启动才能使用 Windows 是一种障碍。此外,无论如何,可能有一种在 Linux 中完成您想做的事情的方法,也许效率更高。

那么您呢?您是否偶尔在您的 Linux 桌面上运行 Windows 软件?您有什么技巧和技术可以分享?

Jason Baker
前红帽员工。现在是一名顾问和有抱负的企业家。地图爱好者、创客和开源桌面和自托管软件的热情安装者。

14 条评论

我不在 Linux 上运行 Windows 程序,但我在 Windows 上通过 cygwin 运行 Linux 程序。我就是离不开 vi 和 grep。后者非常有用,而 W10 搜索不可靠。实际上,我发现 XP 之后的 M$ o/s 上的搜索都不可靠。我也使用 Perl/Tk!

我很久以前就想切换到 Linux,但我担心我会错过大学需要的一些仅限 Windows 的应用程序,也不想花时间去寻找为什么某些程序无法工作的解决方案,而我可以用来学习... UEFI 和 sdd + hdd 也大大复杂化了安装。找不到指南,太笨了,无法自己思考如何在 uefi 和两个磁盘上进行双启动。

没人用 PlayOnLinux 吗?我们主要用它来运行 Windows 游戏。因此,除了您已经提到的 Steam 之外,您还可以使用 PlayOnLinux 在 Linux 上运行 Windows 游戏。

实际上,我为 Linux 游戏写了一篇文章 https://thishosting.rocks/best-linux-distros-for-gaming/ 发行版,并包含了关于 PlayOnLinux、Wine、Steam 和一些游戏发行版的信息。

我喜欢 Play On Linux。它是一个很酷的 WINE 发行版。很高兴文章中提到了它。

回复 作者 Nick (未验证)

PlayOnLinux 和 Wine 是运行那些每个人“都必须拥有”的 MS 程序的绝佳程序。我发现,如果有人要求这些类型的程序,那是因为他们不想学习任何其他东西。这是“我不喜欢改变”综合症。我知道改变对于普通最终用户来说很难;甚至对于一些 IT 专业人士来说也是如此;但是如果他们花时间真正学习替代方案,他们会发现它完全可以满足他们的需求,有时甚至更好。这是一种心理作用。

我使用 VirtualBox 运行 Win 8.1。我只需要它来做三件我目前无法在 Linux 中做的事情。我怀疑这种情况会随着时间而改变。否则,我 99% 的工作都是严格在 Linux 上完成的。

我不使用任何 Windows 程序,绝对不用。我已经为我需要的一切找到了替代方案。从 Microsoft Office (LibreOffice) 和 Microsoft Edge (Firefox, Vivaldi...Opera 的新浏览器)...Adobe Acrobat Reader (eVince) 当然还有 Windows Media Player (Clementine...VLC) 到那些不一定与 Windows 一起安装的东西 (Visio=VYM: V-iew Y-our M-ind/Dia)。我发现必须下载 ".exe" 文件然后安装它很耗时,而我只需打开终端并 yum install...或 apt-get install 我需要的任何东西来用于我的 Linux 系统。我想这是成熟的标志。当我们第一次接触电脑时,我们被“喂食”了一个操作系统,在某个时候,无论是由于您在 Windows 世界中无法解决的软件/硬件问题,还是导致您的 Windows 系统崩溃的灾难性事件....但最终您渴望....不.....您要求您的系统提供更多,而 Windows 只会给您“足够”的 PC 使用量。而 Linux 会给您想要的一切(并且没有您不需要的!哈哈!)所以对我来说?...我不需要任何来自雷德蒙德的东西....对不起微软,但我很久以前使用 Windows XP 时被您伤害过一次....我永远不会再犯同样的错误了!并且由于 Linux 永远在发展,我不必担心收不到安全更新和补丁。

我过去使用 Crossover(基本上是 Wine 封装器),它工作得非常好。特别是,我过去常常在 Linux 上运行 MS Office,因为我因工作原因被迫使用它。我的经验大约在 2013 年左右;不确定现在还能否正常工作。

我已经使用 Linux 4 年了,我从来没有觉得我应该回到 Windows 或任何其他操作系统。Linux 中几乎应有尽有,用于处理图像我使用 pinta 和 GIMP,对于办公室工作我使用 Libre office,而 Google Docs 可能是另一种选择,我认为它在编程方面是最好的。
根据我的经验,永远不要双启动,否则您迟早会回到 Windows,而是在 Linux 本身中找到出路(向社区求助是解决许多问题的好方法)。

“Wine 是一个递归算法”

我很确定您指的是首字母缩写词,而不是算法。

哈哈。我的确是这个意思。已修复,谢谢!

回复 作者 Shon

我从 Fedora1 开始入门,自从我在 Fedora3 左右取消我的 XP 安装后,就再也没有回头。当我劝说当地人进行切换时,我经常会引导他们解决很多这些问题。阅读这篇文章并没有给我个人带来太多新信息,但我数不清有多少次我一边点头一边微笑,回忆起我跨越您所描述的任何鸿沟。

很棒的文章。我很少在 Linux 上运行专为其他操作系统设计的软件,但因此我确实错过了一些程序。这就是我创建 https://www.softwareonlinux.com 的原因 - 我想绘制 Linux 上程序的需求图,以便说服供应商开始支持 Linux。如果您希望某些程序在 Linux 上原生运行,请考虑在该网站上表明这一点!

与此同时,我们将继续使用 Wine 和虚拟机 :)

© . All rights reserved.