regexps.com
In order to use arch
, there are some software tools that you must
already have available. These don't necessarily need to be on your
PATH
-- arch
can use a separate PATH
if you need it to.
GNU Make You will need GNU Make
in order to build arch
.
GNU Tar You must have GNU tar
. More specifically, you must have
a version of tar that has options:
-zcf F to create a gzip-compressed tar file called F, where F may be `-', meaning to write the tar file to the standard-output stream
-zxf F to extract files from a gzip-compressed tar file called F, where F may be `-', meaning to read the tar file from the standard-input stream.
-T - This option reads a list of files from standard input. Only those files are read or written to the archive -- others are ignored.
-m When extracting files, don't restore modification times.
GNU diff and GNU patch After much deliberation, I've decided to go
ahead and rely on the GNU versions of diff
and patch
.
Specifically, you need a version of diff
that can generate "unified
format" output (option -u
) and a version of patch
that
understands that format and that understand --posix
. (It would be
trivial to use "context diffs" and, thus, standard diff
and
patch
, however, unified diffs are much easier to read, and I'm
hoping that picking specific implementations of these critical
sub-components will help contribute to the long-term stability of
arch
.)
Standard Posix Shell Tools The package framework assumes that some
standard Posix shell tools are available on your system. At the
moment, sh
must be installed as /bin/sh
, but this will be
corrected in a future release:
awk cat chmod date echo find fold grep head ls mkdir printf pwd rm sed sh tee test touch tsort wc xargs
ordinary -exec extension to find Your version of find
must be able to
expand {}
even in the context of a larger string. For example:
find . -exec echo ">>>{}<<<" ";"
should print a list of all files and directories, surrounded by '>>>'
and '<<<'. GNU find
has this property as do, I believe, most
implementations. (Posix explicitly requires only that {}
be
expanded in isolation, leaving undefined the meaning of {}
when
embedded in a longer string.)
The null Device Your system must have /dev/null
. Output directed
to /dev/null
should simply disappear from the universe, in the usual
way.
The BSD column program -- maybe If the program column
is on your
PATH
(or the path being used by arch
), it should be a program
which formats its input into columns and, with the option -x
, fills
columns before rows. If this program isn't found, it won't be used.
regexps.com