GNU Stow is a symlink farm manager which takes distinct packages of software and/or data located in separate directories on the filesystem, and makes them appear to be installed in the same place. For example,
/usr/local/bincould contain symlinks to files within
/usr/local/stow/perl/binetc., and likewise recursively for any other subdirectories such as
.../man, and so on.
This is particularly useful for keeping track of system-wide and per-user installations of software built from source, but can also facilitate a more controlled approach to management of configuration files in the user’s home directory, especially when coupled with version control systems.
GNU Stow was very useful in a time when package managers were much more difficult, and seems to have pivoted to dotfile management.
From GNU Stow manual - GNU Project - Free Software Foundation, the introduction:
While this is useful for keeping track of system-wide and per-user installations of software built from source, in more recent times software packages are often managed by more sophisticated package management software such as
dpkg, and Nix / GNU Guix, or language-native package managers such as Ruby’s
npm, and so on.
However Stow is still used not only for software package management, but also for other purposes, such as facilitating a more controlled approach to management of configuration files in the user’s home directory2, especially when coupled with version control systems3.
It is very nifty and I use it to sync dotfiles/configuration between computers.