如何在 Linux 上运行 Windows 软件?

准备好投入 Linux 的怀抱,但还没有完全准备好放弃您最喜欢的应用程序? 可能有解决方案。
790 位读者喜欢这个。
Windows

Pixabay 上的 MartinHarry。 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 是一种递归算法”

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

我在 Fedora1 上入门,自从我在 Fedora3 左右取消我的 XP 安装以来,我就没有回头看过。 当我说服任何人进行切换时,我都会向当地人讲解很多这些问题。 阅读这篇文章并没有给我个人带来太多新信息,但我无法计算有多少次我在点头微笑,因为我回想起跨越您所描述的任何鸿沟。

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

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

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.