
Darwin/macOS эмуляционный слой для Linux

Darling — это среда выполнения для приложений macOS.
Обратите внимание, что большинство GUI-приложений сейчас не будут работать.
Пакеты для некоторых дистрибутивов доступны для загрузки в релизах.
Инструкции по сборке доступны на Darling Docs.
Darling поддерживает DPREFIX, которые очень похожи на WINEPREFIX. Это виртуальные «chroot»-окружения с файловой структурой, подобной macOS, где можно безопасно устанавливать программное обеспечение. Расположение DPREFIX по умолчанию — ~/.darling, но его можно изменить, экспортировав одноимённую переменную окружения. Префикс автоматически создаётся и инициализируется при первом использовании.
Обратите внимание, что мы используем overlayfs для создания префиксов, поэтому мы не можем поддерживать размещение префикса на файловых системах, таких как NFS или eCryptfs. В частности, расположение префикса по умолчанию не будет работать, если у вас зашифрована домашняя директория.
Давайте начнём с Hello world:
$ darling shell echo Hello world
Hello world
Поздравляем, вы вывели Hello world через эмуляцию системных вызовов OS X и библиотеки времени выполнения Darling.
Вы можете устанавливать пакеты .pkg с помощью инструмента installer, доступного внутри shell. Это несколько ограниченный аналог установщика OS X:
$ darling shell
Darling [~]$ installer -pkg mc-4.8.7-0.pkg -target /
Пакет Midnight Commander из примера выше доступен для загрузки.
Вы можете удалять и просматривать список пакетов с помощью команды uninstaller.
Образы DMG можно монтировать и отключать изнутри darling shell с помощью hdiutil. Вот как можно установить Xcode вместе с его toolchain и SDK (обратите внимание, что сам Xcode пока не запускается):
Darling [~]$ hdiutil attach Xcode_7.2.dmg
/Volumes/Xcode_7.2
Darling [~]$ cp -r /Volumes/Xcode_7.2/Xcode.app /Applications
Darling [~]$ export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
Darling [~]$ echo 'void main() { puts("Hello world"); }' > helloworld.c
Darling [~]$ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang helloworld.c -o helloworld
Darling [~]$ ./helloworld
Hello world
Поздравляем, вы только что скомпилировали и запустили собственное приложение Hello world с помощью toolchain от Apple.
Xcode теперь распространяется в файлах .xip. Их можно установить с помощью unxip:
cd /Applications
unxip Xcode_11.3.xip