1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
+++
date = 2024-05-03
title = "Running Ubuntu Linux on macOS with OrbStack"
description = "Learn how to run Linux machines as applications on macOS with minimal hassle."
draft = false
+++
Being a macOS user who previously used Linux for many years, I often find myself
searching for alternatives to the Linux-native tools and methods that I had
become used to over the years.
Luckily, there's an option to simply use Linux directly on your macOS device
without having to boot the whole device into Linux or having to SSH into another
Linux machine.
In this post, I use [OrbStack](https://orbstack.dev/) to create an Ubuntu Linux
machine to take advantage of the Linux system.
## Installing OrbStack
OrbStack has a [download page](https://orbstack.dev/download) if you prefer to
use `*.dmg` files to install applications.
Personally, I prefer to install everything through Homebrew. For OrbStack, run
the following to install the application via Homebrew:
```sh
brew install orbstack
```
## Creating a Linux Machine
Once installed, you can launch OrbStack and create a Linux machine in a matter
of seconds. The creation dialog defaults to Ubuntu.

## Launching the Machine
Once created, the dialog will close and you will be presented with your new list
of machines. Simply double-click on a machine to run it.

When you run the machine for the first time, it may warn you that a program is
attempting to run a shell script. You can choose to manually inspect this shell
script via the provided path if you wish. When you're comfortable with the
script, you can toggle the `Suppress this message permanently` button and click
OK to run the machine.
> **Quick Tip**!
>
> You will always be able to launch the OrbStack application and
> control the machine via the Machines page, but you can also use the OrbStack
> icon in the macOS menu bar to quickly control the machine without launching
> OrbStack itself.
## Working in Linux
Once successful, OrbStack will launch your default terminal and log you into the
Linux machine you created above.
In the example below, we can see that the machine is using `Linux ubuntu 6.9.6`
and operates similar to a fresh Ubuntu install on bare metal.

You can also click the machine's folder icon in OrbStack to open the machine's
file system within macOS's native Files app. Within Files, you can double-click
to open any files and they will open in the macOS defaults for those file types
(e.g., TextEdit).

Here's an example of opening the `test.md` file in the screenshot above, which
defaults to opening in Xcode on my system.

### Test Examples
As a quick example of the system, I installed `neofetch`, switched to the `zsh`
shell, and ran a few common commands.

## Thoughts
The installation, creation, and launch processes are seamless and provide an
easy way to test or use Linux on macOS with little to no hassle.
The shell and file integrations are incredibly snappy and I have not experienced
any lag so far. Further, being able to open files in the Files app allows for me
to use macOS native applications, such as TextEdit for quick editing without
having to resort to other programs that may not be as familiar to macOS users.
I love this method and will be happily looking for further use cases to apply.
|