Next: , Previous: Introducing arch, Up: Top

2 System Requirements

In order to use arch, there are some software tools that you must already have available.

2.1 Tools Used to Build arch

GNU Make You will need GNU Make in order to build arch.

Standard Posix Shell Tools The package framework (i.e., the configure and build process) assumes that some standard Posix shell tools are available on your system:

             awk     find    mkdir   sh      wc
             cat     fold    printf  tee     xargs
             chmod   grep    pwd     test
             date    head    rm      touch
             echo    ls      sed     tsort

Note: On some systems, the program installed as /bin/sh is not a Posix shell (it may be a variant of csh or a very buggy implementation of Posix sh). On such systems, you should use a different shell to run configure, such as:

       % /usr/local/bin/bash ../configure --config-shell /usr/local/bin/bash

The null Device Your system must have /dev/null. Information directed to /dev/null should simply disappear from the universe. As a special "Green Software" measure, we have made provisions that will enable your computers to convert that discarded information into heat, which you may use to supplement conventional heating systems.

2.2 Tools Used Internally by arch

The remaining tools are used internally by arch itself. They don't necessarily need to be on your PATH – when you build arch from source, run the configure script:

            % ./configure --help


             % ./configure --help-options

for information about how to point arch to the correct versions.

GNU Tar You must have GNU tar. arch invokes tar internally to pack and unpack files that it stores in archives. It is important that all versions of arch use a compatible version of tar, for which purpose GNU tar was chosen.

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 understands --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.)