ワインがあります 、LinuxおよびUnixライクなオペレーティングシステムでWindows用に開発されたアプリケーションやゲームをインストールして実行するのに役立つ無料のオープンソース互換性レイヤー。 Dosboxという名前のエミュレータもあります Linuxで古き良きMS-DOSゲームやTurboC++などの廃止されたC++コンパイラを実行します。 macOSソフトウェアはどうですか? LinuxでMac専用のアプリケーションを実行する方法を考えたことはありますか?それが私たちが今やろうとしていることです。このガイドでは、 Darlingを使用してLinuxオペレーティングシステムでmacOSソフトウェアを実行する方法について説明します。 ランタイム環境。
ダーリンとは何ですか?
Darlingは、Linux上でmacOSアプリケーションを実行できるようにする変換レイヤーです。完全なダーウィンをエミュレートします Mach、dyld、launchd、そしてあなたが期待するすべてのものを含む環境。これにより、Bashシェルに即座に切り替えて、LinuxシステムでmacOS用に構築されたアプリケーションの実行を開始できます。かっこいいですね
ダーリンはワインと非常によく似ています。 Wineを使用すると、LinuxでWindowsアプリを実行できます。ダーリンでは、macOSソフトウェアLinuxを実行できます。
良い点は、ダーリンがAppleのEULAに違反していないことです。 。完全に無料のソフトウェアとしてリリースされているダーウィンバージョンの部分のみを使用しているためです。
「ダーリン」という名前は、「ダーウィン」と「Linux」の組み合わせに由来しています。ご存知かもしれませんが、DarwinはmacOSとiOSのベースとなるコアオペレーティングシステムです。
Darlingは、GPLv3でリリースされた無料のオープンソースソフトウェアです。
UbuntuLinuxにDarlingをインストールする
現在、ダーリンの開発者は、コンパイル済みのDEBパッケージのみを提供しています。 リリースページに移動します darling
用に提供されているDEBパッケージをダウンロードしてください およびdarling-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をコンパイルしてインストールする必要がある場合があります。 。
ダーリンを使用してLinux上でMacOSソフトウェアを実行する
Darlingの開発者は、Darlingと対話するための優れたユーザーフレンドリーなGUIを構築することを計画しています。ただし、現時点では、コマンドラインからのみダーリンとやり取りできます。
ダーリンシェルに入るには、通常のユーザーとして次のコマンドを実行するだけです。
$ 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」環境に他なりません。
コンテナ内で実行されている現在のシェルは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シェルで機能するはずです。
たとえば、次のコマンドを使用してオペレーティングシステムの名前を出力します。
$ 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ファイルシステムに精通している場合は、コンテナ内のファイルシステムレイアウトが、/Applications
などのトップレベルディレクトリを含め、macOSのレイアウトと似ていることに気付くでしょう。 、/Users
、および/System
など
元のLinuxファイルシステムは、/Volumes/SystemRoot
にマウントされた個別のパーティションとして表示されます。 。以下のようなフルパス名でLinuxコマンドを実行することで確認できます:
$ /Volumes/SystemRoot/bin/uname Linux
上記の出力にあるように、コンテナの名前ではなく、実際のホストシステムの名前が表示されます。プルパスを指定しない場合(例:/Volumes/SystemRoot/bin/uname
)、コンテナの名前が一覧表示されます。
DarlingでmacOSプログラムを実行する場合、ホームフォルダ内のファイルにアクセスできるようにすることができます。これを便利にするために、LinuxHome
があります。 コンテナ内から見た、Linuxホームフォルダを指すDarlingホームフォルダ内のシンボリックリンク。さらに、Downloads
などの標準ディレクトリ Darlingホームフォルダ内のは、Linuxホームフォルダ内の対応するフォルダにシンボリックリンクされています。
ダーリンで現在できることのリスト
ほとんどのGUIアプリケーションは現時点では機能しないことに注意してください 。現在、実行できるのは、いくつかの単純なグラフィカルアプリケーションと多くのコマンドラインプログラムのみです。がっかりしないでください。 GUIアプリケーションは箱から出してすぐには機能しませんまだ 。開発者は、ネイティブアプリと同じように、ダーリンで実行されているアプリをLinuxデスクトップに完全に統合するためにこれに取り組んでいます。長期的にはiOSアプリをサポートする計画もあります。
これが、現在ダーリンで実行できるコマンドのリストです。
次のコマンドを使用して、MacOSXオペレーティングシステムの詳細を印刷します。
$ sw_vers
このコマンドは、Mac OS名、製品バージョン、ビルドバージョンを表示します:
ProductName: Mac OS X ProductVersion: 10.14 BuildVersion: Darling
echo
を使用して、標準出力にクールなものを印刷します コマンド:
$ echo Welcome To OSTechNix Welcome To OSTechNix
オペレーティングシステムの名前を表示します:
$ uname Darwin
ダーリンファイルシステムを探索する:
$ 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シェルを終了し、コマンドを使用してコンテナをシャットダウンします。
$ exit
$ darling shutdown
コンテナがシャットダウンされているときは、通知は表示されません。そのコマンドを再度実行すると、次の出力が表示されます。
Darling container is not running
結論
Wineとは異なり、Darlingは成熟したプロジェクトではありません。 Wineを使用すると、Linuxで非常に多くのWindowsアプリケーションを実行でき、一部のハイエンドゲームも実行できます。残念ながら、ダーリンはあまり役に立ちません。現時点では、ほんの一握りのコマンドラインプログラムしか実行できません。まだアルファ段階です。基本的な学習とテストの目的で使用できます。
試してみて、下のコメントセクションでどうなるか教えてください。