--- 
icon: simple/linux
title: "Install the 10x Engine on Linux"
description: "Linux installs all three 10x Engine flavors: the native Runtime binary, Runtime (JVM) as a .deb or .rpm, and the Compiler as a .deb or .rpm."
---

Linux (`amd64` and `arm64`, glibc) has an artifact for all three [flavors](https://doc.log10x.com/engine/flavors/): the [Runtime](https://doc.log10x.com/engine/flavors/#runtime) native binary, [Runtime (JVM)](https://doc.log10x.com/engine/flavors/#runtime-jvm) as a `.deb` / `.rpm` with a bundled JRE, and the [Compiler](https://doc.log10x.com/engine/flavors/#compiler) as a `.deb` / `.rpm`. The [single line installer](https://doc.log10x.com/install/singleline/) covers all three; the steps below install them by hand.

Runtime and Runtime (JVM) share the `/opt/tenx-edge` prefix, so only one of the two can be installed at a time.

=== ":simple-ubuntu: Ubuntu / :simple-debian: Debian"

	1. Download the DEB package file from the [latest releases](https://github.com/log-10x/pipeline-releases/releases/latest){target="\_blank"} page.

	=== ":material-cogs: Compiler"

	    ```
	    # x86
	    tenx-cloud_<ver>_amd64.deb

	    # Arm64
	    tenx-cloud_<ver>_arm64.deb
	    ```

	=== ":material-flash-outline: Runtime"

	    ```
	    # x86
	    tenx-edge-<ver>-amd64-native

	    # Arm64
	    tenx-edge-<ver>-aarch64-native
	    ```

	=== ":material-coffee: Runtime (JVM)"

	    ```
	    # x86
	    tenx-edge_<ver>_amd64.deb

	    # Arm64
	    tenx-edge_<ver>_arm64.deb
	    ```

	2. Install the package

	=== ":material-cogs: Compiler"

	    ``` { .console .copy }
	    apt-get install /path/to/tenx-cloud.deb
	    ```

	=== ":material-flash-outline: Runtime"

	    ``` { .console .copy }
	    mkdir -p /opt/tenx-edge/bin
	    mv /path/to/ARTIFACT-NATIVE /opt/tenx-edge/bin/ARTIFACT-NATIVE
	    chmod +x /opt/tenx-edge/bin/ARTIFACT-NATIVE
	    ln -s /opt/tenx-edge/bin/ARTIFACT-NATIVE /opt/tenx-edge/bin/tenx-edge
	    ```

	=== ":material-coffee: Runtime (JVM)"

	    ``` { .console .copy }
	    apt-get install /path/to/tenx-edge.deb
	    ```

	3. Download config tar.gz from the [latest releases](https://github.com/log-10x/pipeline-releases/releases/latest){target="\_blank"} page.

	4. Unpack with -

	``` { .console .copy }
	mkdir -p /etc/tenx/config
	tar -xzf /path/to/CONFIG.TAR.GZ -C /etc/tenx/config
	```

	5. Download the [symbol library](https://doc.log10x.com/compile/link/#symbol-library) `tenx-symbols-<ver>.10x.tar` from the same releases page and put it where the engine looks for it. The [single line installer](https://doc.log10x.com/install/singleline/) does this step automatically; a manual install has to place the tar itself -

	``` { .console .copy }
	mkdir -p /etc/tenx/symbols
	mv /path/to/tenx-symbols-<ver>.10x.tar /etc/tenx/symbols/
	```

	6. Set up environment variables (see [Paths](paths.md) for details) -

	=== ":material-cogs: Compiler"
	    ``` { .console .copy }
	    ln -s /opt/tenx-cloud/bin/tenx-cloud /opt/tenx-cloud/bin/tenx
	    echo "export TENX_HOME=/opt/tenx-cloud" | sudo tee "/etc/profile.d/tenx-cloud.sh"
	    echo "export TENX_BIN=\$TENX_HOME/bin/tenx-cloud" | sudo tee -a "/etc/profile.d/tenx-cloud.sh"
	    echo "export TENX_MODULES=\$TENX_HOME/lib/app/modules" | sudo tee -a "/etc/profile.d/tenx-cloud.sh"
	    echo "export TENX_CONFIG=/etc/tenx/config" | sudo tee -a "/etc/profile.d/tenx-cloud.sh"
	    echo "export TENX_SYMBOLS_PATH=/etc/tenx/symbols" | sudo tee -a "/etc/profile.d/tenx-cloud.sh"
	    echo "export PATH=\$TENX_HOME/bin:\$PATH" | sudo tee -a "/etc/profile.d/tenx-cloud.sh"
	    ```

	=== ":material-flash-outline: Runtime"

	    ``` { .console .copy }
	    ln -s /opt/tenx-edge/bin/tenx-edge /opt/tenx-edge/bin/tenx
	    echo "export TENX_HOME=/opt/tenx-edge" | sudo tee "/etc/profile.d/tenx-edge.sh"
	    echo "export TENX_BIN=\$TENX_HOME/bin/tenx-edge" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    echo "export TENX_MODULES=\$TENX_HOME/lib/app/modules" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    echo "export TENX_CONFIG=/etc/tenx/config" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    echo "export TENX_SYMBOLS_PATH=/etc/tenx/symbols" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    echo "export PATH=\$TENX_HOME/bin:\$PATH" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    ```

	=== ":material-coffee: Runtime (JVM)"

	    The `.deb` lays down `/opt/tenx-edge/bin/tenx-edge` itself, so the same block applies -

	    ``` { .console .copy }
	    ln -s /opt/tenx-edge/bin/tenx-edge /opt/tenx-edge/bin/tenx
	    echo "export TENX_HOME=/opt/tenx-edge" | sudo tee "/etc/profile.d/tenx-edge.sh"
	    echo "export TENX_BIN=\$TENX_HOME/bin/tenx-edge" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    echo "export TENX_MODULES=\$TENX_HOME/lib/app/modules" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    echo "export TENX_CONFIG=/etc/tenx/config" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    echo "export TENX_SYMBOLS_PATH=/etc/tenx/symbols" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    echo "export PATH=\$TENX_HOME/bin:\$PATH" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    ```

	7. Environment variables will only work when starting a new terminal session, or -

	=== ":material-cogs: Compiler"
	    ``` { .console .copy }
	    source /etc/profile.d/tenx-cloud.sh
	    ```

	=== ":material-flash-outline: Runtime"

	    ``` { .console .copy }
	    source /etc/profile.d/tenx-edge.sh
	    ```

	=== ":material-coffee: Runtime (JVM)"

	    ``` { .console .copy }
	    source /etc/profile.d/tenx-edge.sh
	    ```

	8. Done. You can now [configure](https://doc.log10x.com/config/) and start the runtime -

	``` { .console .copy }
	tenx run @my-config.yaml
	```


=== ":simple-redhat: Red Hat / :simple-centos: CentOS 7"

	1. Download the RPM package file from the [latest releases](https://github.com/log-10x/pipeline-releases/releases/latest){target="\_blank"} page.

	=== ":material-cogs: Compiler"

	    ```
	    # x86
	    tenx-cloud-<ver>-1.x86_64.rpm

	    # Arm64
	    tenx-cloud-<ver>-1.aarch64.rpm
	    ```

	=== ":material-coffee: Runtime (JVM)"

	    ```
	    # x86
	    tenx-edge-<ver>-1.x86_64.rpm

	    # Arm64
	    tenx-edge-<ver>-1.aarch64.rpm
	    ```

	2. Install the package

	=== ":material-cogs: Compiler"

	    ``` { .console .copy }
	    yum install /path/to/tenx-cloud.rpm
	    ```

	=== ":material-coffee: Runtime (JVM)"

	    ``` { .console .copy }
	    yum install /path/to/tenx-edge.rpm
	    ```

	3. Download config tar.gz from the [latest releases](https://github.com/log-10x/pipeline-releases/releases/latest){target="\_blank"} page.

	4. Unpack with -

	``` { .console .copy }
	mkdir -p /etc/tenx/config
	tar -xzf /path/to/CONFIG.TAR.GZ -C /etc/tenx/config
	```

	5. Download the [symbol library](https://doc.log10x.com/compile/link/#symbol-library) `tenx-symbols-<ver>.10x.tar` from the same releases page and put it where the engine looks for it. The [single line installer](https://doc.log10x.com/install/singleline/) does this step automatically; a manual install has to place the tar itself -

	``` { .console .copy }
	mkdir -p /etc/tenx/symbols
	mv /path/to/tenx-symbols-<ver>.10x.tar /etc/tenx/symbols/
	```

	6. Set up environment variables -

	=== ":material-cogs: Compiler"
	    ``` { .console .copy }
	    ln -s /opt/tenx-cloud/bin/tenx-cloud /opt/tenx-cloud/bin/tenx
	    echo "export TENX_HOME=/opt/tenx-cloud" | sudo tee "/etc/profile.d/tenx-cloud.sh"
	    echo "export TENX_BIN=\$TENX_HOME/bin/tenx-cloud" | sudo tee -a "/etc/profile.d/tenx-cloud.sh"
	    echo "export TENX_MODULES=\$TENX_HOME/lib/app/modules" | sudo tee -a "/etc/profile.d/tenx-cloud.sh"
	    echo "export TENX_CONFIG=/etc/tenx/config" | sudo tee -a "/etc/profile.d/tenx-cloud.sh"
	    echo "export TENX_SYMBOLS_PATH=/etc/tenx/symbols" | sudo tee -a "/etc/profile.d/tenx-cloud.sh"
	    echo "export PATH=\$TENX_HOME/bin:\$PATH" | sudo tee -a "/etc/profile.d/tenx-cloud.sh"
	    ```

	=== ":material-coffee: Runtime (JVM)"
	    ``` { .console .copy }
	    ln -s /opt/tenx-edge/bin/tenx-edge /opt/tenx-edge/bin/tenx
	    echo "export TENX_HOME=/opt/tenx-edge" | sudo tee "/etc/profile.d/tenx-edge.sh"
	    echo "export TENX_BIN=\$TENX_HOME/bin/tenx-edge" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    echo "export TENX_MODULES=\$TENX_HOME/lib/app/modules" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    echo "export TENX_CONFIG=/etc/tenx/config" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    echo "export TENX_SYMBOLS_PATH=/etc/tenx/symbols" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    echo "export PATH=\$TENX_HOME/bin:\$PATH" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    ```

	7. Environment variables will only work when starting a new terminal session, or -

	=== ":material-cogs: Compiler"
	    ``` { .console .copy }
	    source /etc/profile.d/tenx-cloud.sh
	    ```

	=== ":material-coffee: Runtime (JVM)"
	    ``` { .console .copy }
	    source /etc/profile.d/tenx-edge.sh
	    ```

	8. Done. You can now [configure](https://doc.log10x.com/config/) and start the runtime -

	``` { .console .copy }
	tenx run @my-config.yaml
	```


=== ":simple-redhat: Red Hat / :simple-centos: CentOS 8+ / :simple-fedora: Fedora"

	1. Download the RPM package file from the [latest releases](https://github.com/log-10x/pipeline-releases/releases/latest){target="\_blank"} page.

	=== ":material-cogs: Compiler"

	    ```
	    # x86
	    tenx-cloud-<ver>-1.x86_64.rpm

	    # Arm64
	    tenx-cloud-<ver>-1.aarch64.rpm
	    ```

	=== ":material-coffee: Runtime (JVM)"

	    ```
	    # x86
	    tenx-edge-<ver>-1.x86_64.rpm

	    # Arm64
	    tenx-edge-<ver>-1.aarch64.rpm
	    ```

	2. Install the package

	=== ":material-cogs: Compiler"

	    ``` { .console .copy }
	    dnf install /path/to/tenx-cloud.rpm
	    ```

	=== ":material-coffee: Runtime (JVM)"

	    ``` { .console .copy }
	    dnf install /path/to/tenx-edge.rpm
	    ```

	3. Download config tar.gz from the [latest releases](https://github.com/log-10x/pipeline-releases/releases/latest){target="\_blank"} page.

	4. Unpack with -

	``` { .console .copy }
	mkdir -p /etc/tenx/config
	tar -xzf /path/to/CONFIG.TAR.GZ -C /etc/tenx/config
	```

	5. Download the [symbol library](https://doc.log10x.com/compile/link/#symbol-library) `tenx-symbols-<ver>.10x.tar` from the same releases page and put it where the engine looks for it. The [single line installer](https://doc.log10x.com/install/singleline/) does this step automatically; a manual install has to place the tar itself -

	``` { .console .copy }
	mkdir -p /etc/tenx/symbols
	mv /path/to/tenx-symbols-<ver>.10x.tar /etc/tenx/symbols/
	```

	6. Set up environment variables -

	=== ":material-cogs: Compiler"
	    ``` { .console .copy }
	    ln -s /opt/tenx-cloud/bin/tenx-cloud /opt/tenx-cloud/bin/tenx
	    echo "export TENX_HOME=/opt/tenx-cloud" | sudo tee "/etc/profile.d/tenx-cloud.sh"
	    echo "export TENX_BIN=\$TENX_HOME/bin/tenx-cloud" | sudo tee -a "/etc/profile.d/tenx-cloud.sh"
	    echo "export TENX_MODULES=\$TENX_HOME/lib/app/modules" | sudo tee -a "/etc/profile.d/tenx-cloud.sh"
	    echo "export TENX_CONFIG=/etc/tenx/config" | sudo tee -a "/etc/profile.d/tenx-cloud.sh"
	    echo "export TENX_SYMBOLS_PATH=/etc/tenx/symbols" | sudo tee -a "/etc/profile.d/tenx-cloud.sh"
	    echo "export PATH=\$TENX_HOME/bin:\$PATH" | sudo tee -a "/etc/profile.d/tenx-cloud.sh"
	    ```

	=== ":material-coffee: Runtime (JVM)"
	    ``` { .console .copy }
	    ln -s /opt/tenx-edge/bin/tenx-edge /opt/tenx-edge/bin/tenx
	    echo "export TENX_HOME=/opt/tenx-edge" | sudo tee "/etc/profile.d/tenx-edge.sh"
	    echo "export TENX_BIN=\$TENX_HOME/bin/tenx-edge" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    echo "export TENX_MODULES=\$TENX_HOME/lib/app/modules" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    echo "export TENX_CONFIG=/etc/tenx/config" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    echo "export TENX_SYMBOLS_PATH=/etc/tenx/symbols" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    echo "export PATH=\$TENX_HOME/bin:\$PATH" | sudo tee -a "/etc/profile.d/tenx-edge.sh"
	    ```

	7. Environment variables will only work when starting a new terminal session, or -

	=== ":material-cogs: Compiler"
	    ``` { .console .copy }
	    source /etc/profile.d/tenx-cloud.sh
	    ```

	=== ":material-coffee: Runtime (JVM)"
	    ``` { .console .copy }
	    source /etc/profile.d/tenx-edge.sh
	    ```

	8. Done. You can now [configure](https://doc.log10x.com/config/) and start the runtime -

	``` { .console .copy }
	tenx run @my-config.yaml
	```
