有没有办法在macOS上运行Linux二进制文件?


16

有没有办法在macOS中运行Linux二进制文件?我试图运行二进制文件,但它说它不是可执行文件。


这是行不通的。OSX内核与Linux内核有所不同。
ott-- 2015年

OS X不使用elf二进制文件,因此有点像尝试运行Windows .exe。但是,通过简短搜索可以找到以下内容:osxbook.com/software/xbinary如果可以重新编译代码,这不是问题。
Orion

XBinary需要一个知道如何运行二进制文件的程序。它本身并没有运行任何东西。
saagarjha

Answers:


9

这些答案是正确的一半,因为虚拟化是一种选择,但还有另一种选择。我可以介绍...

历史

  1. 首先是UNIX,大约在1972年
  2. 然后时间轴分裂
    • 1977年,鲍勃·法布里Bob Fabry)等人以90美元的价格编译/构建了BSD的第一个版本,是Berkeley Systems Distribution的缩写。
    • 1991年,Linus Torvalds在新闻组中发布了有关他从1983年创立GNU的Richard Stallman使用的软件的信息,Linus的 UNIX诞生了。
    • 史蒂夫·乔布斯(Steve Jobs)在1984年被苹果解雇后,苹果于1996年重新收购了NeXT软件,并使用该软件和人员在那里构建了OSX。OSX 是Darwin OS + NeXT桌面环境。现在,我们又回到Bullet#1,因为Darwin是BSD的封闭源代码分支。有关开源项目,请参见PureDarwin。有关Apple开发人员的官方页面,请参阅Apple Open Source

我们如何使用它

BSD通常使用Ports系统进行软件包管理。其中使用最广泛的是FreeBSD端口。端口是直接从源安装的软件包。由于相同的Linux应用程序来自相同的来源,因此如果存在端口,则可以运行Linux应用程序。不要在Mac上使用这些端口,因为...


由于所有Apple的GUI都是使用Cocoa API-WikiEntry编写的并与XCode-OS X捆绑在一起,适用于开发人员,因此可以调整端口以利用此优势:

  1. 为您的OS X版本安装XCode。
  2. XCode中捆绑了Apple版本的GCC编译器以及所有其他相关工具。要更新工具,请参阅StackOverflow上的这篇文章。据我所知,这些工具依赖于OS版本,即它们不向后兼容(总之,不要在10.6上安装10.8的XCode等)。
  3. 安装XCode之后,您现在有了编译器,可以在安装MacPorts .pkg安装程序后转到MacPorts页面并浏览需要安装的端口。

警告

除非端口写得好,否则端口系统不必进行依赖检查。我在gentoo portage覆盖中轻触了elibc_FreeBSD是什么意思的问题


18

我最近开始使用Noah在macOS中运行Linux二进制文件。您可以使用自制软件(brew install linux-noah/noah/noah)进行安装。然后,您应该可以执行以下操作:

noah linux_binary

以我的经验,二进制文件的行为与我在Ubuntu计算机上看到的行为相符。


尽管该命令有效并且没有出现错误,但我的二进制文件未按预期工作
techkuz

2

我知道这可以通过某种虚拟化来完成。例如,您可以使用vagrant,它是围绕Oracle的VBox或VMware的vmplayer的包装。有时要做的另一件事是将其放入docker等容器中。


2

硬件仿真

不直接!是的,正如您所说的那样,您必须使用VirtualBoxVMWare Fusion对其进行虚拟化,这将与您的CPU类型匹配。

还有Qemu,它将虚拟化不同的CPU类型,例如Intel或Power等。

软件仿真

还有一个软件层仿真,其中包含诸如WiNE之类的程序以及我自己的emulayer程序(WiP),它们都通过将系统调用转换为POSIX来部分仿真Windows操作系统。

大多数Linux应用程序将在OSX上运行并重新编译源代码。


我为您修复了链接。欢迎来到U&L.SE。
eyoung100
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.