/[gentoo]/xml/htdocs/doc/en/handbook/hb-working-features.xml
Gentoo

Contents of /xml/htdocs/doc/en/handbook/hb-working-features.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (hide annotations) (download) (as text)
Fri Nov 28 16:15:53 2003 UTC (10 years, 9 months ago) by swift
Branch: MAIN
Changes since 1.3: +54 -4 lines
File MIME type: application/xml
Add ccache documentation

1 swift 1.1 <!-- The content of this document is licensed under the CC-BY-SA license -->
2     <!-- See http://creativecommons.org/licenses/by-sa/1.0 -->
3    
4 swift 1.4 <!-- $Header: /home/cvsroot/gentoo/xml/htdocs/doc/en/handbook/hb-working-features.xml,v 1.3 2003/11/28 07:32:38 swift Exp $ -->
5 swift 1.1
6     <sections>
7     <section>
8     <title>DistCC</title>
9     <subsection>
10     <title>What is DistCC?</title>
11     <body>
12    
13 swift 1.2 <p>
14     <c>distcc</c> is a program to distribute compilations across several, not
15     necessarily identical, machines on a network. The <c>distcc</c> client sends all
16     necessary information to the available DistCC servers (running <c>distccd</c>)
17     so they can compile pieces of sourcecode for the client. The net result is a
18     faster compilation time.
19     </p>
20    
21     <p>
22     You can find more elaborate information about <c>distcc</c> (and information on
23     how to have it work with Gentoo) in our <uri link="/doc/en/distcc.xml">Gentoo
24     Distcc Documentation</uri>.
25     </p>
26    
27 swift 1.1 </body>
28     </subsection>
29     <subsection>
30     <title>Installing DistCC</title>
31     <body>
32    
33 swift 1.2 <p>
34     Distcc ships with a graphical monitor to monitor tasks that your computer is
35     sending away for compilation. If you use Gnome then put 'gnome' in your
36     <c>USE</c> setting. However, if you don't use Gnome and would still like to have
37     the monitor then you should put 'gtk' in your <c>USE</c> setting.
38     </p>
39    
40     <p>
41     Installing distcc is, as is with all software available through Gentoo's
42     Portage, extremely easy:
43     </p>
44    
45     <note>
46     From now on, as you now know how to install binary packages if you want, we will
47     omit the <c>--usepkg</c> option throughout the rest of the Gentoo Handbook.
48     </note>
49    
50     <pre caption="Installing Distcc">
51     # <i>emerge distcc</i>
52     </pre>
53    
54 swift 1.1 </body>
55     </subsection>
56     <subsection>
57     <title>Activating Portage Support</title>
58     <body>
59    
60 swift 1.2 <p>
61     Well, if installation is easy, the rest should be easy too :) So let us quickly
62     activate the Portage support for <c>distcc</c>.
63     </p>
64    
65     <p>
66     First, open <path>/etc/make.conf</path> and edit the <c>FEATURES</c> variable so
67     it contains the <c>distcc</c> keyword. Next, edit the <c>MAKEOPTS</c> variable
68 swift 1.3 so it reads <c>-jX</c> with <c>X</c> the number of CPUs that run <c>distccd</c>
69     (including the current host) plus one:
70 swift 1.2 </p>
71    
72     <pre caption="Possible MAKEOPTS setting in /etc/make.conf">
73 swift 1.3 <comment># Suppose you have 2 single-CPU distccd hosts excluding this host:</comment>
74     MAKEOPTS="-j4"
75 swift 1.2 </pre>
76    
77     <p>
78     Now, still inside <path>/etc/make.conf</path>, uncomment the
79     <c>PORTAGE_TMPDIR</c> line and add the following line at the end
80     of the file:
81     </p>
82    
83     <pre caption="Add an extra, distcc-specific variable to /etc/make.conf">
84     <comment># Don't forget to uncomment the PORTAGE_TMPDIR variable</comment>
85     DISTCC_DIR=${PORTAGE_TMPDIR}/portage/.distcc
86     </pre>
87 swift 1.3
88     <p>
89     Now run <c>distcc-config</c> and enter the list of available DistCC servers. For
90     a simple example we assume that the available DistCC servers are
91     <c>192.168.1.102</c> (the current host), <c>192.168.1.103</c> and
92     <c>192.168.1.104</c> (two "remote" hosts):
93     </p>
94    
95     <pre caption="Configuring distcc to use three available DistCC servers">
96     # <i>distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"</i>
97     </pre>
98    
99     <p>
100     Of course, don't forget to run the <c>distccd</c> daemon too:
101     </p>
102    
103     <pre caption="Starting the distcc daemon">
104     # <i>/etc/init.d/distccd start</i>
105     </pre>
106    
107     <p>
108     Congratulations, your system will now use distributed compiling! For more
109     in-depth information about DistCC and Gentoo, please read our <uri
110     link="/doc/en/distcc.xml">Gentoo DistCC Documentation</uri>.
111     </p>
112 swift 1.2
113 swift 1.1 </body>
114     </subsection>
115     </section>
116     <section>
117 swift 1.4 <title>ccache</title>
118 swift 1.1 <subsection>
119 swift 1.4 <title>What is ccache?</title>
120 swift 1.1 <body>
121    
122 swift 1.4 <p>
123     <c>ccache</c> is a fast compiler cache. When you compile a program, it will
124     cache intermediate results so that, when you ever recompile the same program,
125     the compilation time is greatly reduced. In common compilations this can result
126     in 5 to 10 times faster compilation times.
127     </p>
128    
129     <p>
130     If you are interested in the ins and outs of <c>ccache</c>, please visit the
131     <uri link="http://ccache.samba.org">ccache homepage</uri>.
132     </p>
133    
134 swift 1.1 </body>
135     </subsection>
136     <subsection>
137 swift 1.4 <title>Installing ccache</title>
138 swift 1.1 <body>
139    
140 swift 1.4 <p>
141     Installing <c>ccache</c> with Gentoo is a breeze. Just emerge it and you're done
142     :)
143     </p>
144    
145     <pre caption="Installing ccache">
146     # <i>emerge ccache</i>
147     </pre>
148    
149 swift 1.1 </body>
150     </subsection>
151     <subsection>
152     <title>Activating Portage Support</title>
153     <body>
154 swift 1.4
155     <p>
156     First, edit <path>/etc/make.conf</path> and alter the <c>FEATURES</c> variable
157     so that it contains the <c>ccache</c> keyword:
158     </p>
159    
160     <pre caption="Editing FEATURES in /etc/make.conf">
161     FEATURES="ccache"
162     </pre>
163    
164     <p>
165     Next, edit (or create) the <c>CCACHE_SIZE</c> variable (also in
166     <path>/etc/make.conf</path>) so it contains the amount of diskspace you want to
167     sacrifice for <c>ccache</c>:
168     </p>
169    
170     <pre caption="Editing CCACHE_SIZE in /etc/make.conf">
171     CCACHE_SIZE="2G"
172     </pre>
173    
174     <p>
175     As of now, Portage will use <c>ccache</c> to speed up compilations where
176     possible. If you are uncertain that <c>ccache</c> works, you can run <c>ccache
177     -s</c> to view the <c>ccache</c> statistics:
178     </p>
179    
180     <pre caption="Viewing ccache statistics">
181     # <i>ccache -s</i>
182     </pre>
183 swift 1.1
184     </body>
185     </subsection>
186     </section>
187     <section>
188     <title>Binary Packages</title>
189     <subsection>
190     <title>Creating binary packages</title>
191     <body>
192    
193 swift 1.2 <p>
194     We have already discussed how to work with prebuild packages, but how do you
195     create your own prebuild packages?
196     </p>
197    
198     <p>
199     If the package is already installed, you can use the <c>quickpkg</c> command
200     which will make a tarball of the installed files. This is very interesting for
201     backup purposes!
202     </p>
203    
204     <pre caption="Using quickpkg">
205     # <i>quickpkg gnumeric</i>
206     </pre>
207    
208     <p>
209     If the package isn't installed yet, you can install it using <c>emerge</c> and
210     ask to build a binary package too. <c>emerge</c> uses the <c>--buildpkg</c>
211     option (<c>-b</c> in short) for this:
212     </p>
213    
214     <pre caption="Installing gnumeric and building binary packages too">
215     # <i>emerge --buildpkg gnumeric</i>
216     </pre>
217    
218     <p>
219     If you want Portage to do this by default, you should set the <c>buildpkg</c>
220     keyword in the <c>FEATURES</c> variable declared in <path>/etc/make.conf</path>.
221     </p>
222    
223     <p>
224     If you don't want to install the software, but only build the package, you can
225     use the <c>--buildpkgonly</c> option (<c>-B</c> in short):
226     </p>
227    
228     <pre caption="Building a binary package for gnumeric">
229     # <i>emerge --buildpkgonly gnumeric</i>
230     </pre>
231 swift 1.1
232     </body>
233     </subsection>
234     </section>
235     </sections>

  ViewVC Help
Powered by ViewVC 1.1.20