Skip to content

Latest commit

 

History

History
101 lines (73 loc) · 2.9 KB

File metadata and controls

101 lines (73 loc) · 2.9 KB
description Install eskaks by building from source with a Rust toolchain, verify the binary, and set up shell tab-completion.

Installation

With conda

conda install -c bioconda eskaks

Bioconda publishes linux-64 and osx-64. There is no osx-arm64 build yet, so a plain install on Apple silicon fails with PackagesNotFoundError. Either run the Intel build under Rosetta:

CONDA_SUBDIR=osx-64 conda install -c bioconda eskaks

or take the native macos-aarch64 binary from the release below, which has no such gap.

From a release

Every tagged release attaches a binary for macOS (Apple silicon and Intel), Linux x86_64 and Windows x86_64. Take the one for your platform from the latest release, unpack it, and put eskaks on your PATH.

Each release also carries a SHA256SUMS file and a signed build provenance attestation, so you can check that the file you downloaded is the one the release workflow built, rather than trusting that the download went where you meant it to:

shasum -a 256 -c SHA256SUMS
gh attestation verify eskaks-<version>-<platform>.tar.gz --owner PathoGenOmics-Lab

From source

eskaks also builds from source with a Rust toolchain (Rust ≥ 1.85):

git clone https://github.com/PathoGenOmics-Lab/eskaks.git
cd eskaks
make release          # or: cargo build --release

The binary is written to target/release/eskaks. Put it on your PATH:

cp target/release/eskaks ~/.local/bin/

!!! info "Not on crates.io" cargo install eskaks is not available. Use conda, a release binary, or a source build.

Requirements

  • Rust ≥ 1.85.0, for the source build.
  • A C compiler, also for the source build. eskaks itself is Rust, but it reads compressed input through needletail, which pulls liblzma-sys and zstd-sys, and those build vendored C. A release binary needs neither: it links only the platform C library.

Performance tip

The make release target enables native-CPU optimizations (-C target-cpu=native): CPU-specific SIMD instructions for maximum speed on your hardware. For a portable binary you can run on a different CPU, build with cargo build --release instead.

Verify installation

eskaks --version
eskaks --list-codes

Shell completions

eskaks can print a completion script for your shell, so <Tab> completes subcommands and flags:

# Bash
eskaks --completions bash | sudo tee /etc/bash_completion.d/eskaks > /dev/null

# Zsh (into a directory on your $fpath, e.g. ~/.zfunc)
eskaks --completions zsh > ~/.zfunc/_eskaks

# Fish
eskaks --completions fish > ~/.config/fish/completions/eskaks.fish

bash, zsh, fish, elvish, and powershell are supported. Restart the shell (or re-source your profile) afterwards.