File: system-requirements.html

package info (click to toggle)
arch 1.0pre15-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 20,180 kB
  • ctags: 4,560
  • sloc: ansic: 64,410; sh: 29,168; lisp: 1,896; awk: 1,044; makefile: 484; sed: 26
file content (161 lines) | stat: -rw-r--r-- 4,406 bytes parent folder | download
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 &quot;unified
format&quot; 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 &quot;context diffs&quot; 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 &quot;>>>{}&lt;&lt;&lt;&quot; &quot;;&quot;

</pre>
<p>should print a list of all files and directories, surrounded by '>>>'
and '&lt;&lt;&lt;'.  <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>