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 darling
a darling-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
a /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.