Ignition via Homebrew

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/), Homebrew is "The Missing Package Manager for macOS (or Linux)".

What Does Homebrew Do?

Homebrew installs the stuff you need that Apple (or your Linux system) didn’t.

I've been doing this on a GitHub Organization called coatl.dev (@coatl-dev in the forum).

How does it work?

First you'll need Homebrew, see 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:

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

$ 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/ 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:

$ 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. :warning: Stop the Gateway by running ignition-x.x.x stop or ignition-edge-x.x.x stop:warning:
  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:

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, 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

4 Likes

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.

2 Likes

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

For example ignition@7.9.17 marks Homebrew’s core 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.

1 Like

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

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

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

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

3 Likes

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

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

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