# Install strace with Homebrew, apk, apt, dnf, Nix, pacman, zypper

Diagnostic, instructional, and debugging tool for the Linux kernel. Version 7.1 via Homebrew; verified 2026-06-15. Also installable with debian: sudo apt install strace.

## Install

```sh
sudo av install brew:strace
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install strace
```

  Evidence: local Homebrew formula metadata

### Linux

- apk (92%):

```sh
sudo apk add strace
```

  Evidence: Alpine Linux edge package indexes: strace from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install strace
```

  Evidence: Debian stable package indexes: strace from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install strace
```

  Evidence: Fedora Rawhide package metadata: strace from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/210a2053c8e007daf9ae39c2a21daaed9b2ddd07d63ecffa597050361e73650c-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#strace
```

  Evidence: nixpkgs package indexes: pkgs/by-name/st/strace/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S strace
```

  Evidence: Arch Linux sync databases: strace from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install strace
```

  Evidence: openSUSE Tumbleweed package metadata: strace from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst

## Package facts

- **Package key:** brew:strace
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/strace>
- **Version:** 7.1
- **Source summary:** Diagnostic, instructional, and debugging tool for the Linux kernel
- **Homepage:** <https://strace.io/>
- **Repository:** <https://github.com/strace/strace>
- **Upstream docs:** <https://strace.io/>
- **License:** LGPL-2.1-or-later
- **Source archive:** <https://github.com/strace/strace/releases/download/v7.1/strace-7.1.tar.xz>
- **Last updated:** 2026-06-15T19:22:18Z
- **Generated:** 2026-08-04T22:13:35+00:00

## Executables

- strace (cli)
- strace-log-merge (cli)
- strace (alias)
- strace-log-merge (alias)

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, x86_64_linux

## Freshness

- Page generated: 2026-08-04
- Package-manager version: 7.1
- Package-manager updated: 2026-06-15
- Local data: ok
- Upstream repository: https://github.com/strace/strace
- info: No cached GitHub release or tag data was available.
## Project history and usage

strace is the standard Linux command-line tool for tracing system calls and signals. It is central to Unix debugging culture because it turns opaque process behavior into a readable syscall transcript.

### Project history

The strace manual history says the original program was written by Paul Kranenburg for SunOS and inspired by Sun's trace utility. Branko Lankester ported it to Linux and added Linux kernel support, and Rick Sladkey merged the SunOS and Linux lines in 1993 before adding SVR4, Solaris, and Irix work.

Maintenance later moved through Wichert Akkerman in 1996, Roland McGrath in 2002, and Dmitry Levin from 2009. The manual records major platform work across Linux architectures, a migration to Git, and the eventual removal of non-Linux code after the 4.6 release.

### Adoption history

strace is packaged across mainstream Unix-like package managers in the supplied source facts, including Homebrew, Debian, Fedora, Arch, Alpine, Nix, Ubuntu, and openSUSE.

Its adoption is tied less to a framework ecosystem and more to everyday operational debugging: when a binary cannot open a file, hangs on a socket, sees unexpected permissions, or makes surprising syscalls, strace is the small tool users install first.

### How it is used

The man page describes tracing a new command, attaching to an existing process with -p, filtering syscall sets, tracing paths, dumping selected file descriptor I/O, collecting timing summaries, printing timestamps, decoding file descriptors, and injecting syscall faults.

Package users commonly install it as a rescue and diagnosis tool on Linux hosts, containers, CI images, and development machines.

### Why package nerds care

strace is package-nerd significant because it explains package failures at the syscall layer: missing shared libraries, wrong config paths, permission problems, sandbox behavior, and network or filesystem assumptions become visible without rebuilding the program.

It is also a fixture of minimal debugging toolbelts. Even users who do not develop strace depend on distributions keeping its syscall tables current with the Linux kernel.

### Timeline

- 1991: Paul Kranenburg's SunOS strace lineage begins, according to the man page history.
- 1992: Branko Lankester ports strace to Linux.
- 1993: Rick Sladkey takes on the project and merges the SunOS and Linux versions.
- 1996: Wichert Akkerman becomes maintainer.
- 2002: Roland McGrath takes over maintenance.
- 2009: Dmitry Levin becomes active maintainer.
- 2012: strace 4.7 removes non-Linux code after the 4.6 release.

### Related projects

- The man page positions strace among Unix tracing tools such as Sun trace and SVR4 truss, and its Linux implementation depends on the kernel ptrace interface.
- Adjacent Linux diagnostic tools include ltrace, perf, ftrace tooling, and system-call-aware debuggers, but strace remains the small user-facing syscall tracer most package users reach for.

### Sources

- <https://github.com/strace/strace/blob/master/COPYING>
- <https://github.com/strace/strace/blob/master/NEWS>
- <https://man7.org/linux/man-pages/man1/strace.1.html>
- source_facts.package-manager


## Security Notes

process tracing tool.

- **Geiger risk:** red / medium
- process tracing tool

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** strace
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Requirements:** linux
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Debian apt - strace - 6.13+ds-1: normalized package name match | Debian stable package indexes: strace from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | System call tracer | https://strace.io
- Nix - strace: normalized package name match | nixpkgs package indexes: pkgs/by-name/st/strace/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - strace - 6.8-0ubuntu2: normalized package name match | Ubuntu 24.04 LTS package indexes: strace from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | System call tracer | https://strace.io
- apk - strace - 6.19-r1: normalized package name match | Alpine Linux edge package indexes: strace from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | Diagnostic, debugging and instructional userspace tracer | https://strace.io
- apk - strace-dbg - 6.19-r1: normalized package name match | Alpine Linux edge package indexes: strace-dbg from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | Diagnostic, debugging and instructional userspace tracer (debug symbols) | https://strace.io
- apk - strace-doc - 6.19-r1: normalized package name match | Alpine Linux edge package indexes: strace-doc from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | Diagnostic, debugging and instructional userspace tracer (documentation) | https://strace.io
- dnf - strace - 7.1-1.fc45: normalized package name match | Fedora Rawhide package metadata: strace from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/210a2053c8e007daf9ae39c2a21daaed9b2ddd07d63ecffa597050361e73650c-primary.xml.zst | Tracks and displays system calls associated with a running process | https://strace.io
- pacman - strace - 7.0-1: normalized package name match | Arch Linux sync databases: strace from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | A diagnostic, debugging and instructional userspace tracer | https://strace.io/
- zypper - strace - 7.1-2.3: normalized package name match | openSUSE Tumbleweed package metadata: strace from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | A utility to trace the system calls of a program | http://strace.io/


## Related links

- [Secret-risk packages](https://pkg.so/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://pkg.so/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://pkg.so/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://pkg.so/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [elfutils](https://pkg.so/brew/elfutils/) - Shares pkgdb curated category or tags: cli, debugging, developer-tools.
- [dwarfutils](https://pkg.so/brew/dwarfutils/) - Shares pkgdb curated category or tags: cli, debugging, developer-tools.
- [ios-deploy](https://pkg.so/brew/ios-deploy/) - Shares pkgdb curated category or tags: cli, debugging, developer-tools.
- [lttng-ust](https://pkg.so/brew/lttng-ust/) - Shares pkgdb curated category or tags: cli, developer-tools, tracing.
- [delve](https://pkg.so/brew/delve/) - Shares pkgdb curated category or tags: cli, debugging, developer-tools.
- [open-ocd](https://pkg.so/brew/open-ocd/) - Shares pkgdb curated category or tags: cli, debugging, developer-tools.
- [otel-cli](https://pkg.so/brew/otel-cli/) - Shares pkgdb curated category or tags: cli, developer-tools, tracing.
- [kdoctor](https://pkg.so/brew/kdoctor/) - Shares pkgdb curated category or tags: cli, developer-tools, diagnostics.
- [bacon-ls](https://pkg.so/brew/bacon-ls/) - Local package facts share a topical domain. Shared terms: cli, developer, developer-tools, diagnostic, diagnostics.
- [stlink](https://pkg.so/brew/stlink/) - Local package facts share a topical domain. Shared terms: cli, debugging, developer, developer-tools, linux.
- [byteman](https://pkg.so/brew/byteman/) - Local package facts share a topical domain. Shared terms: cli, developer, developer-tools, tracing.

## Combined YAML source

View the package source record on GitHub. [combined/strace.yml](https://github.com/mxcl/pkgdb/blob/main/combined/strace.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- pkgdb category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
