• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

automake/H28-Jul-2019-1,116697

bin/H28-Jul-2019-980647

doc/H03-May-2022-10,2949,197

lib/H28-Jul-2019-2,3751,397

t/H28-Jul-2019-3,4012,002

AUTHORSH A D27-Jun-20193.2 KiB7657

Build.PLH A D16-Jul-20193.3 KiB10351

COPYINGH A D27-Jun-201934.3 KiB675553

ChangeLogH A D28-Jul-201996.9 KiB3,5612,247

INSTALL.mdH A D27-Jun-20197.3 KiB203147

MANIFESTH A D27-Jun-2019761 5756

MANIFEST.SKIPH A D27-Jun-20191.4 KiB9061

META.jsonH A D28-Jul-20191.3 KiB6160

META.ymlH A D28-Jul-2019811 3534

Makefile.amH A D28-Jul-201910.4 KiB302161

Makefile.inH A D28-Jul-201957.1 KiB1,6561,401

NEWSH A D28-Jul-201919.5 KiB589376

README.mdH A D27-Jun-20194.4 KiB10280

THANKSH A D28-Jul-20191.5 KiB4844

TODOH A D27-Jun-20192.6 KiB7348

aclocal.m4H A D28-Jul-201926.4 KiB738664

configureH A D28-Jul-2019105.1 KiB3,6422,875

configure.acH A D16-Jul-20193.1 KiB114103

default-ignore-listH A D27-Jan-2014263 2316

README.md

1[![Build Status](https://travis-ci.org/aspiers/stow.svg)](https://travis-ci.org/aspiers/stow)
2[![Coverage Status](https://coveralls.io/repos/aspiers/stow/badge.svg?branch=master&service=github)](https://coveralls.io/github/aspiers/stow?branch=master)
3
4README for GNU Stow
5===================
6
7This README describes GNU Stow.  This is not the definitive
8documentation for Stow; for that, see the [info
9manual](https://www.gnu.org/software/stow/manual/).
10
11Stow is a symlink farm manager program which takes distinct sets
12of software and/or data located in separate directories on the
13filesystem, and makes them all appear to be installed in a single
14directory tree.
15
16Originally Stow was born to address the need to administer, upgrade,
17install, and remove files in independent software packages without
18confusing them with other files sharing the same file system space.
19For instance, many years ago it used to be common to compile programs
20such as Perl and Emacs from source and install them in `/usr/local`.
21By using Stow, `/usr/local/bin` could contain symlinks to files within
22`/usr/local/stow/emacs/bin`, `/usr/local/stow/perl/bin` etc., and
23likewise recursively for any other subdirectories such as `.../share`,
24`.../man`, and so on.
25
26While this is useful for keeping track of system-wide and per-user
27installations of software built from source, in more recent times
28software packages are often managed by more sophisticated package
29management software such as
30[`rpm`](https://en.wikipedia.org/wiki/Rpm_(software)),
31[`dpkg`](https://en.wikipedia.org/wiki/Dpkg), and
32[Nix](https://en.wikipedia.org/wiki/Nix_package_manager) / [GNU
33Guix](https://en.wikipedia.org/wiki/GNU_Guix), or language-native
34package managers such as Ruby's
35[`gem`](https://en.wikipedia.org/wiki/RubyGems), Python's
36[`pip`](https://en.wikipedia.org/wiki/Pip_(package_manager)),
37Javascript's [`npm`](https://en.wikipedia.org/wiki/Npm_(software)),
38and so on.
39
40However Stow is still used not only for software package management,
41but also for other purposes, such as facilitating [a more controlled
42approach to management of configuration files in the user's home
43directory](http://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html),
44especially when [coupled with version control
45systems](http://lists.gnu.org/archive/html/info-stow/2011-12/msg00000.html).
46
47Stow was inspired by Carnegie Mellon's Depot program, but is
48substantially simpler and safer.  Whereas Depot required database files
49to keep things in sync, Stow stores no extra state between runs, so
50there's no danger (as there was in Depot) of mangling directories when
51file hierarchies don't match the database.  Also unlike Depot, Stow will
52never delete any files, directories, or links that appear in a Stow
53directory (e.g., `/usr/local/stow/emacs`), so it's always possible
54to rebuild the target tree (e.g., `/usr/local`).
55
56Stow is implemented as a combination of a Perl script providing a CLI
57interface, and a backend Perl module which does most of the work.
58
59You can get the latest information about Stow from the home page:
60
61    http://www.gnu.org/software/stow/
62
63License
64-------
65
66Stow is free software, licensed under the GNU General Public License,
67which can be found in the file [`COPYING`](COPYING).
68
69Copying and distribution of this file, with or without modification,
70are permitted in any medium without royalty provided the copyright
71notice and this notice are preserved.  This file is offered as-is,
72without any warranty.
73
74Installation
75------------
76
77See [`INSTALL.md`](INSTALL.md) for installation instructions.
78
79Feedback
80--------
81
82Please do send comments, questions, and constructive criticism.  The
83mailing lists and any other communication channels are detailed on the
84above home page.
85
86Brief history and authorship
87----------------------------
88
89Stow was inspired by Carnegie Mellon's "Depot" program, but is
90substantially simpler.  Whereas Depot requires database files to keep
91things in sync, Stow stores no extra state between runs, so there's no
92danger (as there is in Depot) of mangling directories when file
93hierarchies don't match the database.  Also unlike Depot, Stow will
94never delete any files, directories, or links that appear in a Stow
95directory (e.g., `/usr/local/stow/emacs`), so it's always possible to
96rebuild the target tree (e.g., `/usr/local`).
97
98For a high-level overview of the contributions of the main developers
99over the years, see [the `AUTHORS` file](AUTHORS).
100
101For a more detailed history, please see the `ChangeLog` file.
102