Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Installer hawser

hawser est distribué sous forme d’un unique binaire nommé haw. Cette page constitue la matrice d’installation complète : tous les canaux, comment vérifier la release signée, le workflow air-gap et la compilation depuis les sources. Pour la version courte, voir la section Install du README.

La release actuelle est la v0.1.7, publiée avec des archives signées et reproductibles pour chaque plateforme prise en charge.

Matrice des canaux

CanalPlateformeCommande / sourcePrérequis
crates.iotout (Rust)cargo install hawserchaîne d’outils Rust 1.90+
HomebrewmacOS + Linuxbrew install nastwinns/tap/hawserHomebrew
ScoopWindowsscoop bucket add nastwinns https://github.com/Nastwinns/scoop-bucket puis scoop install hawserScoop
Binaire musl statiqueLinux x86_64télécharger haw-0.1.7-x86_64-unknown-linux-musl.tar.gz (voir ci-dessous)aucun (sans dépendance)
Archive précompiléeLinux gnu (x86_64/aarch64), Linux musl (x86_64), macOS (x86_64/aarch64), Windows (x86_64)GitHub Releaseaucun (optionnel : cosign, sha256sum pour vérifier)
Registres privéstoutmiroir Nexus / Artifactory / GitLab / Bitbucket — voir DISTRIBUTION.mdidentifiants du registre
Dockertout (avec Docker)docker build -t haw .Docker + le dépôt
Depuis les sourcestout (Rust)cargo install --git … ou cargo build --releasechaîne d’outils Rust 1.90+

Tous les canaux installent le même binaire haw. cargo install hawser est l’installation Rust canonique.

Gestionnaires de paquets

crates.io (Rust)

cargo install hawser

Compile depuis les sources avec votre chaîne d’outils locale et place haw dans ~/.cargo/bin. Nécessite une chaîne d’outils Rust 1.90+.

Homebrew (macOS + Linux)

brew install nastwinns/tap/hawser

Le tap se trouve à Nastwinns/homebrew-tap. Homebrew récupère l’archive précompilée pour votre plateforme, aucun compilateur n’est donc nécessaire.

Scoop (Windows)

scoop bucket add nastwinns https://github.com/Nastwinns/scoop-bucket
scoop install hawser

AUR (Arch Linux)

Un paquet hawser-bin (précompilé à partir de la GitHub Release) — voir packaging/aur/PKGBUILD :

yay -S hawser-bin            # ou : paru -S hawser-bin

Nix (flake)

Exécutez sans installer, ou ajoutez à un profil — le flake compile haw depuis les sources et l’enveloppe avec git :

nix run github:Nastwinns/hawser              # exécuter une fois
nix profile install github:Nastwinns/hawser  # installer

Debian / RPM

Chaque GitHub Release fournit un .deb et un .rpm pour Linux x86_64 (gnu) :

# Debian/Ubuntu
curl -sSLO https://github.com/Nastwinns/hawser/releases/latest/download/hawser_0.1.7-1_amd64.deb
sudo dpkg -i hawser_0.1.7-1_amd64.deb
# Fedora/RHEL
sudo rpm -i https://github.com/Nastwinns/hawser/releases/latest/download/hawser-0.1.7-1.x86_64.rpm

Binaire musl statique (Linux, sans dépendance, adapté à l’air-gap)

L’installation Linux universelle recommandée. Le build musl est entièrement statique — pas de glibc, pas de runtime — il s’exécute donc de manière identique sur n’importe quel hôte Linux, s’intègre dans des conteneurs minimaux et s’installe proprement sur des machines air-gap sous forme d’un seul fichier.

curl -sSL https://github.com/Nastwinns/hawser/releases/download/v0.1.7/haw-0.1.7-x86_64-unknown-linux-musl.tar.gz \
  | tar xz && sudo install haw /usr/local/bin/

Pour les hôtes air-gap, téléchargez l’archive (ainsi que ses .sha256, .sig et .pem) sur une machine connectée, vérifiez-la (ci-dessous), copiez les quatre fichiers, puis installez.

Archives précompilées (signées)

