GNU/Linux >> Znalost Linux >  >> Linux

Spusťte software MacOS na Linuxu pomocí Darling

Máme Víno , bezplatná a open-source vrstva kompatibility, která nám pomáhá instalovat a spouštět aplikace a hry vyvinuté pro Windows v operačních systémech Linux a Unix. Máme také emulátor s názvem Dosbox ke spouštění starých dobrých her pro MS-DOS a zaniklých kompilátorů C++, jako je Turbo C++ v Linuxu. A co software macOS? Přemýšleli jste někdy o tom, jak spouštět aplikace speciálně pro mac pod Linuxem? To je to, co teď uděláme. Tato příručka vysvětluje, jak spustit software macOS v operačních systémech Linux pomocí Darling běhové prostředí.

Co je Darling?

Darling je překladatelská vrstva, která nám umožňuje spouštět aplikace macOS na Linuxu. Napodobuje kompletního Darwina prostředí, včetně Mach, dyld, launchd a vše, co byste očekávali. Umožňuje vám okamžitě přepnout do prostředí Bash a začít spouštět aplikace vytvořené pro macOS ve vašem systému Linux. Zní to skvěle, že?

Darling je velmi podobný Vínu. Wine umožňuje spouštět aplikace pro Windows na Linuxu. Darling vám umožňuje spouštět software macOS Linux.

Dobrá věc je, že Darling neporušuje EULA společnosti Apple . Protože používá pouze části verze Darwin, které jsou vydány jako plně svobodný software.

Název „Darling“ pochází z kombinace „Darwin“ a „Linux“. Jak asi víte, Darwin je základní operační systém, na kterém jsou založeny macOS a iOS.

Darling je bezplatný software s otevřeným zdrojovým kódem vydaný pod licencí GPLv3.

Nainstalujte Darling v Ubuntu Linux

V současné době vývojáři Darling poskytli pouze předkompilované DEB balíčky. Přejděte na stránku vydání a stáhněte si balíčky DEB, které jsou poskytovány pro darlingdarling-dkms (modul jádra).

$ sudo gdebi darling-dkms_0.1.20200331.testing_amd64.deb

Ukázkový výstup:

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.

Po instalaci balíčku darling-dkms nainstalujte darling pomocí příkazu:

$ sudo gdebi darling_0.1.20200331.testing_amd64.deb 

Ukázkový výstup:

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

Důvod, proč raději instaluji .deb balíčky s Gdebi je to automaticky vyřeší požadované závislosti a nainstaluje je za mě. Pokud dáváte přednost použití dpkg správce balíčků, musíte nejprve nainstalovat balíčky Darling DEB a poté nainstalovat chybějící závislosti, jak je uvedeno níže.

$ sudo gdebi darling-dkms_0.1.20200331.testing_amd64.deb
$ sudo gdebi darling_0.1.20200331.testing_amd64.deb
$ sudo apt install -f

V jiných distribucích Linuxu možná budete muset ručně zkompilovat a nainstalovat Darling ze zdroje, jak je popsáno zde .

Spusťte software MacOS na Linuxu pomocí Darling

Vývojáři Darling plánují vytvořit pěkné a uživatelsky přívětivé GUI pro interakci s Darlingem. Ale prozatím můžeme s Darlingem komunikovat pouze přes příkazový řádek.

Chcete-li vstoupit do Darling shellu, jednoduše spusťte následující příkaz jako normální uživatel:

$ 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]$

Tento příkaz spustí virtuální kořenový adresář (tj. kontejner) nebo se připojí k již běžícímu kontejneru a vytvoří uvnitř shell.

V případě potřeby také automaticky načte modul jádra a inicializuje obsah předpony. Předpony Darling se nazývají DPREFIXes , které jsou velmi podobné WINEPREFIXes . Předpona není nic jiného než virtuální „chroot“ prostředí se strukturou souborového systému podobnou macOS, kam můžeme bezpečně nainstalovat software.

Aktuální shell běžící uvnitř kontejneru je Bash a jeho verze je 3.2.

$ bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin14)
Copyright (C) 2007 Free Software Foundation, Inc.

Nyní jsme v emulovaném prostředí podobném macOS. Vzhledem k tomu, že macOS je varianta Unixu, mnoho příkazů pro Linux a Unix by mělo fungovat v prostředí Darling Shell.

Například vytiskněte název operačního systému pomocí příkazu:

$ uname
Darwin

Vypište obsah root (/) adresář:

$ ls -l /

Ukázkový výstup:

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

