Skip to main content

Cargo/Crates.io Installation

Install NoETL CLI from the official Rust package registry (crates.io).

Quick Install

cargo install noetl

This installs the noetl binary to ~/.cargo/bin/ (ensure it's in your PATH).

Prerequisites

Install Rust

If you don't have Rust installed:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env

Verify installation:

cargo --version
rustc --version

Installation Options

Latest Stable Version

cargo install noetl-cli

Specific Version

cargo install noetl --version 2.5.3

From Git (Development)

Install the latest development version:

cargo install --git https://github.com/noetl/noetl noetl

From Local Source

If you have the repository cloned:

cd noetl/crates/noetlctl
cargo install --path .

Verify Installation

noetl --version
# Output: noetl 2.5.3

noetl --help

Update

cargo install noetl --force

The --force flag reinstalls even if already installed.

Uninstall

cargo uninstall noetl

Build Options

Optimized Build

For maximum performance:

cargo install noetl --profile release-lto

Package Details

Crate Name: noetl (on crates.io)
Directory: crates/noetlctl (in repository)
PyPI Package: noetlctl (Python distribution)
Binary Name: noetl (installed command)

This naming allows:

  • Clean cargo install: cargo install noetl
  • Descriptive directory: noetlctl = "noetl control"
  • Separate Python package: pip install noetlctl

Minimal Binary Size

cargo install noetl-cli --profile min-size

With Debug Symbols

cargo install noetl-cli --profile release --debug

Cross-Platform Installation

Linux (amd64)

cargo install noetl-cli --target x86_64-unknown-linux-gnu

Linux (arm64)

rustup target add aarch64-unknown-linux-gnu
cargo install noetl-cli --target aarch64-unknown-linux-gnu

macOS (Intel)

cargo install noetl-cli --target x86_64-apple-darwin

macOS (Apple Silicon)

cargo install noetl-cli --target aarch64-apple-darwin

Package Information

Alternative Installation Methods

  • Homebrew (macOS): brew install noetl
  • APT (Ubuntu/Debian): sudo apt-get install noetl
  • PyPI: pip install noetl-cli
  • Docker: docker pull ghcr.io/noetl/noetl:latest

Troubleshooting

Cargo not found

Ensure Rust is installed and ~/.cargo/bin is in your PATH:

echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

For zsh:

echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Compilation fails

Update Rust to the latest stable version:

rustup update stable
rustup default stable

Permission denied

If you get permission errors, ensure ~/.cargo/bin is writable:

chmod +x ~/.cargo/bin/noetl

Binary not in PATH

Find where cargo installed the binary:

which noetl
# If not found, check:
ls ~/.cargo/bin/noetl

Add to PATH if needed:

export PATH="$HOME/.cargo/bin:$PATH"

Build takes too long

Use a faster linker (Linux):

# Install mold linker
sudo apt-get install mold
# or
cargo install mold

# Use it for installation
RUSTFLAGS="-C link-arg=-fuse-ld=mold" cargo install noetl-cli

Next Steps