---
layout: docs
page_title: Installing Nomad
sidebar_title: Installing Nomad
description: Learn how to install Nomad.
---

# Installing Nomad

Nomad is available as a pre-compiled binary or as a package for several
operating systems. You can also [build Nomad from source](#from-source).

-> If you are interested in trialing Nomad without installing it locally, see the
[Quickstart](/docs/install/quickstart) for options to get started with Nomad.

<Tabs>
<Tab heading="Manual installation">

You can download a [precompiled binary](/downloads) and
run it on your machine locally. You can also verify the binary using the
available SHA-256 sums. After downloading Nomad, unzip the package. Make sure
that the `nomad` binary is available on your `PATH` before continuing with the
other guides.

You can check the locations available on your path by running this command.

```shell-session
$ echo $PATH

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
```

The output is a list of locations separated by colons. You can make Nomad
available by moving the binary to one of the listed locations, or by adding
Nomad's location to your `PATH`.

-> **Tip (Linux-based or Mac):** Permanently add a new location to your path by
editing your shell's settings file (usually called something like `~/.bashrc`,
where the part of the file name after the `.` and before `rc` is the name of
your shell). In that file you will see a line that starts with `export PATH=`,
followed by a colon-separated list of locations. Add the location of the Consul
binary to that list and save the file. Then reload your shell's configuration
with the command `source ~/.bashrc`, replacing `bash` with the name of your
shell.

-> **Tip (Windows):** Add a location to your path via the GUI by navigating to
`Environment Variables` in your system settings, and looking for the variable
called `PATH`. You will see a semicolon-separated list of locations. Add the
Nomad binary's location to that list and then launch a new console window.

</Tab>
<Tab heading="Linux Packages">

HashiCorp officially maintains and signs packages for the following Linux
distributions.

<Tabs>
<Tab heading="Ubuntu/Debian">

Add the HashiCorp [GPG key][gpg-key].

```shell-session
$ curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
```

Add the official HashiCorp Linux repository.

```shell-session
$ sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
```

Update and install.

```shell-session
$ sudo apt-get update && sudo apt-get install nomad
```

</Tab>
<Tab heading="CentOS/RHEL">

Install `yum-config-manager` to manage your repositories.

```shell-session
$ sudo yum install -y yum-utils
```

Use `yum-config-manager` to add the official HashiCorp Linux repository.

```shell-session
$ sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
```

Install.

```shell-session
$ sudo yum -y install nomad
```

</Tab>
<Tab heading="Fedora">

Install `dnf config-manager` to manage your repositories.

```shell-session
$ sudo dnf install -y dnf-plugins-core
```

Use `dnf config-manager` to add the official HashiCorp Linux repository.

```shell-session
$ sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/fedora/hashicorp.repo
```

Install.

```shell-session
$ sudo dnf -y install nomad
```

</Tab>
<Tab heading="Amazon Linux">

Install `yum-config-manager` to manage your repositories.

```shell-session
$ sudo yum install -y yum-utils
```

Use `yum-config-manager` to add the official HashiCorp Linux repository.

```shell-session
$ sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo
```

Install.

```shell-session
$ sudo yum -y install nomad
```

</Tab>
</Tabs>

-> **TIP:** Now that you have added the HashiCorp repository, you can install
[Consul](https://learn.hashicorp.com/consul) and
[Vault](https://learn.hashicorp.com/vault) with the same command.

</Tab>
<Tab heading="Homebrew (macOS)">

[Homebrew](https://brew.sh) is a free and open-source package management system
for macOS. Install the [Nomad formula](https://formulae.brew.sh/formula/nomad)
from the terminal.

```shell-session
$ brew install nomad
```

~> **NOTE:** Homebrew and the Nomad formula are **NOT** directly maintained by
HashiCorp. The latest version of Nomad is always available by manual
installation.

~> **NOTE**: On macOS, machines without a Java environment installed will be
prompted to install Java because of a [known issue—#7865][gh-7865]. The linked
GitHub issue has workarounds for this issue.

</Tab>
<Tab heading="Chocolatey (Windows)">

[Chocolatey](https://chocolatey.org/) is a free and open-source package
management system for Windows. Install the [Nomad
package](https://chocolatey.org/packages/nomad) from the command-line.

```shell-session
$ choco install nomad
```

~> **NOTE:** Chocolatey and the Nomad package are **NOT** directly maintained
by HashiCorp. The latest version of Nomad is always available by manual
installation.

</Tab>
</Tabs>

---

## Verify the Installation

To verify Nomad was installed correctly, try the `nomad` command.

```shell-session
$ nomad
```

You should see help output, similar to the following.

```plaintext
Usage: nomad [-version] [-help] [-autocomplete-(un)install] <command> [args]

Common commands:
    run         Run a new job or update an existing job
    stop        Stop a running job
    status      Display the status output for a resource
    alloc       Interact with allocations
    job         Interact with jobs
    node        Interact with nodes
    agent       Runs a Nomad agent

Other commands:
    acl             Interact with ACL policies and tokens
    agent-info      Display status information about the local agent
    deployment      Interact with deployments
    eval            Interact with evaluations
    exec            Execute commands in task
    monitor         Stream logs from a Nomad agent
    namespace       Interact with namespaces
    operator        Provides cluster-level tools for Nomad operators
    quota           Interact with quotas
    sentinel        Interact with Sentinel policies
    server          Interact with servers
    system          Interact with the system API
    ui              Open the Nomad Web UI
    version         Prints the Nomad version
```

---

## Compiling from Source ((#from-source))

To compile from source, you will need [Go](https://golang.org) installed and
configured properly (including a `GOPATH` environment variable set), as well
as a copy of [`git`](https://www.git-scm.com/) in your `PATH`.

1. Clone the Nomad repository from GitHub into your `GOPATH`:

   ```shell-session
   $ mkdir -p $GOPATH/src/github.com/hashicorp && cd $_
   $ git clone https://github.com/hashicorp/nomad.git
   $ cd nomad
   ```

1. Bootstrap the project. This will download and compile libraries and tools
   needed to compile Nomad:

   ```shell-session
   $ make bootstrap
   ```

1. Build Nomad for your current system and put the
   binary in `./bin/` (relative to the git checkout). The `make dev` target is
   just a shortcut that builds `nomad` for only your local build environment (no
   cross-compiled targets).

   ```shell-session
   $ make dev
   ```

[consul-dev]: https://learn.hashicorp.com/consul/getting-started/agent#starting-the-agent
[consul-download]: https://www.consul.io/downloads
[destroy]: https://www.vagrantup.com/docs/cli/destroy
[gh-7865]: https://github.com/hashicorp/nomad/issues/7865
[gpg-key]: https://apt.releases.hashicorp.com/gpg 'HashiCorp GPG key'