Podobně použijte jakékoli příkazy specifické pro macOS k prozkoumání emulovaného prostředí.

Drahé rozložení souborového systému

Pokud jste již obeznámeni se souborovým systémem macOS, všimnete si, že rozvržení souborového systému uvnitř kontejneru je podobné rozvržení systému macOS, včetně adresářů nejvyšší úrovně, jako je /Applications/Users/System atd.

Původní souborový systém Linux je viditelný jako samostatný oddíl, který je připojen k /Volumes/SystemRoot . Můžete to ověřit spuštěním libovolného příkazu Linux s úplným názvem cesty, jako je níže:

$ /Volumes/SystemRoot/bin/uname 
Linux

Jak vidíte ve výše uvedeném výstupu, uvádí název mého skutečného hostitelského systému, nikoli název kontejneru. Pokud neurčíte cestu pro stažení (tj. /Volumes/SystemRoot/bin/uname ), zobrazí se název kontejneru.

Když spouštíte programy macOS pod Darlingem, možná budete chtít, aby měly přístup k souborům ve vaší domovské složce. Aby to bylo pohodlné, existuje LinuxHome symbolický odkaz ve vaší domovské složce Darling, který ukazuje na vaši domovskou složku Linuxu, jak je vidět z kontejneru. Navíc standardní adresáře, jako je Downloads ve vaší domovské složce Darling jsou symbolicky propojeny s odpovídajícími složkami ve vaší domovské složce Linuxu.

Seznam věcí, které můžete aktuálně dělat s Darlingem

Upozorňujeme, že většina aplikací GUI v tuto chvíli nebude fungovat . V současné době můžete spouštět pouze některé jednoduché grafické aplikace a mnoho programů příkazového řádku. Nebuď zklamaný. Aplikace GUI po vybalení nefungují zatím . Vývojáři na tom pracují, aby plně integrovali aplikace běžící pod Darlingem do plochy Linuxu, stejně jako nativní aplikace. Mají dokonce plány na podporu aplikací pro iOS v dlouhodobém horizontu.

Zde je seznam příkazů, které můžete aktuálně spouštět s Darlingem.

Vytiskněte podrobnosti o operačním systému Mac OS X pomocí příkazu:

$ sw_vers

Tento příkaz zobrazí název Mac OS, verzi produktu a verzi sestavení:

ProductName:    Mac OS X
ProductVersion: 10.14
BuildVersion:   Darling

Vytiskněte něco skvělého na standardní výstup pomocí echo příkaz:

$ echo Welcome To OSTechNix
Welcome To OSTechNix

Zobrazit název operačního systému:

$ uname 
Darwin

Prozkoumejte souborový systém 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

Zobrazit aktuálně běžící procesy:

$ 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 

Zkontrolujte úchyty:

$ column -t /proc/self/mounts 

Přečtěte si manuálové stránky:

$ man uname

Můžete udělat víc. Vše je uvedeno v části s názvem „Co zkusit“ v oficiální dokumentaci odkazované na konci.

Ukončit Darling

Jakmile budete s prozkoumáváním Mac OS hotovi, jednoduše opusťte prostředí Darling Shell a vypněte kontejner pomocí příkazů:

$ exit
$ darling shutdown

Při vypínání kontejneru neuvidíte žádné upozornění. Spusťte tento příkaz znovu a uvidíte následující výstup:

Darling container is not running

Závěr

Na rozdíl od Wine není Darling vyspělým projektem. Pomocí Wine můžete pod Linuxem spouštět tolik aplikací pro Windows, dokonce i některé špičkové hry. Bohužel Darling moc nepomáhá. V tuto chvíli může spustit pouze několik programů příkazového řádku. Stále je ve fázi alfa. Můžete jej použít pro základní účely učení a testování.

Vyzkoušejte to a dejte nám vědět, jak by to šlo v sekci komentářů níže.


Linux
  1. Linux – Spouštět aplikace Mac OS X na Linuxu?

  2. Snadno spusťte software Windows na Linuxu pomocí Bottles

  3. Quickemu – Spusťte virtuální stroje Windows, MacOS a Linux

  1. Ladění Linuxu pomocí ProcDump

  2. Použití sudo k delegování oprávnění v Linuxu

  3. Spusťte instalační programy na Linuxu z Windows pomocí Cygwin

  1. Jak spustit Traceroute na Linuxu, Windows a macOS

  2. Jak spustit UNetBootin (nebo podobný) na Linuxu?

  3. Android - Jak rootovat Samsung S6 pomocí Linuxu?