GNU/Linux >> Belajar Linux >  >> Linux

Jalankan Perangkat Lunak MacOS Di Linux Menggunakan Darling

Kami memiliki Anggur , lapisan kompatibilitas sumber terbuka dan gratis yang membantu kami menginstal dan menjalankan aplikasi dan game yang dikembangkan untuk Windows di Linux dan sistem operasi mirip Unix. Kami juga memiliki emulator bernama Dosbox untuk menjalankan game MS-DOS lama dan compiler C++ yang sudah tidak berfungsi seperti Turbo C++ di Linux. Bagaimana dengan perangkat lunak macOS? Pernahkah Anda bertanya-tanya bagaimana menjalankan aplikasi khusus untuk mac di Linux? Itulah yang akan kita lakukan sekarang. Panduan ini menjelaskan cara menjalankan perangkat lunak macOS di sistem operasi Linux menggunakan Sayang lingkungan waktu proses.

Apa itu Sayang?

Darling adalah lapisan terjemahan yang memungkinkan kita menjalankan aplikasi macOS di Linux. Ini mengemulasi Darwin . yang lengkap lingkungan, termasuk Mach, dyld, launchd, dan semua yang Anda harapkan. Ini memungkinkan Anda untuk langsung beralih ke shell Bash dan mulai menjalankan aplikasi yang dibuat untuk macOS di sistem Linux Anda. Kedengarannya keren, ya?

Darling sangat mirip dengan Wine. Wine memungkinkan Anda menjalankan aplikasi Windows di Linux. Sayang memungkinkan Anda menjalankan perangkat lunak macOS Linux.

Untung Sayang tidak melanggar EULA Apple . Karena itu hanya menggunakan bagian dari versi Darwin yang dirilis sebagai perangkat lunak yang sepenuhnya gratis.

Nama "Darling" berasal dari kombinasi "Darwin" dan "Linux". Seperti yang mungkin Anda ketahui, Darwin adalah sistem operasi inti yang menjadi basis macOS dan iOS.

Darling adalah perangkat lunak sumber terbuka dan gratis yang dirilis di bawah GPLv3.

Instal Darling di Ubuntu Linux

Saat ini, para pengembang Darling hanya menyediakan paket DEB yang telah dikompilasi sebelumnya. Buka laman rilis dan unduh paket DEB yang disediakan untuk darling dan darling-dkms (modul kernel).

$ sudo gdebi darling-dkms_0.1.20200331.testing_amd64.deb

Contoh keluaran:

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.

Setelah menginstal paket darling-dkms, instal darling menggunakan perintah:

$ sudo gdebi darling_0.1.20200331.testing_amd64.deb 

Contoh keluaran:

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

Alasan saya lebih suka menginstal .deb paket dengan Gdebi apakah itu akan secara otomatis menyelesaikan dependensi yang diperlukan dan menginstalnya untuk saya. Jika Anda lebih suka menggunakan dpkg manajer paket, Anda harus terlebih dahulu menginstal paket Darling DEB dan kemudian menginstal dependensi yang hilang seperti di bawah ini.

$ sudo gdebi darling-dkms_0.1.20200331.testing_amd64.deb
$ sudo gdebi darling_0.1.20200331.testing_amd64.deb
$ sudo apt install -f

Pada distribusi Linux lainnya, Anda mungkin perlu mengompilasi dan menginstal Darling secara manual dari sumbernya seperti yang dijelaskan di sini .

Jalankan Perangkat Lunak MacOS Di Linux Menggunakan Darling

Pengembang Darling berencana untuk membangun GUI yang bagus dan ramah pengguna untuk berinteraksi dengan Darling. Tapi untuk saat ini, kita hanya bisa berinteraksi dengan Darling melalui command line.

Untuk masuk ke Darling shell, cukup jalankan perintah berikut sebagai user biasa:

$ 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]$

Perintah ini akan memulai direktori root virtual (yaitu wadah) atau terhubung ke wadah yang sudah berjalan dan menelurkan shell di dalamnya.

Ini juga akan secara otomatis memuat modul kernel dan menginisialisasi konten awalan jika diperlukan. Awalan Darling disebut DPREFIXes , yang sangat mirip dengan WINEPREFIXes . Awalan tidak lain adalah lingkungan "chroot" virtual dengan struktur sistem file mirip macOS, tempat kita dapat menginstal perangkat lunak dengan aman.

Shell saat ini berjalan di dalam wadah adalah Bash dan versinya adalah 3.2.

$ bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin14)
Copyright (C) 2007 Free Software Foundation, Inc.

Sekarang, kita berada di dalam lingkungan seperti macOS yang ditiru. Karena macOS adalah varian Unix, banyak perintah Linux dan Unix harus bekerja di shell Darling.

Misalnya, cetak nama sistem operasi menggunakan perintah:

$ uname
Darwin

Buat daftar isi root (/) direktori:

