在 Ubuntu 上运行 OS X 命令行程序

在 Ubuntu 上运行 OS X 命令行程序

鉴于 Mac OS X 源自 BSD(伯克利系统发行版)UNIX,我认为可以通过某种方式在 Ubuntu 上运行命令行 OS X 程序。我实际上指的是那些不使用任何用户界面功能的已编译程序(在我的情况下,我需要运行可执行文件转换工具)。我感兴趣的特定工具可在 Mac OS X Mavericks 上运行。

如果有人知道实现此目的的方法,例如通过重新编译 Linux 内核或在 Ubuntu 上安装一些系统软件,请告诉我。我正在运行 Ubuntu 12.04.2 LTS,但如果绝对必要,我也可以升级系统。

答案1

Linux 和 OS X 是两个完全不同的操作系统,就像 Linux 和 BSD、OS X 和 Windows、Windows 和 Solaris 等一样。除非您拥有要使用的工具的源代码,否则您将无法将其从一个操作系统复制到另一个操作系统并期望它能正常工作。虽然它可能不需要“任何 I/O”即可运行(实际上,不是吗?全部如果说计算机程序“只是 I/O 程序”?那么它是由某个编译器针对某个工具链构建的,并且要求具有某些功能的某些库位于某些位置才能工作。

寻找源代码并尝试在 Linux 上重新编译,或者寻找 Linux 等效物。

答案2

这可能不会对您的情况有所帮助,但是在 unix 之间移动命令有三种常规方法,并且有一种可能有帮助的作弊方法。

  1. 找到一个已经移植的版本:例如,标准 mailx 命令已经实现了很多次。Debian 和 Umbutu 至少有三个版本。

  2. 重新编译/移植:如果您有权访问源代码,通常可以相当轻松地在另一个平台上重新编译,但有时会出现一些问题(您所说的选择修改/不修改其参数是什么意思)。

  3. 二进制仿真:在这种情况下,您有一个为一个操作系统编译的二进制文件,在另一个操作系统上运行。当您有动态库时,情况会变得复杂,并且需要具体和详细的​​信息,例如 ldd 说了什么。您可能希望大量依赖特定模拟器的论坛。如果您想这样做,请查看http://darling.dolezel.info/en/Darling

  4. 秘诀:文件共享和 ssh。您需要一个可供两台计算机、nfs samba、ftp 等使用的文件的公共位置。将文件放在 mac 可以读取的地方,使用 ssh 从 linux 登录到 mac,运行一个命令,可能移动结果,然后继续您的一天。

相关内容