/[gentoo]/xml/htdocs/doc/en/distcc.xml
Gentoo

Diff of /xml/htdocs/doc/en/distcc.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.24 Revision 1.25
1<?xml version='1.0' encoding="UTF-8"?> 1<?xml version='1.0' encoding="UTF-8"?>
2<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> 2<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
3<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/distcc.xml,v 1.24 2004/12/22 22:43:45 swift Exp $ --> 3<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/distcc.xml,v 1.25 2005/01/16 16:23:30 swift Exp $ -->
4 4
5<guide link="/doc/en/distcc.xml"> 5<guide link="/doc/en/distcc.xml">
6 6
7<title>Gentoo Distcc Documentation</title> 7<title>Gentoo Distcc Documentation</title>
8 8
37<!-- The content of this document is licensed under the CC-BY-SA license --> 37<!-- The content of this document is licensed under the CC-BY-SA license -->
38<!-- See http://creativecommons.org/licenses/by-sa/1.0 --> 38<!-- See http://creativecommons.org/licenses/by-sa/1.0 -->
39<license/> 39<license/>
40 40
41<version>1.10</version> 41<version>1.10</version>
42<date>December 22, 2004</date> 42<date>2005-01-16</date>
43 43
44<chapter> 44<chapter>
45<title>Introduction</title> 45<title>Introduction</title>
46<section> 46<section>
47<title>What is distcc?</title> 47<title>What is distcc?</title>
48<body> 48<body>
49 49
50<p> 50<p>
51Distcc is a program designed to distribute compiling tasks across a network to 51Distcc is a program designed to distribute compiling tasks across a network to
52participating hosts. It is comprised of a server, <c>distccd</c> and a client 52participating hosts. It is comprised of a server, <c>distccd</c>, and a client
53program, <c>distcc</c>. Distcc can work transparently with <uri 53program, <c>distcc</c>. Distcc can work transparently with <uri
54link="http://ccache.samba.org">ccache</uri> and Portage with a little work. 54link="http://ccache.samba.org">ccache</uri> and Portage with a little work.
55</p> 55</p>
56 56
57</body> 57</body>
60<title>Using distcc to bootstrap</title> 60<title>Using distcc to bootstrap</title>
61<body> 61<body>
62 62
63<p> 63<p>
64If you are planning on using distcc to help you bootstrap a Gentoo installation, 64If you are planning on using distcc to help you bootstrap a Gentoo installation,
65make sure you read the part on <uri link="#bootstrapping">Using distcc to 65make sure you read the section <uri link="#bootstrapping">Using distcc to
66Bootstrap</uri> which is situated further down in this document. 66Bootstrap</uri>, which is situated further down in this document.
67</p> 67</p>
68 68
69</body> 69</body>
70</section> 70</section>
71</chapter> 71</chapter>
75<section> 75<section>
76<title>Dependencies</title> 76<title>Dependencies</title>
77<body> 77<body>
78 78
79<p> 79<p>
80To start off with, to use Distcc all of the computers on your network need to 80In order to use Distcc, all of the computers on your network need to
81have the same GCC versions. Mixing 3.3.x (where the x varies) is okay, but 81have the same GCC versions. Mixing 3.3.x (where the x varies) is okay, but
82mixing 3.3.x and 3.2.x is not: your programs <b>will</b> have errors in it. 82mixing 3.3.x and 3.2.x <b>will</b> result in your programs having errors in them.
83</p> 83</p>
84 84
85</body> 85</body>
86</section> 86</section>
87<section> 87<section>
88<title>Installing Distcc</title> 88<title>Installing Distcc</title>
89<body> 89<body>
90 90
91<p> 91<p>
92There are a couple of options you should know about before you start 92There are a couple of options you should be aware of before you start
93installing distcc. 93installing distcc.
94</p> 94</p>
95 95
96<p> 96<p>
97Distcc ships with a graphical monitor to monitor tasks that your computer is 97Distcc ships with a graphical monitor to monitor tasks that your computer is
109<section> 109<section>
110<title>Setting up Portage to use Distcc</title> 110<title>Setting up Portage to use Distcc</title>
111<body> 111<body>
112 112
113<p> 113<p>
114Setting up distcc is easy to do with Portage. Execute the following steps on 114Setting up Portage to use distcc is easy. Execute the following steps on
115each system that should participate in the distributed compiling: 115each system that should participate in the distributed compiling:
116</p> 116</p>
117 117
118<pre caption="Integrating Distcc and Portage"> 118<pre caption="Integrating Distcc and Portage">
119# <i>emerge distcc</i> 119# <i>emerge distcc</i>
123MAKEOPTS="-jN" 123MAKEOPTS="-jN"
124<comment>(Add distcc to your FEATURES variable)</comment> 124<comment>(Add distcc to your FEATURES variable)</comment>
125FEATURES="distcc" 125FEATURES="distcc"
126</pre> 126</pre>
127 127
128</body>
129</section>
130<section>
131<title>Specifying Participating Hosts</title>
132<body>
133
128<p> 134<p>
129Next you have to specify what hosts you want to use. Use the
130<c>distcc-config</c> command to set the list of hosts. Here is an example of 135Use the <c>distcc-config</c> command to set the list of hosts. Here is an example of
131some hosts that might be in your list: 136some hosts that might be in your list:
132</p> 137</p>
133 138
134<pre caption="Examples of host definitions"> 139<pre caption="Examples of host definitions">
135192.168.0.1 192.168.0.2 192.168.0.3 140192.168.0.1 192.168.0.2 192.168.0.3
167# <i>/usr/bin/distcc-config --set-hosts "192.168.0.1 192.168.0.2 192.168.0.3"</i> 172# <i>/usr/bin/distcc-config --set-hosts "192.168.0.1 192.168.0.2 192.168.0.3"</i>
168</pre> 173</pre>
169 174
170<p> 175<p>
171Edit <path>/etc/conf.d/distccd</path> to your needs and be sure to set the 176Edit <path>/etc/conf.d/distccd</path> to your needs and be sure to set the
172<c>--allow</c> directive to allow only hosts you trust. For more information 177<c>--allow</c> directive to allow only hosts you trust. For added security, you should also use the <c>--listen</c>
173please see the <uri link="http://distcc.samba.org/security.html">Distcc Security
174Design</uri>. For added security you should also use the <c>--listen</c>
175directive to tell the Distcc daemon what IP to listen on (for multi-homed 178directive to tell the distcc daemon what IP to listen on (for multi-homed
176systems). 179systems). More information on distcc security can be found at <uri link="http://distcc.samba.org/security.html">Distcc Security
180Design</uri>.
177</p> 181</p>
178 182
179<p> 183<p>
180Now start the distcc daemon on all the participating computers: 184Now start the distcc daemon on all the participating computers:
181</p> 185</p>
192<section> 196<section>
193<title>Setting up Distcc to Work With Automake</title> 197<title>Setting up Distcc to Work With Automake</title>
194<body> 198<body>
195 199
196<p> 200<p>
197This is in some cases easier than the Portage setup. What you have to do is 201This is, in some cases, easier than the Portage setup. What you have to do is
198update your <c>PATH</c> variable to include <path>/usr/lib/distcc/bin</path> 202update your <c>PATH</c> variable to include <path>/usr/lib/distcc/bin</path>
199in front of the directory that contains <c>gcc</c> (<path>/usr/bin</path>). 203in front of the directory that contains <c>gcc</c> (<path>/usr/bin</path>).
200However, there is a caveat. If you use ccache you have to put distcc after 204However, there is a caveat. If you use ccache you have to put distcc after
201the ccache part: 205the ccache part:
202</p> 206</p>
231</p> 235</p>
232 236
233</body> 237</body>
234</section> 238</section>
235<section> 239<section>
236<title>An Introduction to Cross-compiling</title> 240<title>An Introduction to Cross-Compiling</title>
237<body> 241<body>
238 242
239<p> 243<p>
240If you want to give Cross-compiling a try you can to follow <uri 244If you want to give cross-compiling a try you can to follow <uri
241link="http://dev.gentoo.org/~vapier/CROSS-COMPILE-HOWTO">The Cross Compile 245link="http://dev.gentoo.org/~vapier/CROSS-COMPILE-HOWTO">The Cross Compile
242HOWTO</uri>; Crossdev is depreciated. 246HOWTO</uri>; Crossdev is deprecated.
243</p> 247</p>
244 248
245</body> 249</body>
246</section> 250</section>
247</chapter> 251</chapter>
314# <i>/usr/bin/distcc-config --set-hosts "localhost host1 host2 host3 ..."</i> 318# <i>/usr/bin/distcc-config --set-hosts "localhost host1 host2 host3 ..."</i>
315<comment>An example: <i>/usr/bin/distcc-config --set-hosts "localhost 192.168.0.4 192.168.0.6"</i></comment> 319<comment>An example: <i>/usr/bin/distcc-config --set-hosts "localhost 192.168.0.4 192.168.0.6"</i></comment>
316</pre> 320</pre>
317 321
318<p> 322<p>
319distcc is now set up to bootstrap! Continue the official installation 323Distcc is now set up to bootstrap! Continue with the official installation
320instructions and <e>do not forget</e> to re-emerge distcc after <c>emerge 324instructions and <e>do not forget</e> to re-emerge distcc after <c>emerge
321system</c>. This is to make sure that all of the dependencies you want are 325system</c>. This is to make sure that all of the dependencies you want are
322installed as well. 326installed as well.
323</p> 327</p>
324 328
325<note> 329<note>
326During bootstrap and <c>emerge system</c> Distcc may not appear to be used. 330During bootstrap and <c>emerge system</c> distcc may not appear to be used.
327This is expected as some ebuilds do not work well with distcc, so they 331This is expected as some ebuilds do not work well with distcc, so they
328intentionally disable it. 332intentionally disable it.
329</note> 333</note>
330 334
331</body> 335</body>

Legend:
Removed from v.1.24  
changed lines
  Added in v.1.25

  ViewVC Help
Powered by ViewVC 1.1.20