The Hackerlab at regexps.com

System Requirements

up: arch
prev: Introducing arch

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 specificially, 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.

arch: The arch Revision Control System
The Hackerlab at regexps.com