summaryrefslogtreecommitdiff
blob: 6dcf6329ca42f73c00e8b19fbd2f53d3692349a8 (plain)
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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE sections SYSTEM "/dtd/book.dtd">

<!-- The content of this document is licensed under the CC-BY-SA license -->
<!-- See http://creativecommons.org/licenses/by-sa/1.0 -->



<sections>
<section>
<title>Scelta dello stage</title>
<body>

<p>
Quando si è chiesto di scegliere una modalità di installazione (LiveCD, distribuzione esistente ecc.), si è spiegato quali sono i pro e i contro. Uno di questi è la scelta dello stage: una compilazione completa (<e>stage1</e>), saltare il bootstrapping (<e>stage2</e>) o uno stato precompilato(<e>stage3</e>)?
</p>

<p>
Si può scegliere, secondo la modalità di installazione. Altri hanno fatto la scelta all'inizio dell'installazione. Adesso si deve installare lo stage.
</p>

<p>
Le due parti seguenti spiegano come installare lo stage preferito. Di default si scarica lo stage da internet. Tuttavia, alcuni LiveCD hanno questi stage disponibili sul CD.
</p>

<p>
Se si ha una connessione a Internet, è consigliato usare l'opzione di default. Se invece non si ha una connessione a Internet, o si vuole installare Gentoo con GRP (pacchetti precompilati), si deve scegliere l'opzione alternativa.
</p>

<ul>
<li><uri link="#doc_chap2">Default: Scaricare da Internet</uri></li>
<li><uri link="#doc_chap3">Alternativa: Usare uno stage dal LiveCD</uri></li>
</ul>

</body>
</section>
<section>
<title>Default: Scaricare da Internet</title>
<subsection>
<title>Scaricare il tarball dello stage</title>
<body>

<p>
Andare al mountpoint nel quale si è montato il filesystem (molto probabilmente <path>/mnt/gentoo</path>):
</p>

<pre caption="Andare al mountpoint di Gentoo">
# <i>cd /mnt/gentoo</i>
</pre>

<p>
Secondo la modalità di installazione, si hanno una coppia di tool disponibili per scaricare lo stage. Se si ha <c>lynx</c>, allora si può andare immediatamente nella <uri link="/main/en/mirrors.xml">lista dei mirror di Gentoo</uri> e scegliere un mirror vicino. Poi selezionare la directory <path>releases/</path>, seguita dall'architettura (per esempio <path>x86/</path>) e la versione di Gentoo (<path>1.4/</path>), per finire con la directory <path>stages/</path>. Si dovrebbero vedere tutti gli stage disponibili per l'architettura. Selezionarne uno e premere <c>D</c> per scaricarlo. Quando si è finito, premere <c>Q</c> per chiudere il browser.
</p>

<pre caption="Andare all'elenco dei mirror con lynx">
# <i>lynx http://www.gentoo.org/main/en/mirrors.xml</i>
</pre>

<p>
Se non si ha <c>lynx</c>, si dovrebbe avere a disposizione <c>links2</c>. <c>links2</c> è più potente di <c>lynx</c>, ma ha alcuni svantaggi. Uno di questi è che non elenca le variabili del proxy. Se bisogna installare un proxy, usare <c>links2 -http-proxy proxy.server.com:8080</c>. Poi si seguiranno gli stessi passi fatti con <c>lynx</c>, sono uguali.
</p>

