# Install tup with Homebrew, apk, apt, MacPorts, Nix, pacman, scoop, zypper

File-based build system. Version 0.8 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:tup
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install tup
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install tup
```

  Evidence: MacPorts ports tree: devel/tup/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add tup
```

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

- Debian apt (92%):

```sh
sudo apt install tup
```

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

- Nix (92%):

```sh
nix profile install nixpkgs#tup
```

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

- pacman (92%):

```sh
sudo pacman -S tup
```

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

- zypper (92%):

```sh
sudo zypper install tup
```

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

### Windows

- Scoop (92%):

```sh
scoop install main/tup
```

  Evidence: Scoop official bucket manifest trees: bucket/tup.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:tup
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/tup>
- **Version:** 0.8
- **Source summary:** File-based build system
- **Homepage:** <https://gittup.org/tup/>
- **Repository:** <https://github.com/gittup/tup>
- **Upstream docs:** <https://gittup.org/tup>
- **License:** GPL-2.0-only
- **Source archive:** <https://github.com/gittup/tup/archive/refs/tags/v0.8.tar.gz>
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- tup (cli)
- tup (alias)

## Dependencies

- libfuse

## Build dependencies

- pkgconf

## Install behavior

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

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.8
- Local data: ok
- Upstream repository: https://github.com/gittup/tup
- Upstream latest detected: v0.8 (current)
- info: No package-manager update timestamp was available.
## Project history and usage

tup is a file-based build system that models a project as changed files plus a directed acyclic graph, then updates only the outputs affected by those changes.

### Project history

tup was published as an alternative to traditional build tools whose rebuild cost depends heavily on scanning files and manually maintained dependencies. The official README and homepage describe it as a build system for Linux, macOS, and Windows that takes a list of file changes and a DAG, then executes the commands needed to update dependent files with very little overhead.

The project has been public on GitHub since 2011, but its official site keeps the older research-oriented framing alive: the navigation links to the manual, examples, Make-vs-tup comparisons, a Lua parser, and the Build System Rules and Algorithms PDF. The manual presents `tup` as the primary command, `tup init` as the creator of the `.tup` database, and Tupfiles as the place where projects describe how source files become outputs.

Unlike build front ends such as CMake, tup is itself the dependency-tracking updater. Its manual emphasizes that it has no domain-specific knowledge: C, generated files, and other build products are expressed through Tupfiles, while tup handles the graph, changed-file detection, parallel jobs, environment checking, and optional file monitoring.

### Adoption history

tup remained a specialist build-system choice rather than a universal default, but it achieved unusually broad package-manager coverage for a niche developer tool. The supplied package metadata lists packages in apk, Homebrew, Debian, MacPorts, Nix, pacman, Scoop, Ubuntu, and zypper.

Its adoption history is tied to developers who care about exact incremental builds, generated dependency graphs, and avoiding unnecessary work. The official manual's examples and comparisons position tup in the same conversation as Make-like tools, but with a stronger focus on automatic dependency knowledge and fast no-op updates.

### How it is used

In day-to-day use, a developer initializes a tup hierarchy with `.tup` or a root `Tupfile.ini`, writes `Tupfile` rules, and runs `tup` to bring outputs up to date. The manual notes that `tup` can be run from anywhere in the hierarchy and will update requested outputs or the whole project.

For package-manager users, tup is a compact CLI that installs beside compilers and editors. It is often evaluated by people who are already dissatisfied with Makefile dependency drift or build-system scans, and who are comfortable adopting a declarative graph-oriented build workflow.

### Why package nerds care

tup matters in the package-nerd niche because it is a long-lived, packaged build-system experiment with a clear thesis: rebuild correctness and speed should come from the updater knowing the file graph, not from every project hand-maintaining perfect dependency lists.

It is also a useful package-index signal for build-tool archaeology. Seeing tup in Homebrew, Linux distributions, Nix, Scoop, and other managers marks it as a tool that remained interesting enough for cross-platform packagers even without becoming the dominant build system.

### Timeline

- 2011: Official GitHub repository created.
- 2011: Early v0.1 tag recorded in the official GitHub tag list.
- 2024: Official manual page updated date shows continued maintenance of command documentation.
- 2026: GitHub repository metadata shows recent activity and continued public maintenance.

### Related projects

