# Install lndir with Homebrew, dnf, MacPorts, Nix, zypper

Create a shadow directory of symbolic links to another directory tree. Version 1.0.5 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:lndir
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install lndir
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install lndir
```

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

### Linux

- dnf (92%):

```sh
sudo dnf install imake
```

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

- Nix (92%):

```sh
nix profile install nixpkgs#lndir
```

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

- zypper (92%):

```sh
sudo zypper install lndir
```

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

## Package facts

- **Package key:** brew:lndir
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/lndir>
- **Version:** 1.0.5
- **Source summary:** Create a shadow directory of symbolic links to another directory tree
- **Homepage:** <https://gitlab.freedesktop.org/xorg/util/lndir>
- **Repository:** <https://gitlab.freedesktop.org/xorg/util/lndir>
- **Upstream docs:** <https://gitlab.freedesktop.org/xorg/util/lndir>
- **License:** MIT-open-group
- **Source archive:** <https://www.x.org/releases/individual/util/lndir-1.0.5.tar.xz>
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- lndir (cli)
- lndir (alias)

## Build dependencies

- pkgconf
- xorgproto

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, monterey, sonoma, ventura, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.0.5
- Local data: ok
- Upstream repository: https://gitlab.freedesktop.org/xorg/util/lndir
- info: No package-manager update timestamp was available.
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

lndir is an X.Org utility that creates a shadow directory tree made of symbolic links to another source tree. It is a small build-support tool from the X11/X.Org world, historically useful when building the same source checkout for multiple machines or configurations.

### Project history

The official manual describes lndir as a program that makes a shadow copy of a directory tree, where files are symbolic links back to the original source tree. X.Org build documentation for X11R6.8 recommended this shadow-tree workflow to keep source directories unmodified and support builds for different operating systems or architectures.

In the modular X.Org tree, lndir lives under util/lndir. X.Org's module guidelines describe the util module as a home for modular-tree build tools and legacy build tools from the monolithic tree, with lndir listed alongside utilities such as imake, gccmakedep, and makedepend.

### Adoption history

lndir's adoption is mostly historical and specialist: it mattered to X11 and X.Org builders, distro maintainers, and developers who wanted out-of-tree builds before modern build systems made that workflow routine. Its standalone packaging in Homebrew and other systems preserves that utility without requiring the larger imake package.

The X.Org release directory shows lndir split out as an individual util tarball beginning in the modular release era, with releases from 1.0.1 in 2006 through 1.0.5 in 2024. The freedesktop cgit mirror shows the active upstream mirror and recent maintenance commits.

### How it is used

A user creates an empty build directory and runs lndir against the source tree. The result is a parallel directory tree where source files are links and generated objects can live separately. Re-running lndir adds new links and checks existing ones, but deleted source files can leave stale symlinks that may need cleanlinks or a fresh shadow tree.

The tool has no project-level configuration or credentials. Its behavior is driven by command-line options such as -silent, -ignorelinks, and -withrevinfo.

### Why package nerds care

lndir is interesting precisely because it is small and archaic in a useful way. It is a fossil from the X11 build culture that still does one filesystem job cleanly, and package managers keep it available for scripts and users that remember the shadow-directory workflow.

For package nerds, lndir also illustrates the X.Org modularization story: pieces that once lived inside a monolithic source tree became tiny independently released tarballs with their own version streams.

### Timeline

- X11R6 era: lndir is documented as part of X source-tree build workflows.
- 2004: X11R6.8 documentation recommends lndir-based shadow build trees.
- 2006: X.Org publishes lndir 1.0.1 as an individual util release.
- 2024: X.Org publishes lndir 1.0.5.
- 2025: freedesktop cgit mirror shows recent maintenance commits for options and manual-page edits.

### Related projects

- X.Org util modules such as imake, makedepend, gccmakedep, and util-macros belong to the same historical build-tool family.
- cleanlinks is commonly mentioned with lndir because it removes stale symbolic links in shadow trees.
- Modern out-of-tree build systems such as CMake and Meson solve related build-directory separation problems without symlink forests.

### Sources

- <https://cgit.freedesktop.org/xorg/util/lndir>
- <https://gitlab.freedesktop.org/xorg/util/lndir>
- <https://www.x.org/NewModuleGuidelines/>
- <https://www.x.org/releases/individual/util/>
- <https://xorg.freedesktop.org/archive/X11R6.7.0/doc/lndir.1.html>
- <https://xorg.freedesktop.org/archive/X11R6.8.0/doc/BUILD3.html>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

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

## Other Package-Manager Records

- Nix - lndir: normalized package name match | nixpkgs package indexes: pkgs/by-name/ln/lndir/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- dnf - imake - 1.0.10-6.fc44: normalized package name match | Fedora Rawhide package metadata: imake from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | imake source code configuration and build system | http://www.x.org
- zypper - lndir - 1.0.5-1.6: normalized package name match | openSUSE Tumbleweed package metadata: lndir from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Utility to create a shadow directory of symbolic links to another directory tree | https://xorg.freedesktop.org/
- MacPorts - lndir: normalized package name match | MacPorts ports tree: x11/lndir/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Related links

- [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.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [pkgconf](https://www.automicvault.com/pkg/brew/pkgconf/) - Build dependency declared by Homebrew.
- [broot](https://www.automicvault.com/pkg/brew/broot/) - Shares av.db curated category or tags: cli, developer-tools, filesystem.
- [nfd2nfc](https://www.automicvault.com/pkg/brew/nfd2nfc/) - Shares av.db curated category or tags: cli, developer-tools, filesystem.
- [physfs](https://www.automicvault.com/pkg/brew/physfs/) - Shares av.db curated category or tags: cli, developer-tools, filesystem.
- [colormake](https://www.automicvault.com/pkg/brew/colormake/) - Shares av.db curated category or tags: build-tools, cli, developer-tools.
- [compiledb](https://www.automicvault.com/pkg/brew/compiledb/) - Shares av.db curated category or tags: build-tools, cli, developer-tools.
- [crosstool-ng](https://www.automicvault.com/pkg/brew/crosstool-ng/) - Shares av.db curated category or tags: build-tools, cli, developer-tools.
- [dotbot](https://www.automicvault.com/pkg/brew/dotbot/) - Shares av.db curated category or tags: cli, developer-tools, symlinks.
- [fclones](https://www.automicvault.com/pkg/brew/fclones/) - Shares av.db curated category or tags: cli, developer-tools, filesystem.
- [imake](https://www.automicvault.com/pkg/brew/imake/) - Local metadata places this package in an adjacent workflow. Shared terms: build, build-tools, cli, developer, developer-tools.
- [makedepend](https://www.automicvault.com/pkg/brew/makedepend/) - Local metadata places this package in an adjacent workflow. Shared terms: build, cli, developer, developer-tools, xorg.

## Combined YAML source

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


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- 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
