This article is also available in the following other languages / Dieser Beitrag ist auch in folgenden anderen Sprachen verfügbar: English

Static Binaries

2023-07-02 · christian · debugging, linux, server, shell

Beim debuggen von Problemen in Container Umgebungen oder auf Geräten wie Routern gibt es immer das gleiche Problem: Die ganzen Standardwerkzeuge fehlen.

Die Software Pakete zu installieren ist oft keine Option, insbesondere in Umgebungen wo es aus Sicherheitsgründen kein Internet gibt.

Abhilfe können hier statische Builds der Programme sein. Kompiliert man ein Programm statisch, enthält eine einzelne Programmdatei alle sonst benötigen Abhängigkeiten und kann einfach kopiert werden und funktioniert.

Nachteil ist die Dateigröße der Programme. Ein statisch kompiliertes dig ist knapp 6 Megabytes groß, wohingegen das dig aus den Paketquellen nur 200KB groß ist.

Downloads

Die statischen Programme gibt es hier: https://files.serverless.industries/bin/

Unterstützte CPU Architekturen: x86 (i386), x86_64 (amd64), ARM32v7 (armv7), ARM64v8 (aarch64)

Programme: busybox, curl, dig, htop, iperf2, iperf3, jq, rsync, scp, sftp, ssh-keygen, ssh-keyscan, ssh, tcpdump, vim

Mehr Details gibt es in der info.txt.

Build Scripts

Die Builds laufen in meiner privaten Gitlab Instanz in CI Pipelines mit Docker Containers. Andere CPU Architekturen werden mit Hilfe von multiarch/qemu-user-static gebaut.

Der Build Prozess erzeugt für jede CPU Architektur ein Basis Image welches alle nötigen Werkzeuge zum kompilieren der Programme enthält, kompiliert anschließend die Programme und lädt diese hoch.

Einen Mirror des Pipeline Codes gibt es auf meinem GitHub Account.


More


serverless.industries BG by Carl Lender (CC BY 2.0) Imprint & Privacy
9d41264a 2023-12-28 19:26
Mastodon via chaos.social Mastodon via einbeck.social