# Ignition via Homebrew

**URL:** <https://forum.inductiveautomation.com/t/ignition-via-homebrew/42537>\
**Category:** Ignition\
**Tags:** ignition79, ignition80\
**Created:** [January 22, 2021, 6:14pm UTC](https://forum.inductiveautomation.com/t/ignition-via-homebrew/42537 "2021-01-22T18:14:52Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![cesrom](https://avatars.discourse-cdn.com/v4/letter/c/ea666f/32.png) [@cesrom](https://forum.inductiveautomation.com/u/cesrom)\
**Post date:** [January 22, 2021, 6:14pm UTC](https://forum.inductiveautomation.com/t/ignition-via-homebrew/42537/1 "2021-01-22T18:14:52Z")

</div>

During the winter break out of boredom I started working in a way to get Ignition installed via Homebrew, and recently my efforts have come to fruition.

For those who might not be aware of Homebrew ([https://brew.sh/](https://brew.sh/)), Homebrew is "The Missing Package Manager for macOS (or Linux)".

> What Does Homebrew Do?
> 
> Homebrew installs [the stuff you need](https://formulae.brew.sh/formula/) that Apple (or your Linux system) didn’t.

I've been doing this on a GitHub Organization called [coatl.dev](https://github.com/coatl-dev/) (@coatl-dev in the forum).

### How does it work?

First you'll need Homebrew, see [Installation](https://docs.brew.sh/Installation).

### Ignition via Homebrew

Once you've installed Homebrew, or if you already have it, you'll need to tap coatl-dev's Homebrew tap with the following command:

```bash
$ brew tap coatl-dev/coatl-dev

```

That will _tap_ that repo and will allow you to install its _formulae_ or _casks_.

### Which formulae are available?

Please refer to [coatl-dev — coatl.dev Formulae](https://formulae.coatl.dev/formula/) for the complete list.

### Ignition releases

Currently there are versions for all current stable versions for macOS:

- 7.9.17
- 8.0.17
- 8.0.17 Edge
- 8.1.1
- 8.1.1 Edge

### How do I install these releases?

You can run `brew install coatl-dev/coatl-dev/<formula>`, or `brew tap coatl-dev/coatl-dev` and then `brew install <formula>` .

Example:

```bash
$ brew install coatl-dev/coatl-dev/ignition@8.1.1
==> Installing ignition@8.1.1 from coatl-dev/coatl-dev
==> Downloading https://files.inductiveautomation.com/release/ia/8.1.1/20201208-0843/Ignition-osx-8.1.1.zip
######################################################################## 100.0%
==> Caveats
To have launchd start coatl-dev/coatl-dev/ignition@8.1.1 now and restart at login:
brew services start coatl-dev/coatl-dev/ignition@8.1.1
==> Summary
🍺 /usr/local/Cellar/ignition@8.1.1/8.1.1: 1,331 files, 1.4GB, built in 50 seconds

```

After that, just open a new Terminal window or tab, and run `ignition-8.1.1 start` and after that completes successfully just go to [http://localhost:8088/](http://localhost:8088/) to provision your Gateway.

### How am I able to start/stop/restart Ignition when installed via Homebrew?

The installation creates a symlink located in `/usr/local/bin`, and each Ignition release is named according to its version. E.g. ignition@8.1.1 installs `/usr/local/bin/ignition-8.1.1`, ignition@8.0.17 installs `ignition-8.0.17`, ignition-edge@8.1.1 installs `ignition-edge-8.1.1`, and so on.

So you'll just have to run `ignition-x-x-x start` or `ignition-edge-x-x-x start`. Where `x-x-x` can be `8.0.17` and `8.1.1` for `ignition-edge`, and `7.9.17`, `8.0.17` and `8.1.1` for `ignition`.

### How do I start Ignition automatically at Login?

As the installation messages suggests, just run `brew services start coatl-dev/coatl-dev/ignition@x.x.x`. Alternatively you could run `sudo brew services start coatl-dev/coatl-dev/ignition@x.x.x` to start at startup.

Example:

```bash
$ brew services start coatl-dev/coatl-dev/ignition@8.1.1
==> Successfully started `ignition@8.1.1` (label: homebrew.mxcl.ignition@8.1.1)

```

For more information about `brew services`, run `brew services --help`.

### How do I uninstall Ignition?

1. ⚠ Stop the Gateway by running `ignition-x.x.x stop` or `ignition-edge-x.x.x stop`⚠
2. Run `brew uninstall ignition@x.x.x` or `brew uninstall ignition-edge-x.x.x`
3. Done

### Where do I get support if something goes wrong?

Try the Discussions at:

> **[coatl-dev discussions · Discussions](https://github.com/coatl-dev/discussions/discussions)**
>
> Explore the GitHub Discussions forum for coatl-dev discussions. Discuss code, ask questions & collaborate with the developer community.

### Motivation

The main reason is to give developers the ability to install multiple versions. Granted, this is something that can be accomplished via the [ZIP File Installations](https://docs.inductiveautomation.com/display/DOC81/ZIP+File+Installations), but doing it via Homebrew is a little less involved.

### Caveats and Limitations

This is only currently working on macOS Mojave or higher.

You can only provision or select one version for each version. This means that if you install `ignition@8.1.1` and during provisioning you select Maker, you cannot try to install `ignition@8.1.1` again and select another version while provisioning your Gateway. The same applies to all other formulae.

As mentioned above, it is important to first stop the Gateway, otherwise you might run into an issue if you want to reinstall the same version.

Hopefully you find it useful.

César Román

---

<div class="post-metadata">

**Author:** ![PerryAJ](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/perryaj/32/3281_2.png) [@PerryAJ](https://forum.inductiveautomation.com/u/PerryAJ)\
**Post date:** [January 22, 2021, 9:28pm UTC](https://forum.inductiveautomation.com/t/ignition-via-homebrew/42537/2 "2021-01-22T21:28:32Z")

</div>

Thanks for sharing! Great alternative for mac users that don’t want the hassle of manually managing their installs via zips, and want to run natively without a docker environment.

---

<div class="post-metadata">

**Author:** ![coatl-dev](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/coatl-dev/32/82365_2.png) [@coatl-dev](https://forum.inductiveautomation.com/u/coatl-dev)\
**Post date:** [January 22, 2021, 9:51pm UTC](https://forum.inductiveautomation.com/t/ignition-via-homebrew/42537/3 "2021-01-22T21:51:07Z")

</div>

There are some benefits of installing Ignition for development or testing purposes via Homebrew.

For example [`ignition@7.9.17`](https://formulae.coatl.dev/formula/ignition@7.9.17) marks Homebrew’s core formula [`openjdk@8`](https://formulae.brew.sh/formula/openjdk@8) as a dependency which links `ignition@7.9.17` to `openjdk@8` freeing the user from manually installing Java 1.8.

Additionally, developers can install `coatl-dev/coatl-dev/jython@2.5.3` when working with Ignition 7.9, or `coatl-dev/coatl-dev/jython@2.7.1` for Ignition 8+ development. These were created by extracting previous versions from Homebrew’s core tap, so they’re safe to use.

---

<div class="post-metadata">

**Author:** ![coatl-dev](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/coatl-dev/32/82365_2.png) [@coatl-dev](https://forum.inductiveautomation.com/u/coatl-dev)\
**Post date:** [January 22, 2021, 9:59pm UTC](https://forum.inductiveautomation.com/t/ignition-via-homebrew/42537/4 "2021-01-22T21:59:24Z")

</div>

💡 Tip:  
When `jython 2.7.1` is installed using Java 11 you might get the following warning when you run it from the Terminal:

```bash
$ jython
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.python.core.PySystemState (file:$JYTHON_PATH/jython.jar) to method java.io.Console.encoding()
WARNING: Please consider reporting this to the maintainers of org.python.core.PySystemState
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Jython 2.7.1 (default:0df7adb1b397, Jun 30 2017, 19:02:43)
[OpenJDK 64-Bit Server VM (Azul Systems, Inc.)] on java11.0.8
Type "help", "copyright", "credits" or "license" for more information.
>>>

```

To run without warnings:

```bash
$ jython -J--add-opens=java.base/java.io=ALL-UNNAMED -J--add-opens=java.base/java.lang=ALL-UNNAMED -J--add-opens=java.base/java.nio=ALL-UNNAMED -J--add-opens=java.base/sun.nio.ch=ALL-UNNAMED
Jython 2.7.1 (default:0df7adb1b397, Jun 30 2017, 19:02:43)
[OpenJDK 64-Bit Server VM (Azul Systems, Inc.)] on java11.0.8
Type "help", "copyright", "credits" or "license" for more information.
>>>

```

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [January 23, 2021, 8:47pm UTC](https://forum.inductiveautomation.com/t/ignition-via-homebrew/42537/5 "2021-01-23T20:47:35Z")

</div>

I must admit, this topic title sounded far more promising than it turned out to be 😄 here I was thinking 🍻 also, I’m a poor Windows user here

---

<div class="post-metadata">

**Author:** ![coatl-dev](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/coatl-dev/32/82365_2.png) [@coatl-dev](https://forum.inductiveautomation.com/u/coatl-dev)\
**Post date:** [January 23, 2021, 10:11pm UTC](https://forum.inductiveautomation.com/t/ignition-via-homebrew/42537/6 "2021-01-23T22:11:03Z")

</div>

There’s a similar option for Windows called Windows Package Manager, aka `winget`.

> **[microsoft/winget-cli](https://github.com/microsoft/winget-cli)**
>
> Windows Package Manager CLI (aka winget). Contribute to microsoft/winget-cli development by creating an account on GitHub.

And their packages (or formulae/casks in Homebrew’s terms)

> **[microsoft/winget-pkgs](https://github.com/microsoft/winget-pkgs)**
>
> The Microsoft community Windows Package Manager manifest repository - microsoft/winget-pkgs

I do not have a Windows machine that meets their requirements, but it seems like a useful tool.