- Make
- Ninja
- CMake
- SCons
- redo
- Lua

### Sources

- GitHub API for gittup/tup: repository created 2011-05-01, active metadata, and official tag list.
- <https://github.com/gittup/tup README: file-based build system, Linux/macOS/Windows support, changed files plus DAG model.>
- <https://gittup.org/tup homepage: project positioning and documentation sections.>
- <https://gittup.org/tup manual: `tup`, `tup init`, `.tup`, `Tupfile.ini`, Tupfiles, secondary commands, and 2024-05-19 manual update date.>
- source_facts.package-manager: apk, Homebrew, Debian, MacPorts, Nix, pacman, Scoop, Ubuntu, and zypper package-manager presence.


## Security Notes

generalized runtime or code generation signal.

- **Geiger risk:** yellow / medium
- generalized runtime or code generation signal


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: Tupfile, Tupfile.ini, .tup/
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** tup
- **Version Scheme:** 0
- **Revision:** 1
- **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 - tup - 0.8-1+b1: normalized package name match | Debian stable package indexes: tup from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | fast build system | https://gittup.org/tup
- Nix - tup: normalized package name match | nixpkgs package indexes: pkgs/by-name/tu/tup/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - tup - 0.7.11-4: normalized package name match | Ubuntu 24.04 LTS package indexes: tup from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | fast build system | http://gittup.org/tup
- apk - tup - 0.7.11-r1: normalized package name match | Alpine Linux edge package indexes: tup from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | A file-based build system | http://gittup.org/tup
- apk - tup-doc - 0.7.11-r1: normalized package name match | Alpine Linux edge package indexes: tup-doc from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | A file-based build system (documentation) | http://gittup.org/tup
- apk - tup-vim - 0.7.11-r1: normalized package name match | Alpine Linux edge package indexes: tup-vim from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | tup (vim syntax) | http://gittup.org/tup
- pacman - tup - 0.8-3: normalized package name match | Arch Linux sync databases: tup from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | A fast, file-based build system | http://gittup.org/tup/index.html
- zypper - tup - 0.8-1.9: normalized package name match | openSUSE Tumbleweed package metadata: tup from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | File-based build system | http://gittup.org/tup/
- zypper - tup-doc - 0.8-1.9: normalized package name match | openSUSE Tumbleweed package metadata: tup-doc from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Documentation for tup | http://gittup.org/tup/
- MacPorts - tup: normalized package name match | MacPorts ports tree: devel/tup/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Scoop - main/tup: normalized package name match | Scoop official bucket manifest trees: bucket/tup.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1


## Related links

- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [libfuse](https://www.automicvault.com/pkg/brew/libfuse/) - Runtime dependency declared by Homebrew.
- [pkgconf](https://www.automicvault.com/pkg/brew/pkgconf/) - Build dependency declared by Homebrew.
- [tundra](https://www.automicvault.com/pkg/brew/tundra/) - Shares av.db curated category or tags: build-system, cli, developer-tools, incremental-builds.
- [bsdmake](https://www.automicvault.com/pkg/brew/bsdmake/) - Shares av.db curated category or tags: build-system, cli, developer-tools.
- [cabin](https://www.automicvault.com/pkg/brew/cabin/) - Shares av.db curated category or tags: build-system, cli, developer-tools.
- [dune](https://www.automicvault.com/pkg/brew/dune/) - Shares av.db curated category or tags: build-system, cli, developer-tools.
- [fastbuild](https://www.automicvault.com/pkg/brew/fastbuild/) - Shares av.db curated category or tags: build-system, cli, developer-tools.
- [goredo](https://www.automicvault.com/pkg/brew/goredo/) - Shares av.db curated category or tags: build-system, cli, developer-tools.
- [litani](https://www.automicvault.com/pkg/brew/litani/) - Shares av.db curated category or tags: build-system, cli, developer-tools.
- [mk-configure](https://www.automicvault.com/pkg/brew/mk-configure/) - Shares av.db curated category or tags: build-system, cli, developer-tools.
- [premake](https://www.automicvault.com/pkg/brew/premake/) - Local metadata places this package in an adjacent workflow. Shared terms: based, build, build-system, cli, developer.

## Combined YAML source

View the package source record on GitHub. [combined/tup.yml](https://github.com/automic-vault/db/blob/main/combined/tup.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
