--- title: Install zrok in Linux sidebar_label: Linux --- import { AssetsProvider } from '@site/src/components/assets-context'; import DownloadCard from '@site/src/components/download-card'; import styles from '@site/src/css/download-card.module.css'; import AnsibleRepoSetup from './_ansible_repo_setup.yaml' import ConcatenateYamlSnippets from '@site/src/components/cat-yaml.jsx' ## Linux Binary
Download the binary distribution for your Linux distribution's architecture or run the install script below to pick the correct CPU architecture automatically. For Intel and AMD 64-bit machines use the `amd64` distribution. For Raspberry Pi use the `arm64` distribution.
Manually install in `~/bin/zrok` 1. Unarchive the distribution in a temporary directory. ```text mkdir /tmp/zrok && tar -xf ./zrok*linux*.tar.gz -C /tmp/zrok ``` 1. Install the `zrok` executable. ```text mkdir -p ~/bin && install /tmp/zrok/zrok ~/bin/ ``` 1. Add `~/bin` to your shell's executable search path. Optionally add this to your ~/.zshenv to persist the change. ```text PATH=~/bin:$PATH ``` 1. With the `zrok` executable in your path, you can then execute the `zrok` command from your shell: ```text zrok version ``` ```buttonless title="Output" _ _____ __ ___ | | __ |_ / '__/ _ \| |/ / / /| | | (_) | < /___|_| \___/|_|\_\ v0.4.0 [c889005] ```
Script to install binary in `/usr/local/bin/zrok` This script auto-selects the correct architecture, and may be helpful for Raspberry Pi users. ```text (set -euo pipefail; cd $(mktemp -d); ZROK_VERSION=$( curl -sSf https://api.github.com/repos/openziti/zrok/releases/latest \ | jq -r '.tag_name' ); case $(uname -m) in x86_64) GOXARCH=amd64 ;; aarch64|arm64) GOXARCH=arm64 ;; armv7|armhf|arm) GOXARCH=arm ;; *) echo "ERROR: unknown arch '$(uname -m)'" >&2 exit 1 ;; esac; curl -sSfL \ "https://github.com/openziti/zrok/releases/download/${ZROK_VERSION}/zrok_${ZROK_VERSION#v}_linux_${GOXARCH}.tar.gz" \ | tar -xz -f -; sudo install -o root -g root ./zrok /usr/local/bin/; zrok version; ) ```
## Install `zrok` from the Repository We recommend that you install `zrok` from the Linux package repository with the manual steps or the setup script. DEB and RPM packages are available for amd64, arm64, and armv7 architectures. :::info Check out [zrok frontdoor](/guides/frontdoor.mdx?os=Linux) for running `zrok` as an always-on service. :::
Manually set up DEB repository ```text (set -euo pipefail; curl -sSLf https://get.openziti.io/tun/package-repos.gpg \ | sudo gpg --dearmor --output /usr/share/keyrings/openziti.gpg; sudo chmod a+r /usr/share/keyrings/openziti.gpg; sudo tee /etc/apt/sources.list.d/openziti-release.list >/dev/null <
Manually set up RPM repository ```text (set -euo pipefail; sudo tee /etc/yum.repos.d/openziti-release.repo >/dev/null <<\EOF; [OpenZitiRelease] name=OpenZiti Release baseurl=https://packages.openziti.org/zitipax-openziti-rpm-stable/redhat/$basearch enabled=1 gpgcheck=0 gpgkey=https://packages.openziti.org/zitipax-openziti-rpm-stable/redhat/$basearch/repodata/repomd.xml.key repo_gpgcheck=1 EOF sudo dnf update; sudo dnf install zrok; zrok version; ) ```
Script to set up DEB or RPM repository 1. Download the zrok install script. ```text curl -sSLfo ./zrok-install.bash https://get.openziti.io/install.bash ``` 1. Inspect the script to ensure it is suitable to run as root on your system. ```text less ./zrok-install.bash ``` 1. Run the script as root to add the package repo and install the `zrok` package. ```text sudo bash ./zrok-install.bash zrok ```
Ansible Playbook {AnsibleRepoSetup} {` - name: Install zrok package gather_facts: false hosts: all become: true tasks: - name: Install zrok ansible.builtin.package: name: zrok state: present `}