<pre caption="Andare all'elenco dei mirror con links2">
<comment>(Senza proxy:)</comment>   # <i>links2 http://www.gentoo.org/main/en/mirrors.xml</i>
<comment>(Con proxy:></comment>     # <i>links2 -http-proxy proxy.server.com:8080 http://www.gentoo.org/main/en/mirrors.xml</i>
</pre>

<p>
Se si vuole controllare l'integrità del tarball dello stage scaricato, usare <c>md5sum</c> e comparare l'output con il MD5 checksum fornito sul mirror.
</p>

<pre caption="Controllare l'integrità di un tarball dello stage">
# <i>md5sum stage1-x86-20030910.tar.bz2</i>
6cda1cc745ba882731ac07fbae0dd973  stage1-x86-20030910.tar.bz2
</pre>

</body>
</subsection>
<subsection>
<title>Scompattare il tarball dello stage</title>
<body>

<p>
Adesso si scompatta lo stage scaricato nel sistema. Si usa il <c>tar</c> di GNU per procedere poichè è il metodo più facile:
</p>

<pre caption="Scompattare lo stage">
# <i>tar -xvjpf stage?-*.tar.bz2</i>
</pre>

<p>
Assicurarsi di usare la stessa opzione (<c>-xvjpf</c>). La <c>x</c> sta per <e>Estrarre</e>, la <c>v</c> per <e>Verbose</e> (opzionale), la <c>j</c> per <e>Decomprimere con bzip2</e>, la <c>p</c> per <e>Conservare i permessi</e> e la <c>f</c> per denotare che si vuole estrarre un file, non un input standard.
</p>

<p>
Fatto? Si è pronti per procedere con la prossima sezione su <uri link="#doc_chap4">Configurare le opzioni di compilazione</uri>.
</p>

</body>
</subsection>
</section>
<section>
<title>Alternativa: Usare uno stage dal LiveCD</title>
<subsection>
<title>Estrarre il tarball dello stage</title>
<body>

<p>
Gli stage sul CD risiedono nella directory <path>/mnt/cdrom/stages</path>. Per vedere un elenco degli stage disponibili, usare <c>ls</c>:
</p>

<pre caption="Elenco di tutti gli stage disponibili">
# <i>ls /mnt/cdrom/stages</i>
</pre>

<p>
Se il sistema risponde con un errore, si dovrebbe montare il CD-ROM prima:
</p>

<pre caption="Montare il CD-ROM">
# <i>ls /mnt/cdrom/stages</i>
ls: /mnt/cdrom/stages: No such file or directory
# <i>mount /dev/cdroms/cdrom0 /mnt/cdrom</i>
# <i>ls /mnt/cdrom/stages</i>
</pre>

<p>
Andare ora nel mountpoint di Gentoo (di solito <path>/mnt/gentoo</path>):
</p>

<pre caption="Cambiare directory a /mnt/gentoo">
# <i>cd /mnt/gentoo</i>
</pre>

<p>
Si estrarrà il tarball dello stage scelto. Si farà questo con il tool GNU <c>tar</c>. Assicurarsi di usare la stessa opzione (<c>-xvjpf</c>)! Nel prossimo esempio, si estrae il tarball dello stage <path>stage3-20031011.tar.bz2</path>. Si deve essere sicuri di sostituire il nome del file del tarball con quello scelto.
</p>

<pre caption="Estrarre il tarball dello stage">
# <i>tar -xvjpf /mnt/cdrom/stages/stage3-20031011.tar.bz2</i>
</pre>

</body>
</subsection>
<subsection>
<title>Installare una immagine di Portage e il codice sorgente</title>
<body>

<p>
C'è un'immagine di Portage disponibile su alcuni LiveCD. Dato che si sta leggendo questa parte, si può di sicuro assumere che si sta usando un LiveCD. Per installare questa immagine, si dia uno sguardo a <path>/mnt/cdrom/snapshots/</path> per vedere quale immagine è disponibile:
</p>

<pre caption="Controllare il contenuto di /mnt/cdrom/snapshots">
# <i>ls /mnt/cdrom/snapshots</i>
</pre>

<p>
Ora si estrae l'immagine nel seguente modo. Di nuovo, assicurarsi di usare la corretta opzione per <c>tar</c>, e che <c>-C</c> è maiuscola. Nel prossimo esempio si usa <path>portage-20031011.tar.bz2</path> come nome del file dell'immagine. Si deve essere sicuri di sostituirla con l'immagine scelta.
</p>

<pre caption="Estrarre l'immagine di Portage">
# <i>tar -xvjf /mnt/cdrom/snapshots/portage-20031011.tar.bz2 -C /mnt/gentoo/usr</i>
</pre>

<p>
Bisogna copiare anche tutto il codice sorgente dal CD.
</p>

<pre caption="Copiare il codice sorgente">
# <i>mkdir /mnt/gentoo/usr/portage/distfiles</i>
# <i>cp /mnt/cdrom/distfiles/* /mnt/gentoo/usr/portage/distfiles/</i>
</pre>

<p>
Se si vuole usare GRP (binari precompilati), leggere sotto. Altrimenti continuare con <uri link="#doc_chap4">Configurare le opzioni di compilazione</uri>.
</p>

</body>
</subsection>
<subsection>
<title>Opzionale: Preparare GRP</title>
<body>

<p>
Se si vuole installare Gentoo usando GRP (pacchetti precompilati), bisogna copiare tutti i pacchetti nel filesystem così che Portage possa usarli.
</p>

<pre caption="Copiare i pacchetti precompilati">
# <i>mkdir -p /mnt/gentoo/usr/portage/packages/All</i>
# <i>cp /mnt/cdrom/packages/All/* /mnt/gentoo/usr/portage/packages/All/</i>
</pre>

<p>
Ora continuare con <uri link="#doc_chap4">Configurare le opzioni di compilazione</uri>.
</p>

</body>
</subsection>
</section>
<section>
<title>Configurare le opzioni di compilazione</title>
<subsection>
<title>Introduzione</title>
<body>

<p>
Per ottimizzare Gentoo, si possono settare una coppia di variabili che hanno effetto sul comportamento di Portage. Tutte queste variabili possono essere settate come variabili di ambiente (usando <c>export</c>), ma non in modo permanente. Per mantenere i settaggi, Portage fornisce <path>/etc/make.conf</path>, un file di configurazione. E' il file che si editerà adesso.
</p>

<note>
Un elenco commentato di tutte le variabili possibili si trova in <path>/mnt/gentoo/etc/make.conf(.example)</path>. Per una installazione riuscita di Gentoo ci sarà soltanto bisogno di settare le variabili che sono menzionate sotto.
</note>

<p>
Si prenda l'editor favorito (in questa guida si usa <c>nano</c>) per cambiare le variabili di ottimizzazione che si discuteranno.
</p>

<pre caption="Aprire /etc/make.conf">
# <i>nano -w /mnt/gentoo/etc/make.conf</i>
</pre>

<p>
Come probabilmente si nota, il file <path>make.conf(.example)</path> è strutturato in modo generico: le righe commentate iniziano con "#", altre righe definiscono le variabili, usando la sintassi <c>VARIABLE="content"</c>. Molte di queste variabili sono discusse avanti.
</p>

</body>
</subsection>
<subsection>
<title>CHOST</title>
<body>

<warn>
Anche se potrebbe essere interessante per gli utenti che non hanno scelto lo stage1, <e>non</e> si dovrebbe cambiare i setting <c>CHOST</c> in <path>make.conf</path>. Facendolo si può rendere il sistema inutilizzabile. Di nuovo: cambiare soltanto questa variabile se si sta utilizzando l'installazione con lo <e>stage1</e>.
</warn>

<p>
La variabile <c>CHOST</c> definisce quale architettura <c>gcc</c> deve compilare i programmi. Le possibilità sono:
</p>

<table>
<tr>
  <th>Architettura</th>
  <th>Subarchitettura</th>
  <th>Setting CHOST</th>
</tr>
<tr>
  <ti>x86</ti>
  <ti>i386</ti>
  <ti>i386-pc-linux-gnu</ti>
</tr>
<tr>
  <ti>x86</ti>
  <ti>i486</ti>
  <ti>i486-pc-linux-gnu</ti>
</tr>
<tr>
  <ti>x86</ti>
  <ti>i586</ti>
  <ti>i586-pc-linux-gnu</ti>
</tr>
<tr>
  <ti>x86</ti>
  <ti>i686 e superiore (incluso athlon)</ti>
  <ti>i686-pc-linux-gnu</ti>
</tr>
<tr>
  <ti>alpha</ti>
  <ti></ti>
  <ti>alpha-unknown-linux-gnu</ti>
</tr>
<tr>
  <ti>ppc</ti>
  <ti></ti>
  <ti>powerpc-unknown-linux-gnu</ti>
</tr>
<tr>
  <ti>sparc</ti>
  <ti></ti>
  <ti>sparc-unknown-linux-gnu</ti>
</tr>
<tr>
  <ti>hppa</ti>
  <ti>(generica)</ti>
  <ti>hppa-unknown-linux-gnu</ti>
</tr>
<tr>
  <ti>hppa</ti>
  <ti>pa7000</ti>
  <ti>hppa1.1-unknown-linux-gnu</ti>
</tr>
<tr>
  <ti>hppa</ti>
  <ti>pa8000 e superiore</ti>
  <ti>hppa2.0-unknown-linux-gnu</ti>
</tr>
<tr>
  <ti>mips</ti>
  <ti></ti>
  <ti>mips-unknown-linux-gnu</ti>
</tr>
<tr>
  <ti>amd64</ti>
  <ti></ti>
  <ti>x86_64-pc-linux-gnu</ti>
</tr>
</table>

</body>
</subsection>
<subsection>
<title>CFLAGS e CXXFLAGS</title>
<body>

<p>
Le variabili <c>CFLAGS</c> e <c>CXXFLAGS</c> definiscono le flag di ottimizzazione per il compilatore <c>gcc</c> C e C++ rispettivamente. Anche se si definiscono generalmente, si avrà la massima performance se si ottimizzano queste flag per ogni programma separatamente. Il motivo è perchè ogni programma è differente.
</p>

<p>
In <path>make.conf</path> si dovrebbero definire le flag di ottimizzazione che si pensa possano rendere il sistema più sensibile <e>generalmente</e>. Non mettere setting sperimentali in questa variabile; troppa ottimizzazione può far funzionare male i programmi (crash, o peggio ancora, malfunzionamento).
</p>

<p>
Non si spiegheranno tutte le possibili opzioni di ottimizzazione. Chi volesse conoscerle, legga il <uri link="http://www.gnu.org/software/gcc/onlinedocs/">Manuale(i) Online GNU</uri> o la pagina di informazioni <c>gcc</c> (<c>info gcc</c> -- funziona solo su un sistema Linux). Lo stesso file <path>make.conf</path> contiene molti esempi e informazioni; non dimenticare di leggerlo.
</p>

<p>
Un primo setting è la flag <c>-march=</c>, che specifica il nome dell'architettura. Le possibili opzioni sono descritte nel file <path>make.conf</path> (come commenti). Per esempio, per l'architettura x86 Athlon XP:
</p>

<pre caption="Setting del GCC march">
-march=athlon-xp
</pre>

<p>
Un secondo setting è la flag <c>-O</c>, che specifica la ottimizzazione <c>gcc</c> per la classe. Possibili classi sono <c>s</c> (per ottimizzazioni di formato), <c>O</c> (per nessuna ottimizzazione), <c>1</c>, <c>2</c> o <c>3</c> per più ottimizzazioni di velocità (ogni classe ha le stesse flag di quella precedente, più alcuni extra). Per esempio, per una ottimizzazione di classe-2:
</p>

<pre caption="Setting GCC O">
-O2
</pre>

<p>
Altre flag di ottimizzazione molto usate sono <c>-pipe</c> (si usa pipe piuttosto che i file temporanei, per la comunicazione tra i vari stage di compilazione) e <c>-fomit-frame-pointer</c> (che non mantiene l'indicatore della struttura, in un registro per le funzioni, di cui non c'è bisogno).
</p>

<p>
Quando si definiscono <c>CFLAGS</c> e <c>CXXFLAGS</c>, si dovrebbero mettere insieme molte flag di ottimizzazione, come nel seguente esempio:
</p>

<pre caption="Definire le variabili CFLAGS e CXXFLAGS">
CFLAGS="-march=athlon-xp -pipe -O2"
CXXFLAGS="${CFLAGS}"                         <comment># Usare gli stessi setting per entrambe le variabili</comment>
</pre>

</body>
</subsection>
<subsection>
<title>MAKEOPTS</title>
<body>

<p>
Con <c>MAKEOPTS</c> si definisce quante compilazioni parallele si fanno quando si installa un pacchetto. Il numero suggerito è il numero della CPU più uno.
</p>

<pre caption="MAKEOPTS per un normale sistema con 1-CPU">
MAKEOPTS="-j2"
</pre>

</body>
</subsection>
<subsection>
<title>Pronti, partenza, via!</title>
<body>

<p>
Aggiornare <path>/mnt/gentoo/etc/make.conf</path> in base alle proprie preferenze, e salvarlo. Si è ora pronti per continuare con <uri link="?part=1&amp;chap=6">Installazione del sistema base Gentoo</uri>.
</p>

</body>
</subsection>
</section>
</sections>