github.com/Racer159/jackal@v0.32.7-0.20240401174413-0bd2339e4f2e/docs/1-getting-started/0-installing-jackal.md (about) 1 import TabItem from "@theme/TabItem"; 2 import Tabs from "@theme/Tabs"; 3 4 # Installing Jackal 5 6 Depending on your operating system and specific setup there are a few ways you can get the Jackal CLI onto your machine: 7 8 - [Install from Homebrew](#installing-from-the-defense-unicorns-homebrew-tap). 9 - [Download a prebuilt binary](#downloading-a-prebuilt-binary-from-our-github-releases). 10 - [Build the CLI](#building-the-cli-from-scratch) from scratch. 11 12 [Post-Install](#post-install-steps), you can verify that Jackal is correctly on your `$PATH` and that you have an 'init' package for your environment and Jackal version. 13 14 ## Installing the CLI with Homebrew 15 16 [Homebrew](https://brew.sh/) is an open-source software package manager that simplifies the installation of software on macOS and Linux. 17 18 19 <Tabs> 20 <TabItem value="macOS"> 21 22 With Homebrew on macOS, installing Jackal is as simple as: 23 24 ```bash 25 brew tap defenseunicorns/tap && brew install jackal 26 ``` 27 28 </TabItem> 29 <TabItem value="Linux"> 30 31 With Homebrew on Linux, installing Jackal is as simple as: 32 33 ```bash 34 brew tap defenseunicorns/tap && brew install jackal 35 ``` 36 37 </TabItem> 38 </Tabs> 39 40 :::note 41 42 The above command detects your OS and system architecture and installs the correct Jackal CLI binary for your machine. Once the above command is entered, the CLI should be installed on your `$PATH` and is ready for immediate use. 43 44 ::: 45 46 ## Downloading the CLI from GitHub Releases 47 48 All [Jackal releases](https://github.com/Racer159/jackal/releases) on GitHub include prebuilt binaries that you can download and use. We offer range of combinations of OS and architecture for you to choose from. 49 50 <Tabs> 51 <TabItem value="Linux"> 52 53 To download Jackal on Linux you can run the following (replacing `<jackal-version>` with a version of Jackal): 54 55 ```bash 56 JACKAL_VERSION=<jackal-version> 57 JACKAL_ARCH=$([ $(uname -m) == "x86_64" ] && echo "amd64" || echo "arm64";) 58 59 curl -sL https://github.com/Racer159/jackal/releases/download/${JACKAL_VERSION}/jackal_${JACKAL_VERSION}_Linux_${JACKAL_ARCH} -o jackal 60 chmod +x jackal 61 ``` 62 63 On most Linux distributions, you can also install the binary onto your `$PATH` by simply moving the downloaded binary to the `/usr/local/bin` directory: 64 65 ```bash 66 sudo mv jackal /usr/local/bin/jackal 67 ``` 68 69 </TabItem> 70 <TabItem value="macOS"> 71 72 To download Jackal on macOS you can run the following (replacing `<jackal-version>` with a version of Jackal): 73 74 ```bash 75 JACKAL_VERSION=<jackal-version> 76 JACKAL_ARCH=$([ $(uname -m) == "x86_64" ] && echo "amd64" || echo "arm64";) 77 78 curl -sL https://github.com/Racer159/jackal/releases/download/${JACKAL_VERSION}/jackal_${JACKAL_VERSION}_Darwin_${JACKAL_ARCH} -o jackal 79 chmod +x jackal 80 ``` 81 82 You can also install the binary onto your `$PATH` by simply moving the downloaded binary to the `/usr/local/bin` directory: 83 84 ```bash 85 sudo mv jackal /usr/local/bin/jackal 86 ``` 87 88 </TabItem> 89 <TabItem value="Windows"> 90 91 92 To download Jackal on Windows you can run the following (replacing `<jackal-version>` with a version of Jackal and `<jackal-arch>` with either `amd64` or `arm64` depending on your system): 93 94 ```bash 95 $JackalVersion="<jackal-version>" 96 $JackalArch="<jackal-arch>" 97 98 Start-BitsTransfer -Source "https://github.com/Racer159/jackal/releases/download/$($JackalVersion)/jackal_$($JackalVersion)_Windows_$($JackalArch).exe" -Destination jackal.exe 99 ``` 100 101 You can also install the binary onto your `$PATH` by moving the downloaded binary to the desired directory and modifying the `$PATH` environment variable to include that directory. 102 103 </TabItem> 104 </Tabs> 105 106 ## Building the CLI from Scratch 107 108 If you want to build the CLI from scratch, you can do that too. Our local builds depend on [Go 1.19.x](https://golang.org/doc/install) and [Node 18.x](https://nodejs.org/en) and are built using [make](https://www.gnu.org/software/make/). 109 110 :::note 111 112 The `make build-cli` command builds a binary for each combination of OS and architecture. If you want to shorten the build time, you can use an alternative command to only build the binary you need: 113 114 - `make build-cli-mac-intel` 115 - `make build-cli-mac-apple` 116 - `make build-cli-linux-amd` 117 - `make build-cli-linux-arm` 118 - `make build-cli-windows-amd` 119 - `make build-cli-windows-arm` 120 121 For additional information, see the [Building Your Own Jackal CLI](../2-the-jackal-cli/0-building-your-own-cli.md) page. 122 123 ::: 124 125 ## Post-Install Steps 126 127 Once you have installed Jackal with one of the above methods, you can verify it is working with the following: 128 129 ```bash 130 $ jackal version 131 132 vX.X.X # X.X.X is replaced with the version number of your specific installation 133 ``` 134 135 :::info 136 137 If you are not seeing this then Jackal was not installed onto your `$PATH` correctly. [This $PATH guide](https://zwbetz.com/how-to-add-a-binary-to-your-path-on-macos-linux-windows/) should help with that. 138 139 ::: 140 141 In most usage scenarios ([but not all](../../examples/yolo/README.md)) you will also need an ['init' package](../3-create-a-jackal-package/3-jackal-init-package.md) to be initialized before you deploy your own packages. This is a special Jackal package that initializes a cluster with services that are used to store package resources while in the air gap. 142 143 You can get the default 'init' package for your version of Jackal by visiting the [Jackal releases](https://github.com/Racer159/jackal/releases) page and downloading it into your working directory or into `~/.jackal-cache/jackal-init-<amd64|arm64>-vX.X.X.tar.zst`. 144 145 If you are online on the machine with cluster access you can also run `jackal init` without the `--confirm` flag to be given the option to download the matching version of the default 'init' package or you can use the `jackal tools download-init` command to download a copy to your machine. 146 147 :::tip 148 149 You can build your own custom 'init' package too if you'd like. For this you should check out the [Creating a Custom 'init' Package Tutorial](../5-jackal-tutorials/8-custom-init-packages.md). 150 151 :::