使用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軟件包 darlingdarling-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階段。 您可以將其用於基本的學習和測試目的。

試試看,讓我們知道如何在下面的評論部分。

資源:

特色圖片 ErfourisStudioPixabay

AppleDarlingDarwinEmulatorLinuxmacOS開源Unix

Sidebar