Fix old descriptions of Stow (#22)
De-emphasise the package management aspects, since these days almost everyone prefers to use modern package managers such as rpm / dpkg / Nix for (system-wide) package management. Also include more popular modern use cases for Stow such as management of dotfiles and software compiled in the user's $HOME directory. Fixes #22: https://github.com/aspiers/stow/issues/22
This commit is contained in:
parent
a70c60e888
commit
72ef83cebd
4 changed files with 112 additions and 62 deletions
|
@ -15,8 +15,7 @@
|
|||
|
||||
@copying
|
||||
This manual describes GNU Stow version @value{VERSION}
|
||||
(@value{UPDATED}), a program for managing the installation of software
|
||||
packages.
|
||||
(@value{UPDATED}), a program for managing farms of symbolic links.
|
||||
|
||||
Software and documentation is copyrighted by the following:
|
||||
|
||||
|
@ -82,10 +81,9 @@ approved by the Free Software Foundation.
|
|||
|
||||
@ifinfo
|
||||
This manual describes GNU Stow @value{VERSION} (@value{UPDATED}), a
|
||||
program for managing sets of symbolic links, in order to make groups
|
||||
of related files (such as distinct packages of software, or
|
||||
configuration files) in one place in the filesystem appear to be
|
||||
located in another place.
|
||||
symlink farm manager which takes distinct sets of software and/or data
|
||||
located in separate directories on the filesystem, and makes them
|
||||
appear to be installed in a single directory tree.
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
|
@ -131,19 +129,20 @@ Advice on changing compilation and installation parameters
|
|||
@node Introduction, Terminology, Top, Top
|
||||
@chapter Introduction
|
||||
|
||||
Stow is a tool for managing sets of symbolic links in order to
|
||||
facilitate the installation of multiple software packages, or other
|
||||
groups of related files, such as configuration files, into a single
|
||||
GNU Stow is a symlink farm manager which takes distinct sets of
|
||||
software and/or data located in separate directories on the
|
||||
filesystem, and makes them all appear to be installed in a single
|
||||
directory tree.
|
||||
|
||||
Originally Stow was born to address the need to administer, upgrade,
|
||||
install, and remove files in independent software packages without
|
||||
confusing them with other files sharing the same file system space.
|
||||
For instance, it used to be common to compile Perl and Emacs from
|
||||
source and install them in @file{/usr/local}. When one does so, one
|
||||
winds up with the following files@footnote{As of Perl 4.036 and Emacs
|
||||
19.22. These are now ancient releases but the example still holds
|
||||
valid.} in @file{/usr/local/man/man1}:
|
||||
For instance, many years ago it used to be common to compile programs
|
||||
such as Perl and Emacs from source and install them in
|
||||
@file{/usr/local}. When one does so, one winds up with the following
|
||||
files@footnote{As of Perl 4.036 and Emacs 19.22. These are now
|
||||
ancient releases but the example still holds valid.} in
|
||||
@file{/usr/local/man/man1}:
|
||||
|
||||
@example
|
||||
a2p.1
|
||||
|
@ -171,11 +170,20 @@ tree; i.e. (in the typical case) there should be a @file{bin} directory
|
|||
containing executables, a @file{man/man1} directory containing section 1
|
||||
man pages, and so on.
|
||||
|
||||
In more recent times, software packages are often managed by more
|
||||
sophisticated package management software such as
|
||||
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
|
||||
@uref{https://en.wikipedia.org/wiki/Rpm_(software), @command{rpm}},
|
||||
@uref{https://en.wikipedia.org/wiki/Dpkg, @command{dpkg}}, and
|
||||
@uref{https://en.wikipedia.org/wiki/Nix_package_manager, Nix}.
|
||||
@uref{https://en.wikipedia.org/wiki/Nix_package_manager, Nix} /
|
||||
@uref{https://en.wikipedia.org/wiki/GNU_Guix, GNU Guix}, or
|
||||
language-native package managers such as
|
||||
@uref{https://en.wikipedia.org/wiki/RubyGems, Ruby's @command{gem}},
|
||||
@uref{https://en.wikipedia.org/wiki/Pip_(package_manager), Python's
|
||||
@command{pip}}, @uref{https://en.wikipedia.org/wiki/Npm_(software),
|
||||
Javascript's @command{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
|
||||
|
@ -184,13 +192,16 @@ especially when coupled with version control
|
|||
systems@footnote{@uref{http://lists.gnu.org/archive/html/info-stow/2011-12/msg00000.html}}.
|
||||
|
||||
Stow was inspired by Carnegie Mellon's Depot program, but is
|
||||
substantially simpler and safer. Whereas Depot required database files
|
||||
to keep things in sync, Stow stores no extra state between runs, so
|
||||
there's no danger (as there was in Depot) of mangling directories when
|
||||
file hierarchies don't match the database. Also unlike Depot, Stow will
|
||||
never delete any files, directories, or links that appear in a Stow
|
||||
directory (e.g., @file{/usr/local/stow/emacs}), so it's always possible
|
||||
to rebuild the target tree (e.g., @file{/usr/local}).
|
||||
substantially simpler and safer. Whereas Depot required database
|
||||
files to keep things in sync, Stow stores no extra state between runs,
|
||||
so there's no danger (as there was in Depot) of mangling directories
|
||||
when file hierarchies don't match the database. Also unlike Depot,
|
||||
Stow will never delete any files, directories, or links that appear in
|
||||
a Stow directory (e.g., @file{/usr/local/stow/emacs}), so it's always
|
||||
possible to rebuild the target tree (e.g., @file{/usr/local}).
|
||||
|
||||
Stow is implemented as a combination of a Perl script providing a CLI
|
||||
interface, and a backend Perl module which does most of the work.
|
||||
|
||||
For information about the latest version of Stow, you can refer to
|
||||
@uref{http://www.gnu.org/software/stow/}.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue