The Hackerlab at `regexps.com`

## System Requirements

up: arch Meets hello-world next: arch Commands in General prev: Introducing arch

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

### 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.

### 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

and

            % ./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` .)

arch Meets hello-world: A Tutorial Introduction to The arch Revision Control System
The Hackerlab at `regexps.com`