Chaque plateforme est fournie sous forme d’archive sur la GitHub Release :

  • haw-0.1.7-x86_64-unknown-linux-gnu.tar.gz
  • haw-0.1.7-aarch64-unknown-linux-gnu.tar.gz
  • haw-0.1.7-x86_64-unknown-linux-musl.tar.gz (statique)
  • haw-0.1.7-x86_64-apple-darwin.tar.gz
  • haw-0.1.7-aarch64-apple-darwin.tar.gz
  • haw-0.1.7-x86_64-pc-windows-msvc.zip

Chaque archive est accompagnée de :

  • <archive>.sha256 — une somme de contrôle SHA-256
  • <archive>.sig et <archive>.pem — une signature sans clé cosign et son certificat

La release est reproductible et signée. La vérification est optionnelle mais recommandée, et c’est tout l’intérêt sur des hôtes verrouillés ou air-gap.

Vérifier la somme de contrôle

sha256sum -c haw-0.1.7-x86_64-unknown-linux-musl.tar.gz.sha256

Attendez-vous à … OK. (Sous macOS, shasum -a 256 -c est l’équivalent.)

Vérifier la signature cosign

La vérification sans clé contrôle la signature par rapport au journal de transparence Sigstore. Vous devez avoir cosign installé :

cosign verify-blob \
  --certificate haw-0.1.7-x86_64-unknown-linux-musl.tar.gz.pem \
  --signature   haw-0.1.7-x86_64-unknown-linux-musl.tar.gz.sig \
  --certificate-identity-regexp 'https://github.com/Nastwinns/hawser' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  haw-0.1.7-x86_64-unknown-linux-musl.tar.gz

Attendez-vous à Verified OK. Une fois vérifié, décompressez et installez :

tar xzf haw-0.1.7-x86_64-unknown-linux-musl.tar.gz
sudo install haw /usr/local/bin/

Workflow air-gap

  1. Sur une machine connectée, téléchargez l’archive et ses compagnons .sha256, .sig et .pem.
  2. Vérifiez la somme de contrôle et la signature cosign (ci-dessus) — cela établit la confiance tant que vous avez encore accès réseau au journal de transparence.
  3. Copiez les quatre fichiers vers l’hôte air-gap.
  4. Vérifiez à nouveau la somme de contrôle hors ligne (sha256sum -c …), décompressez et installez.

Le binaire musl statique n’a aucune dépendance d’exécution, donc rien d’autre n’a besoin de franchir l’air gap.

Registres privés (Nexus / Artifactory / GitLab / Bitbucket)

Les organisations qui mettent en miroir les releases sur un registre interne peuvent récupérer exactement les mêmes archives signées (ainsi que .sha256, .sig, .pem et les .deb/.rpm) depuis Nexus, Artifactory, GitLab ou Bitbucket. Chaque release taguée publie d’abord la GitHub Release, puis met en miroir les artefacts vers ceux de ces registres qui sont configurés.

Voir DISTRIBUTION.md pour les chemins de téléversement exacts, la matrice de secrets pour activer chaque registre, et les commandes de téléchargement/installation propres à chaque registre. Exemple (Nexus) :

curl -u "$NEXUS_USER:$NEXUS_PASS" -O \
  "$NEXUS_URL/repository/raw-hosted/haw/0.1.7/haw-0.1.7-x86_64-unknown-linux-musl.tar.gz"

Vérifiez la somme de contrôle et la signature cosign exactement comme pour la GitHub Release (ci-dessus).

Docker

Une image se construit directement à partir du Dockerfile du dépôt :

docker build -t haw .
docker run --rm haw --version

Nécessite Docker et un checkout du dépôt.

Depuis les sources

Nécessite une chaîne d’outils Rust 1.90+.

Installez le dernier main directement depuis Git :

cargo install --git https://github.com/Nastwinns/hawser hawser

Ou clonez et compilez un binaire de release :

git clone https://github.com/Nastwinns/hawser
cd hawser
cargo build --release
# binaire dans target/release/haw

Vérifier l’installation

Quel que soit le canal utilisé :

haw --version

Retour au README.