GNU/Linux >> Linux の 問題 >  >> Linux

Darlingを使用してLinux上でMacOSソフトウェアを実行する

ワインがあります 、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アプリケーションを実行でき、一部のハイエンドゲームも実行できます。残念ながら、ダーリンはあまり役に立ちません。現時点では、ほんの一握りのコマンドラインプログラムしか実行できません。まだアルファ段階です。基本的な学習とテストの目的で使用できます。

試してみて、下のコメントセクションでどうなるか教えてください。


Linux
  1. ProcDumpを使用してLinuxをデバッグする

  2. Linuxでsudoを使用して権限を委任する

  3. Android - Linux を使用して Samsung S6 をルート化する方法は?

  1. Linux –LinuxでMacOs Xアプリケーションを実行しますか?

  2. ボトルを使用してLinux上でWindowsソフトウェアを簡単に実行

  3. Quickemu – Windows、macOS、およびLinux仮想マシンを実行します

  1. Linux、Windows、macOSでTracerouteを実行する方法

  2. Cygwin を使用して Windows から Linux 上のソフトウェア インストーラーを起動する

  3. Linux で UNetBootin (または類似のもの) を実行するには?