Ich würde gerne BPFTRACE für die Systemüberwachung
einsetzen. Leider stellt sich heraus, dass
Ubuntu-20.04 und 22.04 veraltete Versionen von
diesem Werkzeug ausliefern. Dadurch funktionieren
viele Beispiele nicht. Hier beschreibe ich, wie
ich eine aktuelle Version von BPFTRACE baue.
ubuntu@bpftrace-2004:~$ sh nix-install --no-daemon
downloading Nix 2.19.3 binary tarball for x86_64-linux from 'https://releases.nixos.org/nix/nix-2.19.3/nix-2.19.3-x86_64-linux.tar.xz' to '/tmp/nix-binary-tarball-unpack.MHkVzgLYjQ'...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 20.6M 100 20.6M 0 0 5965k 0 0:00:03 0:00:03 --:--:-- 5965k
Note: a multi-user installation is possible. See https://nixos.org/manual/nix/stable/installation/installing-binary.html#multi-user-installation
performing a single-user installation of Nix...
copying Nix to /nix/store.................................................
installing 'nix-2.19.3'
building '/nix/store/25296lg19r1zpl2s3pfc4ww214fy36l2-user-environment.drv'...
unpacking channels...
modifying /home/ubuntu/.profile...
Installation finished! To ensure that the necessary environment
variables are set, either log in again, or type
. /home/ubuntu/.nix-profile/etc/profile.d/nix.sh
in your shell.
Auschecken
Für meinen Fork:
REPO=git@github.com:uli-heller/bpftrace.git
TAG=0.20.1_uli-release
Für Standard-Repo:
REPO=git@github.com:bpftrace/bpftrace.git
TAG=v0.20.1
mkdir build
cd build
git clone "${REPO}"
cd bpftrace
git checkout "${TAG}"
Bauen
Standard
1234
$ nix build
# lädt sehr viel Zeugs herunter - 650 MiB --ausgepackt--> 4000 MiB
# Binary liegt unter result/bin/bpftrace
# Es läuft nicht unter ubuntu-20.04
Mit altem Compiler
123
$ nix build .#bpftrace-llvm12
# Binary liegt unter result/bin/bpftrace
# Es läuft nicht unter ubuntu-20.04
AppImage
12345
$ nix build .#appimage
# AppImage liegt unter result
# Es ist relativ groß (160M)
# Es läßt sich nicht komprimieren
# Ausführung unter ubuntu-20.04 klappt