
리눅스용 Darwin/macOS 에뮬레이션 레이어

Darling은 macOS 애플리케이션을 위한 런타임 환경입니다.
참고: 현재 대부분의 GUI 애플리케이션은 실행되지 않습니다.
일부 배포판용 패키지는 릴리스 페이지에서 다운로드할 수 있습니다.
빌드 방법은 Darling 문서를 참조하세요.
Darling은 DPREFIX를 지원하며, 이는 WINEPREFIX와 매우 유사합니다. DPREFIX는 macOS와 유사한 파일시스템 구조를 가진 가상 'chroot' 환경으로, 소프트웨어를 안전하게 설치할 수 있습니다. 기본 DPREFIX 위치는 ~/.darling이며, 동일한 이름의 환경 변수를 내보내면 변경할 수 있습니다. 프리픽스는 처음 사용 시 자동으로 생성 및 초기화됩니다.
참고: 프리픽스를 생성하기 위해 overlayfs를 사용하므로, NFS나 eCryptfs와 같은 파일시스템에 프리픽스를 설정하는 것은 지원하지 않습니다. 특히, 홈 디렉토리가 암호화되어 있는 경우 기본 프리픽스 위치가 작동하지 않습니다.
Hello world로 시작해 봅시다:
$ darling shell echo Hello world
Hello world
축하합니다! Darling의 OS X 시스템 호출 에뮬레이션과 런타임 라이브러리를 통해 Hello world를 출력했습니다.
셸 내에서 사용 가능한 installer 도구로 .pkg 패키지를 설치할 수 있습니다. 이 도구는 OS X의 installer와 다소 유사하지만 기능이 제한적입니다:
$ darling shell
Darling [~]$ installer -pkg mc-4.8.7-0.pkg -target /
위 예제의 Midnight Commander 패키지는 다운로드 가능합니다.
uninstaller 명령으로 패키지를 제거하고 목록을 확인할 수 있습니다.
darling shell 내에서 hdiutil을 사용하여 DMG 이미지를 마운트 및 마운트 해제할 수 있습니다. 다음은 Xcode와 함께 툴체인 및 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
축하합니다! Apple의 툴체인으로 Hello world 애플리케이션을 컴파일하고 실행했습니다.
Xcode는 이제 .xip 파일로 배포됩니다. 다음 명령으로 설치할 수 있습니다:
cd /Applications
unxip Xcode_11.3.xip