我们有 葡萄酒,一个免费的开源兼容层,可帮助我们在 Linux 和类 Unix 操作系统上安装和运行为 Windows 开发的应用程序和游戏。 我们还有一个名为的模拟器 DOS框 在 Linux 中运行古老的 MS-DOS 游戏和不复存在的 C++ 编译器,如 Turbo C++。 macOS 软件呢? 你有没有想过如何在 Linux 下运行专门针对 mac 的应用程序? 这就是我们现在要做的。 本指南解释了如何在 Linux 操作系统上运行 macOS 软件使用 亲爱的 运行环境。
内容
什么是亲爱的?
Darling 是一个翻译层,它允许我们在 Linux 上运行 macOS 应用程序。 它模拟了一个完整的 达尔文 环境,包括 Mach、dyld、launchd 以及您期望的一切。 它让您可以立即切换到 Bash shell 并开始在您的 Linux 系统中运行为 macOS 构建的应用程序。 听起来很酷,是吗?
Darling 与 Wine 非常相似。 Wine 允许您在 Linux 上运行 Windows 应用程序。 Darling 让你可以运行 macOS 软件 Linux。
好在亲爱的不违反 苹果的 EULA. 因为它只使用作为完全免费软件发布的 Darwin 版本的部分。
“Darling”这个名字来自“Darwin”和“Linux”的组合。 您可能知道,Darwin 是 macOS 和 iOS 所基于的核心操作系统。
Darling 是在 GPLv3 下发布的免费开源软件。
在 Ubuntu Linux 中安装 Darling
目前,Darling 开发人员仅提供预编译的 DEB 包。 前往 发布页面 并下载提供的 DEB 包 darling
和 darling-dkms
(内核模块)。
$ sudo gdebi darling-dkms_0.1.20200331.testing_amd64.deb
示例输出:
Reading package lists... Done Building dependency tree Reading state information... Done Reading state information... Done Kernel module for Darling Do you want to install the software package? [y/N]:y /usr/bin/gdebi:113: FutureWarning: Possible nested set at position 1 c = findall("[[(](S+)/S+[])]", msg)[0].lower() Selecting previously unselected package darling-dkms. (Reading database ... 269719 files and directories currently installed.) Preparing to unpack darling-dkms_0.1.20200331.testing_amd64.deb ... Unpacking darling-dkms (0.1.20200331~testing) ... Setting up darling-dkms (0.1.20200331~testing) ... >>> DKMS: Module add, build, and install Creating symlink /var/lib/dkms/darling-mach/0.1/source -> /usr/src/darling-mach-0.1 DKMS: add completed. Kernel preparation unnecessary for this kernel. Skipping... Building module: cleaning build area.... 'make' -C lkm/ MIGDIR=/usr/src/darling-mach-0.1/miggen MIGDIR_REL=../miggen KERNELVERSION=5.4.0-48-generic........................................... cleaning build area... DKMS: build completed. darling-mach.ko: Running module version sanity check. - Original module - No original module exists within this kernel - Installation - Installing to /lib/modules/5.4.0-48-generic/updates/dkms/ depmod............ DKMS: install completed.
安装 darling-dkms 包后,使用命令安装 darling:
$ sudo gdebi darling_0.1.20200331.testing_amd64.deb
示例输出:
Reading package lists... Done Building dependency tree Reading state information... Done Reading state information... Done Requires the installation of the following packages: libc6-i386 Darling macOS emulation layer for Linux Do you want to install the software package? [y/N]:y /usr/bin/gdebi:113: FutureWarning: Possible nested set at position 1 c = findall("[[(](S+)/S+[])]", msg)[0].lower() Get:1 https://ny-mirrors.evowise.com/ubuntu focal-updates/main amd64 libc6-i386 amd64 2.31-0ubuntu9.1 [2721 kB] Fetched 2721 kB in 0s (0 B/s) Selecting previously unselected package libc6-i386. (Reading database ... 274071 files and directories currently installed.) Preparing to unpack .../libc6-i386_2.31-0ubuntu9.1_amd64.deb ... Unpacking libc6-i386 (2.31-0ubuntu9.1) ... Setting up libc6-i386 (2.31-0ubuntu9.1) ... Processing triggers for libc-bin (2.31-0ubuntu9.1) ... Selecting previously unselected package darling. (Reading database ... 274374 files and directories currently installed.) Preparing to unpack darling_0.1.20200331.testing_amd64.deb ... Unpacking darling (0.1.20200331~testing) ... Setting up darling (0.1.20200331~testing) ... >>> Shutting down old instances of Darling Seeing if Darling is currently running No instances running now
我喜欢安装的原因 .deb
包与 Gdebi
它会自动解决所需的依赖项并为我安装它们。 如果您更喜欢使用 dpkg
包管理器,您需要先安装 Darling DEB 包,然后安装缺少的依赖项,如下所示。
$ sudo gdebi darling-dkms_0.1.20200331.testing_amd64.deb
$ sudo gdebi darling_0.1.20200331.testing_amd64.deb
$ sudo apt install -f
在其他 Linux 发行版上,您可能需要按照说明从源代码手动编译和安装 Darling 这里.
使用 Darling 在 Linux 上运行 MacOS 软件
Darling 的开发人员正计划构建一个漂亮且用户友好的 GUI 来与 Darling 交互。 但目前,我们只能通过命令行与 Darling 交互。
要进入 Darling shell,只需以普通用户身份运行以下命令:
$ darling shell Loaded the kernel module Setting up a new Darling prefix at /home/sk/.darling Bootstrapping the container with launchd... Darling [/Volumes/SystemRoot/home/sk/Downloads/darling]$
此命令将启动一个虚拟根目录(即容器)或连接到一个已经运行的容器并在其中生成 shell。
如果需要,它还将自动加载内核模块并初始化前缀内容。 Darling 前缀被称为 DPREFIXes
,这非常类似于 WINEPREFIXes
. 前缀只不过是一个虚拟的“chroot”环境,具有类似 macOS 的文件系统结构,我们可以在其中安全地安装软件。
当前在容器内运行的 shell 是 Bash
它的版本是3.2。
$ bash --version GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin14) Copyright (C) 2007 Free Software Foundation, Inc.
现在,我们处于模拟的 macOS 类环境中。 由于 macOS 是 Unix 变体,因此许多 Linux 和 Unix 命令应该可以在 Darling shell 中运行。
例如,使用命令打印操作系统的名称:
$ uname Darwin
列出内容 root (/)
目录:
$ ls -l /
示例输出:
total 120 drwxr-xr-x 2 sk sk 4096 Oct 5 09:54 Applications drwxr-xr-x 1 sk sk 4096 Oct 5 07:19 Library drwxr-xr-x 1 sk sk 4096 Oct 5 07:19 System drwxrwxr-x 4 sk sk 4096 Oct 5 09:54 Users drwxr-xr-x 1 sk sk 4096 Oct 5 09:54 Volumes drwxr-xr-x 1 sk sk 4096 Oct 5 07:20 bin lrwxrwxrwx 1 sk sk 23 Mar 31 2020 dev -> /Volumes/SystemRoot/dev lrwxrwxrwx 1 sk sk 11 Mar 31 2020 etc -> private/etc drwxr-xr-x 1 sk sk 4096 Oct 5 09:54 private dr-xr-xr-x 292 sk sk 0 Oct 5 09:54 proc drwxr-xr-x 1 sk sk 4096 Oct 5 07:20 sbin lrwxrwxrwx 1 sk sk 11 Mar 31 2020 tmp -> private/tmp drwxr-xr-x 1 sk sk 4096 Oct 5 09:54 usr drwxr-xr-x 5 sk sk 4096 Oct 5 09:54 var
同样,使用任何 macOS 特定的命令来探索模拟环境。
亲爱的文件系统布局
如果您已经熟悉 macOS 文件系统,您会注意到容器内部的文件系统布局与 macOS 类似,包括顶级目录,例如 /Applications
, /Users
, 和 /System
等等。
原始 Linux 文件系统作为一个单独的分区可见 /Volumes/SystemRoot
. 您可以通过运行具有完整路径名的任何 Linux 命令来验证它,如下所示:
$ /Volumes/SystemRoot/bin/uname Linux
正如您在上面的输出中看到的,它列出了我实际的主机系统名称,而不是容器的名称。 如果不指定拉取路径(即 /Volumes/SystemRoot/bin/uname
),它将列出容器的名称。
在 Darling 下运行 macOS 程序时,您可能希望它们访问您的主文件夹中的文件。 为方便起见,有一个 LinuxHome
从容器内部可以看到 Darling 主文件夹中指向 Linux 主文件夹的符号链接。 此外,标准目录,例如 Downloads
Darling 主文件夹中的 符号链接到 Linux 主文件夹中的相应文件夹。
您目前可以使用 Darling 执行的操作列表
请注意,大多数 GUI 应用程序 目前不会工作. 目前,您只能运行一些简单的图形应用程序和许多命令行程序。 不要失望。 GUI 应用程序还不能开箱即用。 开发人员正在致力于将 Darling 下运行的应用程序完全集成到 Linux 桌面,就像本地应用程序一样。 从长远来看,他们甚至计划支持 iOS 应用程序。
这是您当前可以使用 Darling 运行的命令列表。
使用命令打印 Mac OS X 操作系统详细信息:
$ sw_vers
此命令将显示 Mac OS 名称、产品版本和构建版本:
ProductName: Mac OS X ProductVersion: 10.14 BuildVersion: Darling
使用在标准输出上打印一些很酷的东西 echo
命令:
$ echo Welcome To OSTechNix Welcome To OSTechNix
显示操作系统名称:
$ uname Darwin
探索 Darling 文件系统:
$ ls -l /
$ ls -l /Library/ total 56 drwxr-xr-x 1 sk sk 4096 Oct 5 07:19 Developer drwxr-xr-x 1 sk sk 4096 Oct 5 07:20 Documentation drwxr-xr-x 1 sk sk 4096 Mar 31 2020 LaunchAgents drwxr-xr-x 1 sk sk 4096 Mar 31 2020 LaunchDaemons drwxr-xr-x 1 sk sk 4096 Oct 5 07:19 Python
$ ls -l /Volumes/ total 8 lrwxrwxrwx 1 sk sk 1 Mar 31 2020 DarlingEmulatedDrive -> / drwxr-xr-x 25 sk sk 4096 Oct 5 07:19 SystemRoot
$ ls -l /System/Library/ total 120 drwxr-xr-x 1 sk sk 4096 Oct 5 07:19 Components drwxr-xr-x 1 sk sk 4096 Oct 5 07:20 CoreServices drwxr-xr-x 1 sk sk 4096 Oct 5 07:20 Frameworks drwxr-xr-x 1 sk sk 4096 Oct 5 07:20 LaunchDaemons drwxr-xr-x 1 sk sk 4096 Oct 5 07:19 OpenSSL drwxr-xr-x 1 sk sk 4096 Oct 5 07:19 Perl drwxr-xr-x 1 sk sk 4096 Oct 5 07:19 PrivateFrameworks drwxr-xr-x 1 sk sk 4096 Mar 31 2020 Security drwxr-xr-x 1 sk sk 4096 Oct 5 07:19 User Template
显示当前运行的进程:
$ ps aux USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND sk 127 0.0 0.1 4226308 8760 ?? R 1Jan70 0:00.02 nps aux sk 19 0.0 0.1 4219692 5944 ?? R 1Jan70 0:00.03 o/usr/libexec/shellspawn sk 20 0.0 0.1 4342428 9236 ?? R 1Jan70 0:00.06 s/usr/sbin/syslogd sk 21 0.0 0.1 4224292 8956 ?? R 1Jan70 0:00.03 s/usr/sbin/memberd -x sk 22 0.0 0.2 4355536 15544 ?? R 1Jan70 0:00.06 /usr/sbin/iokitd sk 23 0.0 0.1 4423744 9400 ?? R 1Jan70 0:00.14 //usr/sbin/notifyd sk 33 0.0 0.1 4480688 8576 ?? R 1Jan70 0:00.06 oaslmanager sk 39 0.0 0.0 4227884 3952 ?? RN 1Jan70 0:00.01 s/usr/libexec/shellspawn sk 40 0.0 0.1 4226028 10084 ?? R 1Jan70 0:00.38 e/bin/bash --login sk 1 0.0 0.1 4260676 9536 ?? R 1Jan70 0:01.06 n/sbin/launchd
检查坐骑:
$ column -t /proc/self/mounts
阅读手册页:
$ man uname
你可以做更多。 一切都在标题为 “尝试什么” 在最后链接的官方文档中。
终止亲爱的
您已经完成了对 Mac OS 的探索,只需从 Darling shell 退出并使用以下命令关闭容器:
$ exit
$ darling shutdown
当容器关闭时,您不会看到任何通知。 再次运行该命令,您将看到以下输出:
Darling container is not running
结论
与 Wine 不同,Darling 不是一个成熟的项目。 使用Wine,你可以在Linux 下运行如此多的windows 应用程序,甚至一些高端游戏。 不幸的是,Darling 帮不上什么忙。 目前它只能运行少数命令行程序。 它仍处于 alpha 阶段。 您可以将其用于基本的学习和测试目的。
试一试,让我们知道如何在下面的评论部分进行。
资源:
- 亲爱的网站
- 亲爱的 GitHub 存储库
- 亲爱的文档
ErfourisStudio 在Pixabay上的精选图片。
AppleDarlingDarwinEmulatorLinuxmacOSOpensourceUnix