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