$ ls -l /

Contoh keluaran:

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

Demikian pula, gunakan perintah khusus macOS apa pun untuk menjelajahi lingkungan yang ditiru.

Tata letak sistem file yang terhormat

Jika Anda sudah terbiasa dengan sistem file macOS, Anda akan melihat bahwa tata letak sistem file di dalam wadah mirip dengan macOS, termasuk direktori tingkat atas seperti /Applications/Users , dan /System dll.

Sistem file Linux asli terlihat sebagai partisi terpisah yang dipasang di /Volumes/SystemRoot . Anda dapat memverifikasinya dengan menjalankan perintah Linux apa pun dengan nama path lengkap seperti di bawah ini:

$ /Volumes/SystemRoot/bin/uname 
Linux

Seperti yang Anda lihat pada output di atas, Ini mencantumkan nama sistem Host saya yang sebenarnya, bukan nama wadahnya. Jika Anda tidak menentukan jalur tarik (yaitu /Volumes/SystemRoot/bin/uname ), itu akan mencantumkan nama penampung.

Saat menjalankan program macOS di bawah Darling, Anda mungkin ingin mereka mengakses file di folder rumah Anda. Untuk membuatnya nyaman, ada LinuxHome symlink di folder beranda Darling Anda yang mengarah ke folder beranda Linux Anda, seperti yang terlihat dari dalam wadah. Selain itu, direktori standar seperti Downloads di folder beranda Darling Anda disinkronkan ke folder yang sesuai di folder beranda Linux Anda.

Daftar hal-hal yang saat ini dapat Anda lakukan dengan Sayang

Harap perhatikan bahwa sebagian besar aplikasi GUI tidak akan berfungsi saat ini . Saat ini, Anda hanya dapat menjalankan beberapa aplikasi grafis sederhana dan banyak program baris perintah. Jangan kecewa. Aplikasi GUI tidak bekerja di luar kotak dulu . Pengembang sedang mengerjakan ini untuk sepenuhnya mengintegrasikan aplikasi yang berjalan di bawah Darling ke desktop Linux seperti aplikasi asli. Mereka bahkan memiliki rencana untuk mendukung aplikasi iOS dalam jangka panjang.

Berikut adalah daftar perintah yang saat ini dapat Anda jalankan dengan Darling.

Cetak detail sistem operasi Mac OS X menggunakan perintah:

$ sw_vers

Perintah ini akan menampilkan nama Mac OS, versi produk dan versi build:

ProductName:    Mac OS X
ProductVersion: 10.14
BuildVersion:   Darling

Cetak sesuatu yang keren pada keluaran standar menggunakan echo perintah:

$ echo Welcome To OSTechNix
Welcome To OSTechNix

Menampilkan nama sistem operasi:

$ uname 
Darwin

Jelajahi sistem file 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

Tampilkan proses yang sedang berjalan:

$ 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 

Periksa tunggangannya:

$ column -t /proc/self/mounts 

Baca halaman manual:

$ man uname

Anda dapat melakukan lebih banyak. Semuanya diberikan di bawah bagian berjudul "Apa yang harus dicoba" dalam dokumentasi resmi yang ditautkan di bagian akhir.

Hentikan Sayang

Setelah Anda selesai menjelajahi Mac OS, cukup keluar dari Darling shell dan matikan wadah menggunakan perintah:

$ exit
$ darling shutdown

Anda tidak akan melihat pemberitahuan apa pun saat penampung sedang dimatikan. Jalankan perintah itu lagi dan Anda akan melihat output berikut:

Darling container is not running

Kesimpulan

Tidak seperti Wine, Darling bukanlah proyek yang matang. Dengan menggunakan Wine, Anda dapat menjalankan begitu banyak aplikasi windows, bahkan beberapa game kelas atas, di Linux. Sayangnya, Darling tak banyak membantu. Itu hanya dapat menjalankan beberapa program baris perintah saat ini. Masih dalam tahap alpha. Anda dapat menggunakannya untuk tujuan pembelajaran dan pengujian dasar.

Cobalah dan beri tahu kami bagaimana hasilnya di bagian komentar di bawah.


Linux
  1. Debug Linux menggunakan ProcDump

  2. Luncurkan penginstal perangkat lunak di Linux dari Windows menggunakan Cygwin

  3. Android - Bagaimana cara me-root Samsung S6 menggunakan Linux?

  1. Linux – Menjalankan Aplikasi Mac Os X Di Linux?

  2. Jalankan Perangkat Lunak Windows dengan Mudah di Linux dengan Botol

  3. Quickemu – Jalankan Mesin Virtual Windows, macOS, dan Linux

  1. Cara Menjalankan Traceroute di Linux, Windows &macOS

  2. Menggunakan Sudo untuk mendelegasikan izin di Linux

  3. Bagaimana cara menjalankan UNetBootin (atau serupa) di Linux?