# 使用 Homebrew, apk, apt, MacPorts, Nix, pacman, zypper, scoop 安装 tup

查看 tup 的安装路径、可执行文件、元数据以及面向 AI 代理工作流的安全说明。

## 安装

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

其他安装命令:

### macOS

- Homebrew (100%):

```sh
brew install tup
```

  证据: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install tup
```

  证据: 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
```

  证据: 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
```

  证据: 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
```

  证据: 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
```

  证据: 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
```

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

### Windows

- Scoop (92%):

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

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

## 软件包事实

- **软件包键:** brew:tup
- **软件包管理器:** Homebrew
- **版本:** 0.8
- **来源摘要:** File-based build system
- **主页:** <https://gittup.org/tup/>
- **仓库:** <https://github.com/gittup/tup>
- **已生成:** 2026-08-03T19:37:03+00:00

## 可执行文件

- tup (别名)

## 安装行为

- Bottle: 不可用

## 版本和新鲜度

- 页面生成时间: 2026-08-03
- 管理器版本: 0.8
## 项目历史与用法

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.

### 项目历史

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.

### 采用历史

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.

### 使用方式

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.

### 为什么软件包爱好者会关心

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.

### 时间线

- 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

### 来源

- 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.


## 安全说明

generalized runtime or code generation signal.

- **Geiger 风险:** yellow / 中
- 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/
## 其他软件包管理器记录

- 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-4: 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.11: normalized package name match | openSUSE Tumbleweed package metadata: tup from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | File-based build system | http://gittup.org/tup/
- zypper - tup-doc - 0.8-1.11: normalized package name match | openSUSE Tumbleweed package metadata: tup-doc from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-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


## Combined YAML source

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


## 来源

- pkg.so package database
- Geiger risk classifier
- curated configuration and credential file locations
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
