使用Darling在Linux上运行MacOS软件
我们有 葡萄酒,这是一个免费的开放源代码兼容性层,可帮助我们在Linux和类似Unix的操作系统上安装和运行为Windows开发的应用程序和游戏。 我们还有一个名为 剂量盒 在Linux上运行古老的MS-DOS游戏和废弃的C ++编译器,例如Turbo C ++。 那么macOS软件呢? 您是否曾经想在Linux下运行专门针对Mac的应用程序? 这就是我们现在要看到的。 本指南说明了如何使用以下命令在Linux操作系统上运行macOS软件 宠儿 运行环境。
Darling是一个转换层,使我们可以在Linux上运行macOS应用程序。 它模拟一个完整的 达尔文 环境,包括Mach,dyld,发射以及您期望的一切。 它使您可以立即切换到Bash Shell,并开始在Linux系统中运行为macOS构建的应用程序。 听起来不错,是吗?
亲爱的与酒很相似。 Wine允许您在Linux上运行Windows应用程序。 Darling使您可以运行macOS软件Linux。
好东西是达令没有违反 苹果的EULA。 因为它仅使用作为完全免费软件发布的达尔文版本的某些部分。
“ 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 http://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]$
该命令将启动虚拟根目录(即容器)或连接到已经运行的容器并在其中生成外壳程序。
发射达令壳
如果需要,它还将自动加载内核模块并初始化前缀内容。 亲爱的前缀称为 DPREFIXes
,它们与 WINEPREFIXes
。 前缀不过是具有类似于macOS的文件系统结构的虚拟“ chroot”环境,我们可以在其中安全地安装软件。
当前在容器内运行的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应用程序,甚至包括一些高端游戏。 不幸的是,达令没有太大帮助。 目前,它只能运行少数几个命令行程序。 它仍处于alpha阶段。 您可以将其用于基本的学习和测试目的。
试试看,让我们知道如何在下面的评论部分。
资源:
特色图片 ErfourisStudio 从 Pixabay。
AppleDarlingDarwinEmulatorLinuxmacOS开源Unix