1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
|
<html>
<head>
<title>System Requirements</title>
</head>
<body>
<a name="System_Requirements"></a>
<a href="http://www.regexps.com">The Hackerlab at <code>regexps.com</code></a>
<h2 align=center>System Requirements</h2>
<small>
<b>up: </b><a href="arch.html#arch">arch</a></br>
<b>prev: </b><a href="introduction.html#Introducing_arch">Introducing arch</a></br>
</small>
<br>
<p>In order to use <code>arch</code>
, there are some software tools that you must
already have available. These don't necessarily need to be on your
<code>PATH</code>
-- <code>arch</code>
can use a separate <code>PATH</code>
if you need it to.
</p><p><strong><u>GNU Make</u></strong> You will need <code>GNU Make</code>
in order to build <code>arch</code>
.
</p><p><strong><u>GNU Tar</u></strong> You must have <code>GNU tar</code>
. More specificially, you must have
a version of tar that has options:
</p><pre>
-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
</pre>
<pre>
-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.
</pre>
<pre>
-T - This option reads a list of files from
standard input. Only those files are
read or written to the archive -- others
are ignored.
</pre>
<pre>
-m When extracting files, don't restore
modification times.
</pre>
<p><strong><u>GNU diff and GNU patch</u></strong> After much deliberation, I've decided to go
ahead and rely on the <strong>GNU</strong> versions of <code>diff</code>
and <code>patch</code>
.
Specifically, you need a version of <code>diff</code>
that can generate "unified
format" output (option <code>-u</code>
) and a version of <code>patch</code>
that
understands that format and that understand <code>--posix</code>
. (It would be
trivial to use "context diffs" and, thus, standard <code>diff</code>
and
<code>patch</code>
, 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
<code>arch</code>
.)
</p><p><strong><u>Standard Posix Shell Tools</u></strong> The package framework assumes that some
standard Posix shell tools are available on your system. At the
moment, <code>sh</code>
must be installed as <code>/bin/sh</code>
, but this will be
corrected in a future release:
</p><pre>
awk
cat
chmod
date
echo
find
fold
grep
head
ls
mkdir
printf
pwd
rm
sed
sh
tee
test
touch
tsort
wc
xargs
</pre>
<p><strong><u>ordinary -exec extension to find</u></strong> Your version of <code>find</code>
must be able to
expand <code>{}</code>
even in the context of a larger string. For example:
</p><pre>
find . -exec echo ">>>{}<<<" ";"
</pre>
<p>should print a list of all files and directories, surrounded by '>>>'
and '<<<'. <code>GNU find</code>
has this property as do, I believe, most
implementations. (Posix explicitly requires only that <code>{}</code>
be
expanded in isolation, leaving undefined the meaning of <code>{}</code>
when
embedded in a longer string.)
</p><p><strong><u>The null Device</u></strong> Your system must have <code>/dev/null</code>
. Output directed
to <code>/dev/null</code>
should simply disappear from the universe, in the usual
way.
</p><p><strong><u>The BSD column program -- maybe</u></strong> If the program <code>column</code>
is on your
<code>PATH</code>
(or the path being used by <code>arch</code>
), it should be a program
which formats its input into columns and, with the option <code>-x</code>
, fills
columns before rows. If this program isn't found, it won't be used.
</p>
<small><i>arch: The arch Revision Control System
</i></small><br>
<a href="http://www.regexps.com">The Hackerlab at <code>regexps.com</code></a>
</body>
|