Gentoo Archives: gentoo-doc-cvs

From: swift <swift@×××××××××××.org>
To: gentoo-doc-cvs@l.g.o
Subject: [gentoo-doc-cvs] cvs commit: handbook.xml
Date: Fri, 06 Jan 2006 20:05:32
Message-Id: 200601062005.k06K5AtF015527@robin.gentoo.org
1 swift 06/01/06 20:05:08
2
3 Added: xml/htdocs/doc/en/handbook/draft/complete handbook.xml
4 hb-admin-centralised.xml hb-admin-logs.xml
5 hb-admin-portage.xml hb-app_arch-x86.xml
6 hb-desktop-collaboration.xml
7 hb-desktop-graphical.xml hb-desktop-plugnplay.xml
8 hb-enterprise-backups.xml hb-enterprise-lvm.xml
9 hb-enterprise-printing.xml hb-enterprise-swraid.xml
10 hb-install-bootprocess.xml hb-install-building.xml
11 hb-install-configure.xml hb-install-kernel.xml
12 hb-install-media.xml hb-install-minenv.xml
13 hb-install-network.xml hb-install-next.xml
14 hb-install-storage.xml hb-intro-choice.xml
15 hb-intro-linux.xml hb-intro-next.xml
16 hb-intro-resources.xml hb-intro-support.xml
17 hb-intro-user_fhs.xml hb-intro-versions.xml
18 hb-tuning-io.xml hb-tuning-network.xml
19 hb-tuning-profiling.xml hb-tuning-rendering.xml
20 hb-tuning-userinput.xml
21 Log:
22 Humpty dumpty sitting in the tree... a framework for a large project?
23
24 Revision Changes Path
25 1.1 xml/htdocs/doc/en/handbook/draft/complete/handbook.xml
26
27 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/handbook.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
28 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/handbook.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
29
30 Index: handbook.xml
31 ===================================================================
32 <?xml version='1.0' encoding='UTF-8'?>
33 <!DOCTYPE book SYSTEM "/dtd/book.dtd">
34
35 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/handbook.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
36
37 <book link="handbook.xml" lang="en">
38 <title>the Complete Gentoo/Linux handbook</title>
39
40 <author title="Author">
41 <mail link="swift@g.o">Sven Vermeulen</mail>
42 </author>
43
44 <abstract>
45 This handbook tries to extend on various subjects regarding Linux and the Gentoo
46 Linux operating system. It is written with the casual user in mind who wants to
47 learn about Linux rather than just follow instructions to the letter. Although I
48 hope this handbook will eventually be complete, it currently lacks so many
49 important subjects that it is far from ready yet to be officially published.
50 </abstract>
51
52 <!-- The content of this document is licensed under the CC-BY-SA license -->
53 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
54 <license/>
55
56 <version>0.0</version>
57 <date>2005-06-09</date>
58
59 <part>
60 <title>Introduction to Linux</title>
61 <abstract>
62 Linux is a great concept. It is a wonderful kernel and has wonderful userland
63 utilities making it a perfect operating system. But for most people, it is quite
64 new and too exciting to just dive in. This part tries to cover Linux: what is
65 it, how does it work, what can you expect etc.
66 </abstract>
67
68 <chapter>
69 <title>What is Linux?</title>
70 <abstract>
71 What is Linux exactly? How does this all fit in "Free Software"? What is a
72 distribution and why would you care? How is Linux developed? What can you expect
73 from it? All that is covered in this chapter.
74 </abstract>
75 <include href="hb-intro-linux.xml"/>
76 </chapter>
77
78 <chapter>
79 <title>Users and the Linux file system</title>
80 <abstract>
81 Linux is built upon the UNIX knowledge and concepts. This means it is fairly
82 robust and uses a very logical approach to files, users and such. But for most
83 people, this logical approach is just what seems the most illogical since they
84 are not used to it. In this chapter, we try to inform those users about how
85 Linux sees a multi-user environment and what the Linux file system is structured
86 like.
87 </abstract>
88 <include href="hb-intro-user_fhs.xml"/>
89 </chapter>
90
91 <chapter>
92 <title>Freedom, support and finances</title>
93 <abstract>
94 The most powerful asset of the Linux operating system is the freedom it gives
95 you. But many folks are afraid that this freedom comes with a price: no support,
96 no company backing up Linux. This is all FUD (Fear, Uncertainty, Doubt) and well
97 explained in this chapter.
98 </abstract>
99 <include href="hb-intro-support.xml"/>
100 </chapter>
101
102 <chapter>
103 <title>Staying up to date</title>
104 <abstract>
105 With the decentralised development model that Linux uses, keeping a system up to
106 date might seem like a huge effort. Indeed, it is, but it is covered by the
107 various distributions (such as Gentoo). However, because of the openness that
108 the development model imposes, users have conflicting feelings about stability
109 and the differences between all version models. This chapter explains what all
110 the differences between version models are.
111 </abstract>
112 <include href="hb-intro-versions.xml"/>
113 </chapter>
114
115 <chapter>
116 <title>Making a choice</title>
117 <abstract>
118 Now that most non-technical stuff is covered, it is time for you to make
119 choices. Will you use Linux? What distribution? What graphical environment? What
120 mail client? In this chapter we discuss the various differences between
121 major distributions and explain that, once you have picked a distribution, all
122 other choices are reversible.
123 </abstract>
124 <include href="hb-intro-choice.xml"/>
125 </chapter>
126
127 <chapter>
128 <title>Finding information</title>
129 <abstract>
130 You have a lot of resources at your disposal, but you need to know where to look
131 for them. In this chapter we provide you a quick overview on the available
132 resources, how to use them for your queries and what you can do to contribute to
133 them.
134 </abstract>
135 <include href="hb-intro-resources.xml"/>
136 </chapter>
137
138 <chapter>
139 <title>So far so good</title>
140 <abstract>
141 Now that the introduction to Linux has ended, we will talk about the next few
142 parts and the syntax we use throughout this document.
143 </abstract>
144 <include href="hb-intro-next.xml"/>
145 </chapter>
146 </part>
147
148 <part>
149 <title>Installing Gentoo</title>
150 <abstract>
151 So you decided to install Gentoo. That's great, so how to continue? Installing
152 Gentoo is a breeze, but not a soft one. You need to have a fair knowledge of the
153 Linux environment if you want to get it right from the first time. In this part,
154 we discuss how to install Gentoo using the available Gentoo media.
155 </abstract>
156
157 <chapter>
158 <title>Versions, media and installation concerns</title>
159 <abstract>
160 Gentoo provides installation media, with specific versions, for specific
161 architectures, for specific installation methods. This chapter informs you how
162 to pick the right media for your system.
163 </abstract>
164 <include href="hb-install-media.xml"/>
165 </chapter>
166
167 <chapter>
168 <title>Starting from a minimal environment</title>
169 <abstract>
170 The start of every Gentoo installation process begins with a minimal Linux
171 environment, allowing you to extract a basic Gentoo environment on your disk.
172 Regardless of what minimal environment you are in, you need to know a few basic
173 things about the system. This chapter covers the use of important tools.
174 </abstract>
175 <include href="hb-install-minenv.xml"/>
176 </chapter>
177
178 <chapter>
179 <title>Preparing the network</title>
180 <abstract>
181 When you are known to the minimal environment, it is time to get the network up
182 and running. We will inform you how a network is set up, what TCP/IP is and how
183 to deal with networking on Linux, including wireless networks.
184 </abstract>
185 <include href="hb-install-network.xml"/>
186 </chapter>
187
188 <chapter>
189 <title>Putting the minimal environment in place</title>
190 <abstract>
191 In this chapter we prepare your disk(s) to store the Gentoo Linux environment.
192 We will cover a few additional storage concepts (LVM2, RAID) but the real use of
193 these technologies is postponed for later. Next, we store a minimal Gentoo
194 environment on your disks.
195 </abstract>
196 <include href="hb-install-storage.xml"/>
197 </chapter>
198
199 <chapter>
200 <title>Building the system</title>
201 <abstract>
202 Once the minimal environment was available, we took the dive and chrooted in it.
203 Now, we'll set up the basic configuration directives, build the Gentoo
204 system until it is bootstrapped and has the core system packages available.
205 </abstract>
206 <include href="hb-install-building.xml"/>
207 </chapter>
208
209 <chapter>
210 <title>Building the Linux kernel</title>
211 <abstract>
212 The core of any Linux Operating System is the kernel. Configuring a kernel might
213 seem like a difficult task, but once you get to know how it works, it hardly is
214 a challenge anymore. In this chapter we will discuss how to configure and build
215 your kernel, either automatically using genkernel, or manually with the kernel
216 configuration dialog.
217 </abstract>
218 <include href="hb-install-kernel.xml"/>
219 </chapter>
220
221 <chapter>
222 <title>Configuring the boot process</title>
223 <abstract>
224 The next step is to configure the boot process. The boot process covers the boot
225 loader tool, which loads the Linux kernel in memory, and the init process which
226 governs all the applications and processes that should start on a Linux system.
227 </abstract>
228 <include href="hb-install-bootprocess.xml"/>
229 </chapter>
230
231
232 <chapter>
233 <title>Configuring the system</title>
234 <abstract>
235 Most of the system's configuration is stored inside /etc. In this almost final
236 chapter we describe what you should configure prior to rebooting (such as the
237 file system table, networking stuff, user accounts, ...). It is important to
238 read this entire chapter completely.
239 </abstract>
240 <include href="hb-install-configure.xml"/>
241 </chapter>
242
243 <chapter>
244 <title>Finishing off</title>
245 <abstract>
246 Now that everything is (hopefully) configured correctly, we reboot in the Gentoo
247 Linux Operating System to discover that we have a nice running minimal
248 environment. Now, where to go from here? You obviously can't work immediately
249 since nothing is installed yet...
250 </abstract>
251 <include href="hb-install-next.xml"/>
252 </chapter>
253 </part>
254
255 <part>
256 <title>Gentoo Linux for the desktop user</title>
257 <abstract>
258 Most Gentoo users have a Gentoo-powered desktop system, yet are often unaware of
259 the massive tools and helpful features that Linux offers to increase their
260 desktop experience. In this part you'll find pointers to various tips and
261 tricks, but also best practices for desktop users.
262 </abstract>
263
264 <chapter>
265 <title>Graphical Linux</title>
266 <abstract>
267 Linux is not an operating system where command-line utilities must be used. Once
268 the system is installed, any user should be able to use it without any knowledge
269 of command-line utilities. Indeed, this is perfectly possible, but requires some
270 configuration. This chapter covers the setup of a graphical desktop.
271 </abstract>
272 <include href="hb-desktop-graphical.xml"/>
273 </chapter>
274
275 <chapter>
276 <title>Plug and play</title>
277 <abstract>
278 Your laptop detects an open wireless network and authenticates itself
279 immediately. You plug in your USB key which gets mounted immediately so you can
280 download the latest Gentoo release on it. While you are at it, your calendar
281 synchronises with your friends while your laptop tries to consume as little
282 power as possible because it is working on batteries. No, this is no utopia...
283 </abstract>
284 <include href="hb-desktop-plugnplay.xml"/>
285 </chapter>
286
287 <chapter>
288 <title>Software collaboration</title>
289 <abstract>
290 Open standards allow for easy integration of different software tools. However,
291 the race for the best open standard hasn't been won, so various tools only work
292 with one standard while other tools use a different one. This chapter gives a
293 quick overview of the various collaboration-related standards and the
294 applications (or libraries which they use) that make use of them.
295 </abstract>
296 <include href="hb-desktop-collaboration.xml"/>
297 </chapter>
298
299 </part>
300
301 <part>
302 <title>Gentoo Linux for enterprise environments</title>
303 <abstract>
304 Enterprises require more than just a stable Operating System. Depending on their
305 requirements, a system should be high-available, have a high throughput, connect
306 with legacy systems, have a low maintenance cost, requires zero manual
307 configuration steps, etc. This part will attempt to discuss various interesting
308 topics that might help you get more out of Gentoo Linux.
309 </abstract>
310
311 <chapter>
312 <title>Software RAID</title>
313 <abstract>
314 If you need a very low-cost system but still want redundancy, using software
315 RAID is a minimal requirement. In this chapter we will describe how to use
316 software RAID within Gentoo Linux.
317 </abstract>
318 <include href="hb-enterprise-swraid.xml"/>
319 </chapter>
320
321 <chapter>
322 <title>Logical Volume Management</title>
323 <abstract>
324 With LVM, storage concerns can be tackled easily since your files are located on
325 top of a specific layer, able to hide the complexity of storage from the file
326 system. Learn how to store files across various file systems, moving data
327 without the need to put the system in a frozen state, take live backups without
328 having your data touched while you are busy, ... and all that using LVM2.
329 </abstract>
330 <include href="hb-enterprise-lvm.xml"/>
331 </chapter>
332
333 <chapter>
334 <title>Backup systems</title>
335 <abstract>
336 You don't want to lose your files, but eventually you will. Having backups at
337 hand is a prerequisite for good system householding, but is also often
338 overlooked or deemed less important. This chapter will cover a few basics on
339 backups and proposes a few solutions that will help you keep your data safe.
340 </abstract>
341 <include href="hb-enterprise-backups.xml"/>
342 </chapter>
343
344 <chapter>
345 <title>Print server</title>
346 <abstract>
347 High quality printing is a requirement for every office. Linux makes a fine
348 print server, capable of interacting with all possible applications and
349 operating systems.
350 </abstract>
351 <include href="hb-enterprise-printing.xml"/>
352 </chapter>
353
354 </part>
355
356 <part>
357 <title>System Administration</title>
358 <abstract>
359 Once your system is set up, your next concern is to decide how to administer the
360 system. Some people have made system administration their full-time job. We'll
361 try to keep the administration to a minimum without losing flexibility.
362 </abstract>
363
364 <chapter>
365 <title>Software management</title>
366 <abstract>
367 Gentoo's Portage is a powerful software management tool with lots of features.
368 Not only can you easily install and remove software, rebuild tools when they are
369 affected by changes or update your system entirely, it also supports prebuilt
370 packages and different repositories.
371 </abstract>
372 <include href="hb-admin-portage.xml"/>
373 </chapter>
374
375 <chapter>
376 <title>Log files</title>
377 <abstract>
378 Not many resources talk about log files. Most documents assume that log files
379 are mentioned by the application documentation, yet many applications just
380 inform you what information you can find in the logs and that isn't sufficient
381 for a good log management policy. Log rotation, event filtering, summary
382 creation, ... are all aspects that this chapter covers.
383 </abstract>
384 <include href="hb-admin-logs.xml"/>
385 </chapter>
386
387 <chapter>
388 <title>Centralised system management</title>
389 <abstract>
390 When you administer more than one system, it might be beneficial to set up and
391 maintain your environment from a single location. You can use SSH to log on to
392 other systems, but more advanced tools exist that offer a wide variety of
393 features.
394 </abstract>
395 <include href="hb-admin-centralised.xml"/>
396 </chapter>
397
398 </part>
399
400 <part>
401 <title>Performance tuning</title>
402 <abstract>
403 No system is equal, so many systems have one or more performance bottlenecks due
404 to general settings that aren't as optimal for their systems as they are for
405 others. You can increase your systems performance on many areas as long as you
406 understand why they are bottlenecks and what sacrifices you need to make to
407 increase the throughput.
408 </abstract>
409
410 <chapter>
411 <title>Input/output performance</title>
412 <abstract>
413 Storage performance. If there is one device in your system that has the highest
414 importance but one of the lowest access times, it is your storage. Disks aren't
415 fast, network storage isn't much better and memory disks are generally too small
416 to contain your entire system. So what can you do to increase the IO
417 performance?
418 </abstract>
419 <include href="hb-tuning-io.xml"/>
420 </chapter>
421
422 <chapter>
423 <title>Network performance</title>
424 <abstract>
425 If you are on a 28.8 kbps network, you'll always find that it is slow. Many
426 people still think their network is slow while they're using a 1 Gbps network.
427 By identifying the bottlenecks in your network and designing a good topology,
428 you can increase the performance of your network to a good level.
429 </abstract>
430 <include href="hb-tuning-network.xml"/>
431 </chapter>
432
433 <chapter>
434 <title>Rendering performance</title>
435 <abstract>
436 A gamers wet dream: screens and graphical cards that render 3D images so
437 detailed and so fast that it seems that you're looking through a window. Of
438 course, this isn't achievable yet, but it is possible to tune the 3D performance
439 of your card. Of course, we'll take a look at 2D rendering as well.
440 </abstract>
441 <include href="hb-tuning-rendering.xml"/>
442 </chapter>
443
444 <chapter>
445 <title>Software profiling</title>
446 <abstract>
447 Programmers don't always write the most performant code; perhaps because they
448 rely on the compiler to enhance the machine code or because they want to write
449 clean and maintainable code, setting their priorities elsewhere. Using profiling
450 tools, you can find out where in the software the performance bottlenecks may
451 lie.
452 </abstract>
453 <include href="hb-tuning-profiling.xml"/>
454 </chapter>
455
456 <chapter>
457 <title>User-observed performance</title>
458 <abstract>
459 Lately, developers have come to the conclusion that even the fastest solution
460 can lose against a less performant system - at least if a human being is to
461 observe and judge. Many interesting projects have emerged where design
462 patterns and guidelines are discussed that try to embrace the users thoughts on
463 speed and performance.
464 </abstract>
465 <include href="hb-tuning-userinput.xml"/>
466 </chapter>
467
468 </part>
469
470
471 <part>
472 <title>Appendix: architecture specific information</title>
473 <abstract>
474 Not all aspects of a Gentoo Linux system are similar on all architectures. Some
475 small differences come up during and after the installation. This part will
476 cover all architecture-specific information, nicely divided in separate chapters
477 for each architecture.
478 </abstract>
479
480 <chapter>
481 <title>The x86 Architecture</title>
482 <abstract>
483 The x86 architecture covers all 32-bit Intel and Intel-clones, such as the
484 various AMD processors (the K-series and Athlon/Duron), VIA and Cyrix. The CPU
485 types range from the old (but functional) i386 to the latest Intel Pentium IV
486 and AMD Athlons.
487 </abstract>
488 <include href="hb-app_arch-x86.xml"/>
489 </chapter>
490 </part>
491
492 </book>
493
494
495
496 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-admin-centralised.xml
497
498 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-admin-centralised.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
499 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-admin-centralised.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
500
501 Index: hb-admin-centralised.xml
502 ===================================================================
503 <?xml version='1.0' encoding='UTF-8'?>
504 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
505
506 <!-- The content of this document is licensed under the CC-BY-SA license -->
507 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
508
509 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-admin-centralised.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
510
511 <sections>
512
513 <version>0.0</version>
514 <date>2005-06-19</date>
515
516 <section>
517 <title></title>
518 </section>
519
520 </sections>
521
522
523
524 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-admin-logs.xml
525
526 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-admin-logs.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
527 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-admin-logs.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
528
529 Index: hb-admin-logs.xml
530 ===================================================================
531 <?xml version='1.0' encoding='UTF-8'?>
532 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
533
534 <!-- The content of this document is licensed under the CC-BY-SA license -->
535 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
536
537 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-admin-logs.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
538
539 <sections>
540
541 <version>0.0</version>
542 <date>2005-06-19</date>
543
544 <section>
545 <title></title>
546 </section>
547
548 </sections>
549
550
551
552 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-admin-portage.xml
553
554 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-admin-portage.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
555 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-admin-portage.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
556
557 Index: hb-admin-portage.xml
558 ===================================================================
559 <?xml version='1.0' encoding='UTF-8'?>
560 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
561
562 <!-- The content of this document is licensed under the CC-BY-SA license -->
563 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
564
565 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-admin-portage.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
566
567 <sections>
568
569 <version>0.0</version>
570 <date>2005-06-19</date>
571
572 <section>
573 <title>Software maintenance</title>
574 </section>
575
576 <section>
577 <title>Using prebuilt software packages</title>
578 </section>
579
580 <section>
581 <title>Understanding ebuilds</title>
582 </section>
583
584 </sections>
585
586
587
588 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-app_arch-x86.xml
589
590 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-app_arch-x86.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
591 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-app_arch-x86.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
592
593 Index: hb-app_arch-x86.xml
594 ===================================================================
595 <?xml version='1.0' encoding='UTF-8'?>
596 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
597
598 <!-- The content of this document is licensed under the CC-BY-SA license -->
599 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
600
601 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-app_arch-x86.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
602
603 <sections>
604
605 <version>0.0</version>
606 <date>2005-06-19</date>
607
608 <section>
609 <title>Booting CDs</title>
610 <subsection>
611 <title>BIOS</title>
612 <body>
613
614 <p>
615 The BIOS (Basic Input/Output System) is the first system started when you power
616 on your computer. It first performs a POST (Power-On Self Test) to verify if
617 your hardware is still in good shape. When the POST gives the BIOS an okay, the
618 BIOS will load the boot loader from the boot device configured in its memory.
619 This boot loader then fires up the operating system and the entire system dance
620 starts...
621 </p>
622
623 <p>
624 To boot from a CD, you need to configure your BIOS so that the CD-ROM device is
625 the first boot device. Reboot your system and fire up the BIOS. You will be
626 informed about what key to press right after (or during) the POST to get in the
627 BIOS setup. Most BIOSses use <c>Esc</c>, <c>F1</c>, <c>F2</c>, <c>DEL</c> or
628 <c>F8</c>.
629 </p>
630
631 <p>
632 Once you are inside the BIOS setup, search for the setting where you can change
633 the boot device sequence. Some BIOSses place it beneith <e>CMOS Setup</e>, but
634 there isn't a standard - each BIOS has its differences. Change the order so that
635 the CD-ROM device is mentioned first before the first hard disk (HD-0). Such a
636 setting will allow you to boot from a bootable CD if there is one in the CD-ROM
637 drive, or boot from the hard drive otherwise.
638 </p>
639
640 </body>
641 </subsection>
642 </section>
643
644 <section>
645 <title>Partitioning the disks</title>
646 <subsection>
647 <title>Partition layout</title>
648 <body>
649
650 <p>
651 Each disk on an x86 system should have at most <e>four</e> primary partitions.
652 This is a remnesence of the old days where four partitions were found enough.
653 Each primary partition has its identification inside the first sector on the
654 disk (the <e>boot record</e>). When you want more than four partitions, you
655 should configure one of the primary partitions to contain all the non-primary
656 partitions. This large primary partition is called the <e>extended</e> partition
657 and the partitions inside it are called <e>logical</e> partitions.
658 </p>
659
660 <p>
661 The de-facto standard device naming convention tells us that the primary
662 partitions for a disk are numbered as 1 to 4 while the logical ones are 5
663 and higher, regardless of how many primary partitions you use. The naming
664 convention also tells us how the disks themselves are called.
665 </p>
666
667 <ul>
668 <li>
669 IDE device names start with <path>hd</path> followed by an alphabetic
670 character which resembles the location of the disk in the system: the
671 primary master<sup>1</sup> is <path>hda</path>, the primary slave
672 <path>hdb</path>, the secundary master <path>hdc</path>, etc.
673 </li>
674 <li>
675 SCSI device names (and most Serial ATA ones as well) start with
676 <path>sd</path> followed by an alphabetic character which resembles the
677 position of the disk in the disk chain: the first one is <path>sda</path>,
678 the second one <path>sdb</path>, etc.
679 </li>
680 </ul>
681
682 <p>
683 Device files are located inside <path>/dev</path>, so if you want to identify
684 the primary master IDE drive you would state <path>/dev/hda</path>.
685 </p>
686
687 <note>
688 <sup>1</sup> IDE drives are controlled by an IDE controller. Each controller can
689 govern two IDE devices at most: a master and a slave. The master drive has
690 higher priority when both drives are attempting to send or receive data. A
691 standard x86 system has two controllers, a primary one (<path>ide0</path>) and a
692 secundary one (<path>ide1</path>).
693 </note>
694
695 </body>
696 </subsection>
697 <subsection>
698 <title>Partitioning using cfdisk</title>
699 <body>
700
701 <p>
702 The <c>cfdisk</c> tool allows you to quickly partition your disks and is a lot
703 easier to use than <c>fdisk</c>. When you have fired up <c>cfdisk</c> (which
704 selects <path>/dev/hda</path> by default - you can use a different disk by
705 giving the device file name as an argument) you will get an overview of the
706 available partitions, each one listed with the device name, partition type, file
707 system type and size.
708 </p>
709
710 <p>
711 When you take a look at the interface, you'll notice that it is quite
712 self-explanatory:
713 </p>
714
715 <ul>
716 <li>
717 When you select a free space region, you can add new partitions by pressing
718 <c>New</c>. <c>cfdisk</c> will ask you what kind of partition you want
719 (primary or logical) and its size after which the partition is added to the
720 overview pane.
721 </li>
722 <li>
723 When you select a partition entry, you can change the file system type. Just
724 select <c>Type</c> and search for the type you are interested in (probably
725 82 - Linux swap / Solaris, or 83 - Linux).
726 </li>
727 <li>
728 Since some BIOSses require the partition that stores the boot loader for the
729 operating system to be marked as bootable, there is also an option of doing
730 so.
731 </li>
732 </ul>
733
734 <p>
735 You should create your partitions, not forgetting to mark at least one of them
736 for swap usage. Even though swap files are supported by Linux, it is not
737 recommended since they have some impact on the system's performance.
738 </p>
739
740 <p>
741 A frequently asked question is how to partition the disk. There is no satisfying
742 answer to that, and any attempt to obtain one will result in a cataclystic
743 series of flamewars. So we stick with one advise: it doesn't hurt to use two
744 partitions: one for the entire Linux system and one for the swap space. You'll
745 get to know your own preferences when you are more experienced with Linux.
746 </p>
747
748 </body>
749 </subsection>
750 </section>
751
752 <section>
753 <title>The make.conf file</title>
754 <subsection>
755 <title>Introduction</title>
756 <body>
757
758 <p>
759 The information given in this section is not meant to be exhaustive. We provide
760 you with the settings Gentoo supports. If you use different settings we don't
761 say that Gentoo doesn't support it, but it is possible. We list the settings by
762 subarchitecture - a set of machine instructions supported by a range of x86
763 systems. All subarchitectures are derived from older, <e>compatible</e>
764 subarchitectures. If at any time you are uncertain which one to pick, you should
765 use the oldest subarchitecture. Picking one that is more recent than the one
766 your system supports will result in segmentation faults or internal errors.
767 </p>
768
769 <p>
770 The <c>CXXFLAGS</c> setting is never shown, you should set it to the
771 <c>CFLAGS</c> one:
772 </p>
773
774 <pre caption="Setting the CXXFLAGS variable">
775 CFLAGS="..."
776 <i>CXXFLAGS="${CFLAGS}"</i>
777 </pre>
778
779 </body>
780 </subsection>
781 <subsection>
782 <title>The generic x86 subarchitecture</title>
783 <body>
784
785 <p>
786 The next settings work on every x86 system (apart from the i286 and lower):
787 </p>
788
789 <pre caption="Generic x86 settings">
790 CHOST="i386-pc-linux-gnu"
791 CFLAGS="-march=i386 -O2 -pipe"
792 </pre>
793
794 </body>
795 </subsection>
796 <subsection>
797 <title>The ix86 series</title>
798 <body>
799
800 <p>
801 The ix86 series (i486, i586, i686) all refer to Intel- and Intel compatible
802 CPUs. The i586 instruction set is also known as the <e>Pentium</e> and the i686
803 one as the <e>Pentium Pro</e>, the predecessor of the <e>Pentium MMX</e>.
804 </p>
805
806 <pre caption="ix86 Series">
807 <comment>(Substitute i486 with i586 or i686 accordingly)</comment>
808 CHOST="i486-pc-linux-gnu"
809 CFLAGS="-march=i486 -O2 -pipe"
810 </pre>
811
812 <p>
813 You can also substitute the <c>i486</c> value <e>inside the CFLAGS</e> setting
814 (and <e>not</e> the CHOST one) with <c>pentium</c> or
815 <c>pentium-pro</c> for such systems.
816 </p>
817
818 </body>
819 </subsection>
820 <subsection>
821 <title>Intel CPUs</title>
822 <body>
823
824 <p>
825 Additional support is available for various Intel CPUs, such as
826 <c>pentium-mmx</c>, <c>pentium2</c> (including Celeron), <c>pentium3</c> and
827 <c>pentium4</c>:
828 </p>
829
830 <pre caption="Intel CPU series">
831 <comment>(Substitute the pentium-mmx value in CFLAGS with the value you need)</comment>
832 CHOST="i686-pc-linux-gnu"
833 CFLAGS="-march=pentium-mmx -O2 -pipe"
834 </pre>
835
836 </body>
837 </subsection>
838 <subsection>
839 <title>AMD CPUs</title>
840 <body>
841
842 <p>
843 AMD CPU users can use any of the following settings for <c>-march</c>:
844 <c>athlon-xp</c>, <c>athlon-mp</c>, <c>athlon-tbird</c>, <c>athlon</c>,
845 <c>k6</c>, <c>k6-2</c> or <c>k6-3</c>.
846 </p>
847
848 <pre caption="AMD CPU series">
849 <comment>(Substitute the athlon-xp value in CFLAGS with the value you need)</comment>
850 CHOST="i686-pc-linux-gnu"
851 CFLAGS="-march=athlon-xp -O2 -pipe"
852 </pre>
853
854 </body>
855 </subsection>
856 </section>
857
858 <section>
859 <title>Bootloaders</title>
860 <subsection>
861 <title>GRUB</title>
862 <body>
863
864 <p>
865 The <c>grub</c> bootloader is a powerful application, able to boot various
866 operating systems, including Microsoft Windows. One of its most powerful
867 features is its ability to understand various file systems, which makes it
868 possible for <c>grub</c> to aide you in your boot setup, especially when there
869 are some issues you need to fix.
870 </p>
871
872 <p>
873 For instance, you can browse a file system looking for files, reading different
874 <c>grub</c> configurations, using various Linux kernels, locate files on the
875 system (and view their contents), but also hide partitions, boot from a network
876 using BOOTP (a simple file transfer protocol, very often used to send boot
877 images to various systems), change the partition table, ...
878 </p>
879
880 </body>
881 </subsection>
882 <subsection>
883 <title>GRUB: configuration</title>
884 <body>
885
886 <p>
887 To use <c>grub</c>, you need to install it first (from within the chrooted
888 environment):
889 </p>
890
891 <pre caption="Installing GRUB">
892 # <i>emerge grub</i>
893 </pre>
894
895 <p>
896 Next, edit (or create) the <path>/boot/grub/grub.conf</path> file.
897 We'll first give you a simple example of a <path>grub.conf</path> file:
898 </p>
899
900 <pre caption="Example grub.conf file">
901 default 0
902 timeout 5
903
904 title=Gentoo Linux
905 root (hd0,5)
906 kernel /kernel-2.6.14-gentoo-r2 root=/dev/sda8
907 </pre>
908
909 <p>
910 <c>grub</c> always starts counting from zero. For instance, to boot the first
911 entry by default, we state <c>default&nbsp;0</c>. The other line,
912 <c>timeout&nbsp;5</c>, tells GRUB to wait 5 seconds before it actually boots the
913 entry pointed to by the <c>default</c> setting.
914 </p>
915
916 <p>
917 This is of course not the most difficult part of GRUB. The entries themselves
918 however are. In the given example, there are three commands given to GRUB:
919 </p>
920
921 <ol>
922 <li>
923 The <c>title</c> entry tells GRUB what to display to the user when he is
924 asked to make his selection.
925 </li>
926 <li>
927 The <c>root</c> entry informs GRUB where his own files are stored. This is
928 <brite>not</brite> the Linux root file system (it can be, but this isn't
929 always true). If you have <path>/boot</path> (where GRUB stores its files)
930 as a separate partition, you point this directive to that partition.
931 </li>
932 <li>
933 The <c>kernel</c> entry is used by GRUB to know what Linux kernel to boot
934 (relative to the file system where <c>root</c> points to) and what boot
935 parameters to add.
936 </li>
937 </ol>
938
939 <p>
940 Many users often make a mistake when they configure the <c>root</c> parameter.
941 That's mostly because the syntax used by GRUB to identify partitions is
942 different from what they're used to work with. Its syntax is quite simple:
943 </p>
944
945 <pre caption="GRUBs partition syntax">
946 (hd<i>harddisk-#</i>,<i>partition-#</i>)
947 </pre>
948
949 <p>
950 The <c>harddisk-#</c> is the hard disk number, starting from 0. If you only have
951 one hard disk, it is <c>0</c>, regardless of where the disk is at. If you have
952 several disks, start counting from the one which your system checks first. For
953 instance, if you only have IDE disks, your system will probably start with the
954 primary master, then primary slave, then secundary master, ...
955 </p>
956
957 <p>
958 The <c>partition-#</c> is the partition number, starting from 0, and uses the
959 same logic used with the partitioning you did earlier. The first four partitions
960 (0-3) are the primary partitions. The logical partitions start from the number
961 4. So, in the above example, the GRUB files are stored on the second logical
962 partition on the first disk (also known as <path>/dev/sda6</path>).
963 </p>
964
965 <p>
966 You'll find more information about GRUB (including nicely commented
967 configuration examples) in the GRUB info pages:
968 </p>
969
970 <pre caption="Retrieving GRUB information">
971 # <i>info grub</i>
972 </pre>
973
974 </body>
975 </subsection>
976 <subsection>
977 <title>GRUB: installation</title>
978 <body>
979
980 <p>
981 You still have to install <c>grub</c> in the MBR (Master Boot Record) though, so
982 that your BIOS is able to find and start it. Otherwise, your system will inform
983 you that no operating system is found...
984 </p>
985
986 <p>
987 The recommended method uses <c>grub-install</c> to setup GRUB. Yet this tool
988 relies on some information not present on your system yet: the
989 <path>/etc/mtab</path> file, a cache file which contains information about the
990 mounted file systems. Create one that makes <c>grub-install</c> happy, you only
991 need to enter the file system for your root partition (<path>/</path>) and, if
992 you have one, for your boot partition (<path>/boot</path>):
993 </p>
994
995 <pre caption="Example /etc/mtab file">
996 /dev/sda8 / ext3 rw,noatime 0 0
997 /dev/sda6 /boot ext2 rw,noatime 0 0
998 </pre>
999
1000 <p>
1001 Then, run <c>grub-install</c> with the device that resembles your first
1002 disk that the system will boot. For instance, if that first disk is
1003 <path>/dev/sda</path>:
1004 </p>
1005
1006 <pre caption="Installing GRUB in the MBR using grub-install">
1007 <comment>(grub-install also supports the (hd0) notation)</comment>
1008 # <i>grub-install /dev/sda</i>
1009 </pre>
1010
1011 <p>
1012 The <c>grub-install</c> tool will then search through <path>/etc/mtab</path> to
1013 find out where the GRUB files are stored and install a minimal boot loader in
1014 the MBR whose only job is to find and start the rest of the GRUB files.
1015 </p>
1016
1017 <p>
1018 If you come to the conclusion that the installation has failed, you can try to
1019 perform the <c>grub-install</c> steps manually. Run <c>grub</c>, then enter the
1020 configuration commands <c>root</c> (where are the GRUB files located - same as
1021 the one in the configuration file <path>grub.conf</path>), <c>setup</c> (where
1022 to install GRUB - <path>(hd0)</path> is most likely) and <c>quit</c> (to exit
1023 the GRUB installation):
1024 </p>
1025
1026 <pre caption="Performing the GRUB installation steps manually">
1027 <comment>(The following is just an example)</comment>
1028 # <i>grub</i>
1029 grub&gt; <i>root (hd0,5)</i>
1030 grub&gt; <i>setup (hd0)</i>
1031 grub&gt; <i>quit</i>
1032 </pre>
1033
1034 </body>
1035 </subsection>
1036 </section>
1037
1038 </sections>
1039
1040
1041
1042 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-desktop-collaboration.xml
1043
1044 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-desktop-collaboration.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
1045 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-desktop-collaboration.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
1046
1047 Index: hb-desktop-collaboration.xml
1048 ===================================================================
1049 <?xml version='1.0' encoding='UTF-8'?>
1050 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
1051
1052 <!-- The content of this document is licensed under the CC-BY-SA license -->
1053 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
1054
1055 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-desktop-collaboration.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
1056
1057 <sections>
1058
1059 <version>0.0</version>
1060 <date>2005-06-19</date>
1061
1062 <section>
1063 <title>Interoperable data formats</title>
1064 <subsection>
1065 <title>Chosing the file type wisely</title>
1066 <body>
1067
1068 </body>
1069 </subsection>
1070 <subsection>
1071 <title>Converting files</title>
1072 <body>
1073
1074 </body>
1075 </subsection>
1076 <subsection>
1077 <title>Using legacy formats</title>
1078 <body>
1079
1080 </body>
1081 </subsection>
1082 </section>
1083
1084 <section>
1085 <title>Drag and drop</title>
1086 <subsection>
1087 <title>The underlying widgets</title>
1088 <body>
1089
1090 </body>
1091 </subsection>
1092 <subsection>
1093 <title>Trolltech Qt</title>
1094 <body>
1095
1096 </body>
1097 </subsection>
1098 <subsection>
1099 <title>GNOME GTK</title>
1100 <body>
1101
1102 </body>
1103 </subsection>
1104 </section>
1105
1106 <section>
1107 <title>Team collaboration</title>
1108 <subsection>
1109 <title>Concurrent access and versioning</title>
1110 <body>
1111
1112 </body>
1113 </subsection>
1114 <subsection>
1115 <title>Wrappers</title>
1116 <body>
1117
1118 <!-- Wrapper to open files (rcs, cvs, svn, ...) -->
1119
1120 </body>
1121 </subsection>
1122 <subsection>
1123 <title>Plug-ins</title>
1124 <body>
1125
1126 </body>
1127 </subsection>
1128 </section>
1129
1130 <section>
1131 <title>Message busses</title>
1132 <subsection>
1133 <title>Theory</title>
1134 <body>
1135
1136 </body>
1137 </subsection>
1138 <subsection>
1139 <title>DBus</title>
1140 <body>
1141
1142 </body>
1143 </subsection>
1144 </section>
1145
1146 </sections>
1147
1148
1149
1150 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-desktop-graphical.xml
1151
1152 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-desktop-graphical.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
1153 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-desktop-graphical.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
1154
1155 Index: hb-desktop-graphical.xml
1156 ===================================================================
1157 <?xml version='1.0' encoding='UTF-8'?>
1158 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
1159
1160 <!-- The content of this document is licensed under the CC-BY-SA license -->
1161 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
1162
1163 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-desktop-graphical.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
1164
1165 <sections>
1166
1167 <version>0.0</version>
1168 <date>2005-06-19</date>
1169
1170 <section>
1171 <title>The X server</title>
1172 <subsection>
1173 <title>Introduction</title>
1174 <body>
1175
1176 </body>
1177 </subsection>
1178 <subsection>
1179 <title>Configuration</title>
1180 <body>
1181
1182 </body>
1183 </subsection>
1184 </section>
1185
1186 <section>
1187 <title>Desktop Environments</title>
1188 <subsection>
1189 <title>KDE</title>
1190 <body>
1191
1192 </body>
1193 </subsection>
1194 <subsection>
1195 <title>GNOME</title>
1196 <body>
1197
1198 </body>
1199 </subsection>
1200 <subsection>
1201 <title>XFCE</title>
1202 <body>
1203
1204 </body>
1205 </subsection>
1206 </section>
1207
1208 <section>
1209 <title>Window Managers</title>
1210 <subsection>
1211 <title>WMs are no desktop environments</title>
1212 <body>
1213
1214 </body>
1215 </subsection>
1216 <subsection>
1217 <title>Fluxbox</title>
1218 <body>
1219
1220 </body>
1221 </subsection>
1222 </section>
1223
1224 </sections>
1225
1226
1227
1228 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-desktop-plugnplay.xml
1229
1230 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-desktop-plugnplay.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
1231 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-desktop-plugnplay.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
1232
1233 Index: hb-desktop-plugnplay.xml
1234 ===================================================================
1235 <?xml version='1.0' encoding='UTF-8'?>
1236 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
1237
1238 <!-- The content of this document is licensed under the CC-BY-SA license -->
1239 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
1240
1241 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-desktop-plugnplay.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
1242
1243 <sections>
1244
1245 <version>0.0</version>
1246 <date>2005-06-19</date>
1247
1248 <section>
1249 <title>Identify your needs</title>
1250 <subsection>
1251 <title>Nothing is automated at first</title>
1252 <body>
1253 </body>
1254 </subsection>
1255 </section>
1256
1257 <section>
1258 <title>Removable media</title>
1259 </section>
1260
1261 <section>
1262 <title>Network detection</title>
1263 </section>
1264
1265 <section>
1266 <title>Data synchronisation</title>
1267 </section>
1268
1269 <section>
1270 <title>Power consumption</title>
1271 </section>
1272
1273 </sections>
1274
1275
1276
1277 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-enterprise-backups.xml
1278
1279 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-enterprise-backups.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
1280 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-enterprise-backups.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
1281
1282 Index: hb-enterprise-backups.xml
1283 ===================================================================
1284 <?xml version='1.0' encoding='UTF-8'?>
1285 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
1286
1287 <!-- The content of this document is licensed under the CC-BY-SA license -->
1288 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
1289
1290 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-enterprise-backups.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
1291
1292 <sections>
1293
1294 <version>0.0</version>
1295 <date>2005-06-19</date>
1296
1297 <section>
1298 <title>Purpose of your files</title>
1299 <subsection>
1300 <title>Know what to backup</title>
1301 <body>
1302
1303 </body>
1304 </subsection>
1305 <subsection>
1306 <title>User versus system files</title>
1307 <body>
1308
1309 </body>
1310 </subsection>
1311 <subsection>
1312 <title>Immediately recoverable or not?</title>
1313 <body>
1314
1315 </body>
1316 </subsection>
1317 </section>
1318
1319 <section>
1320 <title>Backing up on a per-file basis</title>
1321 </section>
1322
1323 <section>
1324 <title>Backing up file systems</title>
1325 </section>
1326
1327 <section>
1328 <title>Backing up an entire system</title>
1329 </section>
1330
1331 <section>
1332 <title>Backup strategies</title>
1333 <subsection>
1334 <title>Full backups</title>
1335 <body>
1336
1337 </body>
1338 </subsection>
1339 <subsection>
1340 <title>Incremental backups</title>
1341 <body>
1342
1343 </body>
1344 </subsection>
1345 <subsection>
1346 <title>Individual backups</title>
1347 <body>
1348
1349 </body>
1350 </subsection>
1351 <subsection>
1352 <title>Backup locations</title>
1353 <body>
1354
1355 </body>
1356 </subsection>
1357 <subsection>
1358 <title>Verify the backups</title>
1359 <body>
1360
1361 </body>
1362 </subsection>
1363 </section>
1364
1365 </sections>
1366
1367
1368
1369 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-enterprise-lvm.xml
1370
1371 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-enterprise-lvm.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
1372 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-enterprise-lvm.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
1373
1374 Index: hb-enterprise-lvm.xml
1375 ===================================================================
1376 <?xml version='1.0' encoding='UTF-8'?>
1377 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
1378
1379 <!-- The content of this document is licensed under the CC-BY-SA license -->
1380 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
1381
1382 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-enterprise-lvm.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
1383
1384 <sections>
1385
1386 <version>0.0</version>
1387 <date>2005-06-19</date>
1388
1389 <section>
1390 <title>Logical Volume Management</title>
1391 <subsection>
1392 <title>Introduction</title>
1393 <body>
1394
1395 </body>
1396 </subsection>
1397 <subsection>
1398 <title>Physical, group and logical</title>
1399 <body>
1400
1401 </body>
1402 </subsection>
1403 <subsection>
1404 <title>Configuring the kernel</title>
1405 <body>
1406
1407 </body>
1408 </subsection>
1409 <subsection>
1410 <title>Installing the tools</title>
1411 <body>
1412
1413 </body>
1414 </subsection>
1415 </section>
1416
1417 <section>
1418 <title>Configuring LVM</title>
1419 <subsection>
1420 <title>Creating the meta devices</title>
1421 <body>
1422
1423 </body>
1424 </subsection>
1425 <subsection>
1426 <title>Choosing a file system</title>
1427 <body>
1428
1429 <!-- Think file system resizing -->
1430
1431 </body>
1432 </subsection>
1433 <subsection>
1434 <title>Automatical activation during system boot</title>
1435 <body>
1436
1437 </body>
1438 </subsection>
1439 </section>
1440
1441 <section>
1442 <title>Maintaining LVM</title>
1443 <subsection>
1444 <title>Adding or removing physical extends</title>
1445 <body>
1446
1447 </body>
1448 </subsection>
1449 <subsection>
1450 <title>Creating a snapshot</title>
1451 <body>
1452
1453 </body>
1454 </subsection>
1455 </section>
1456
1457 </sections>
1458
1459
1460
1461 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-enterprise-printing.xml
1462
1463 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-enterprise-printing.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
1464 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-enterprise-printing.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
1465
1466 Index: hb-enterprise-printing.xml
1467 ===================================================================
1468 <?xml version='1.0' encoding='UTF-8'?>
1469 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
1470
1471 <!-- The content of this document is licensed under the CC-BY-SA license -->
1472 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
1473
1474 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-enterprise-printing.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
1475
1476 <sections>
1477
1478 <version>0.0</version>
1479 <date>2005-06-19</date>
1480
1481 <section>
1482 <title></title>
1483 </section>
1484
1485 </sections>
1486
1487
1488
1489 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-enterprise-swraid.xml
1490
1491 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-enterprise-swraid.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
1492 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-enterprise-swraid.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
1493
1494 Index: hb-enterprise-swraid.xml
1495 ===================================================================
1496 <?xml version='1.0' encoding='UTF-8'?>
1497 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
1498
1499 <!-- The content of this document is licensed under the CC-BY-SA license -->
1500 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
1501
1502 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-enterprise-swraid.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
1503
1504 <sections>
1505
1506 <version>0.0</version>
1507 <date>2005-06-19</date>
1508
1509 <section>
1510 <title>Software RAID</title>
1511 <subsection>
1512 <title>Introduction</title>
1513 <body>
1514
1515 <!-- Supports partitions as well, we'll only use disks since
1516 partition crash = disk crash -->
1517
1518 </body>
1519 </subsection>
1520 <subsection>
1521 <title>Advantages</title>
1522 <body>
1523
1524 </body>
1525 </subsection>
1526 <subsection>
1527 <title>Disadvantages</title>
1528 <body>
1529
1530 </body>
1531 </subsection>
1532 </section>
1533
1534 <section>
1535 <title>Setting up software RAID</title>
1536 <subsection>
1537 <title>Installing the tools</title>
1538 <body>
1539
1540 </body>
1541 </subsection>
1542 <subsection>
1543 <title>Using software RAID</title>
1544 <body>
1545
1546 </body>
1547 </subsection>
1548 <subsection>
1549 <title>Software RAID for root file system</title>
1550 <body>
1551
1552 </body>
1553 </subsection>
1554 </section>
1555
1556 <section>
1557 <title>Managing software RAID</title>
1558 <subsection>
1559 <title>Adding and removing disks</title>
1560 <body>
1561
1562 </body>
1563 </subsection>
1564 </section>
1565
1566 <section>
1567 <title>Further resources</title>
1568 <subsection>
1569 <title>Online</title>
1570 <body>
1571
1572 </body>
1573 </subsection>
1574 </section>
1575
1576 </sections>
1577
1578
1579
1580 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-install-bootprocess.xml
1581
1582 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-install-bootprocess.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
1583 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-install-bootprocess.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
1584
1585 Index: hb-install-bootprocess.xml
1586 ===================================================================
1587 <?xml version='1.0' encoding='UTF-8'?>
1588 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
1589
1590 <!-- The content of this document is licensed under the CC-BY-SA license -->
1591 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
1592
1593 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-install-bootprocess.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
1594
1595 <sections>
1596
1597 <version>0.0</version>
1598 <date>2005-06-19</date>
1599
1600 <section>
1601 <title>Loading the kernel in memory</title>
1602 <subsection>
1603 <title>Introduction to bootloaders</title>
1604 <body>
1605
1606 <p>
1607 When your system is powered on, your system will first perform some sanity
1608 checks against its own components. When all tests succeed, the system loads the
1609 kernel image which you have built previously in memory. This action is performed
1610 by the boot loader.
1611 </p>
1612
1613 <p>
1614 Since loading files in memory is very architecture specific, you should consult
1615 the architecture specific information for your architecture now to find out
1616 how to install and configure a boot loader.
1617 </p>
1618
1619 </body>
1620 </subsection>
1621 </section>
1622
1623 <section>
1624 <title>Configuring the kernel</title>
1625 <subsection>
1626 <title>Kernel parameters</title>
1627 <body>
1628
1629 <p>
1630 Inside the configuration file of your boot loader you can enter specific
1631 instructions for the Linux kernel. These parameters allow you to tweak and
1632 change the kernel behaviour at boot-time.
1633 </p>
1634
1635 </body>
1636 </subsection>
1637 <subsection>
1638 <title>Important parameters</title>
1639 <body>
1640
1641 <p>
1642 <b>Root File System Location</b>
1643 </p>
1644
1645 <p>
1646 The first parameter we'll discuss is the <c>root</c> parameter. This tells the
1647 Linux kernel where the root file system of the Linux system is located. You
1648 really should provide this parameter as the Linux kernel will otherwise not know
1649 where the Linux installation is.
1650 </p>
1651
1652 <pre caption="Example root parameter">
1653 <comment>(The root file system in this example is at /dev/sda3)</comment>
1654 root=/dev/sda3
1655 </pre>
1656
1657 <p>
1658 <e>However</e>, you can only specify the root file system <e>if</e> you are
1659 certain that the kernel image (not through separate kernel modules, but really
1660 inside the kernel image) has support for:
1661 </p>
1662
1663 <ul>
1664 <li>
1665 the device controller that governs your disk (for instance the SATA
1666 controller if you use SATA disks), and
1667 </li>
1668 <li>
1669 the file system that the partition uses (for instance ext3 support)
1670 </li>
1671 </ul>
1672
1673 <p>
1674 If this isn't the case, then you have probably made an initialized RAM disk
1675 which allows the Linux kernel to load the appropriate kernel modules in memory
1676 before it continues with the Gentoo boot-up. Users of the <c>genkernel</c> tool
1677 have indeed made such an <e>initrd</e> file, perhaps without their knowledge.
1678 </p>
1679
1680 <p>
1681 To use such an initrd file, you need to specify <path>/dev/ram0</path> as the
1682 root file system and the real root file system with the <c>real_root=</c>
1683 parameter<sup>1</sup>. It is also adviseable to inform the kernel about the
1684 amount of memory you want to reserve for the RAM disk.
1685 </p>
1686
1687 <p>
1688 You also need to tell the boot loader where the initrd file is. This is boot
1689 loader specific so we don't mention that here - consult the information for your
1690 boot loader for more information.
1691 </p>
1692
1693 <p>
1694 For instance:
1695 </p>
1696
1697 <pre caption="Example kernel parameters for initrd users">
1698 root=/dev/ram0 ramdisk=8192 real_root=/dev/sda3
1699 </pre>
1700
1701 <p>
1702 <b>The Initial Program</b>
1703 </p>
1704
1705 <p>
1706 When the kernel has finished its own procedures and mounted the root file
1707 system, it hands over the control to the system to the <c>init</c> process. This
1708 process then takes care of the rest of the boot sequence. By default, the kernel
1709 looks for this tool at <path>/sbin/init</path>. You can however define another
1710 initial program if you like using the <c>init=</c> parameter.
1711 </p>
1712
1713 <p>
1714 For instance, to get a Unix shell immediately, use <c>init=/bin/sh</c>. This
1715 is often used to allow you to remount your partitions and make fixes that
1716 prevent your system from booting regularly (or when you forgot your root
1717 password).
1718 </p>
1719
1720 <p>
1721 <b>Single User Mode</b>
1722 </p>
1723
1724 <p>
1725 To inform the system to boot up in the single user mode (which is the
1726 <c>single</c> run level we've talked about in the previous chapter), simply add
1727 an <c>S</c>.
1728 </p>
1729
1730 <note>
1731 <sup>1</sup> The <c>real_root</c> parameter is not really a kernel parameter but
1732 is intended for a script inside the initrd file. However, the parameter is used
1733 just like kernel parameters which is why we list it here.
1734 </note>
1735
1736 </body>
1737 </subsection>
1738 <subsection>
1739 <title>Hardware related parameters</title>
1740 <body>
1741
1742 <p>
1743 <b>ACPI Support</b>
1744 </p>
1745
1746 <p>
1747 Not all hardware devices are conform the ACPI specification, even though they
1748 think they are. This sometimes results in unstable behaviour of the device, or
1749 of other devices influenced by the device.
1750 </p>
1751
1752 <p>
1753 You can specifically disable ACPI support using the <c>acpi=off</c> parameter.
1754 </p>
1755
1756 <p>
1757 <b>Disabling IDE Controllers</b>
1758 </p>
1759
1760 <p>
1761 When one of your IDE disks is broken, your system might not be able to boot even
1762 though the system itself is stored on a disk controlled by a different IDE
1763 controller. If this is the case, you can explicitly disable a controller using
1764 <c>ide0=noprobe</c>.
1765 </p>
1766
1767 <p>
1768 <b>Disabling Multi-Processing</b>
1769 </p>
1770
1771 <p>
1772 If you have an SMP system (Synchronous MultiProcessor), you can tell the Linux
1773 kernel to only use one CPU by setting <c>nosmp</c>.
1774 </p>
1775
1776 <p>
1777 <b>Disabling USB Support</b>
1778 </p>
1779
1780 <p>
1781 To disable USB support, use <c>nousb</c>
1782 </p>
1783
1784 </body>
1785 </subsection>
1786 <subsection>
1787 <title>More parameters</title>
1788 <body>
1789
1790 <p>
1791 More extensive information about available kernel parameters can be found at
1792 <path>/usr/src/linux/Documentation/kernel-parameters.txt</path>.
1793 </p>
1794
1795 </body>
1796 </subsection>
1797 </section>
1798
1799 <section>
1800 <title>The boot sequence</title>
1801 <subsection>
1802 <title>Init</title>
1803 <body>
1804
1805 <p>
1806 When the Linux kernel has almost finished with its boot process (where it
1807 initializes the memory structures, loads drivers, etc.) it mounts the root file
1808 system (given by the <c>root</c> parameter) and then starts the <c>init</c>
1809 process (which is default at <c>/sbin/init</c> but can be configured).
1810 </p>
1811
1812 <p>
1813 The <c>init</c> process is responsible for the rest of the system boot sequence.
1814 It looks for the <path>/etc/inittab</path> file which contains the instructions
1815 how to further boot the system. At first, it fires up the command that is
1816 assigned to the <e>boot</e> and <e>bootwait</e> entries which are, in Gentoo's
1817 case:
1818 </p>
1819
1820 <pre caption="Bootwait entry">
1821 rc::bootwait:/sbin/rc boot
1822 </pre>
1823
1824 <p>
1825 Where <c>init</c> is rather distribution-independant (and quite simple in its
1826 use too), <c>/sbin/rc</c> is quite distribution-specific, especially the
1827 <c>rc</c> that Gentoo offers. Its task is to make sure that the scripts in a run
1828 level are started well or take appropriate action if they aren't.
1829 </p>
1830
1831 <p>
1832 Once the boot runlevel has succeeded, the <c>init</c> process goes on by
1833 executing the command for the specified runlevel. By default, the runlevel
1834 entered at the <e>initdefault</e> part of <path>/etc/inittab</path> is started,
1835 but you can ask <c>init</c> to start a different run level by specifying its
1836 corresponding number as a boot parameter (entirely similar to how you add kernel
1837 parameters).
1838 </p>
1839
1840 <pre caption="Default run level and corresponding command">
1841 id:3:initdefault:
1842 <comment>(...)</comment>
1843 l3:3:wait:/sbin/rc default
1844 </pre>
1845
1846 <p>
1847 When this run level has also finished starting its required scripts, the
1848 <c>init</c> process starts the terminal processes at the various ttys (the
1849 Alt+F# locations where you get a logon prompt):
1850 </p>
1851
1852 <pre caption="Example terminal processes for Alt-F1 till F6">
1853 c1:12345:respawn:/sbin/agetty 38400 tty1 linux
1854 c2:2345:respawn:/sbin/agetty 38400 tty2 linux
1855 c3:2345:respawn:/sbin/agetty 38400 tty3 linux
1856 c4:2345:respawn:/sbin/agetty 38400 tty4 linux
1857 c5:2345:respawn:/sbin/agetty 38400 tty5 linux
1858 c6:2345:respawn:/sbin/agetty 38400 tty6 linux
1859 </pre>
1860
1861 </body>
1862 </subsection>
1863 <subsection>
1864 <title>Managing runlevels</title>
1865 <body>
1866
1867 <p>
1868 You can manage the runlevels using the <c>rc-update</c> tool. Its syntax is
1869 quite simple:
1870 </p>
1871
1872 <pre caption="rc-update syntax">
1873 # <i>rc-update &lt;add | del&gt; &lt;initscript&gt; &lt;runlevel&gt;</i>
1874 </pre>
1875
1876 <p>
1877 All the init scripts that you can use are located inside
1878 <path>/etc/init.d</path>. You will most likely use at least the runlevels
1879 <e>boot</e> and <e>default</e>.
1880 </p>
1881
1882 <ul>
1883 <li>
1884 The <e>boot</e> runlevel makes sure that the most important init scripts,
1885 which are required for every succesful system boot, are started properly.
1886 Any init script that is added to the boot runlevel may not require any
1887 service offered by the init scripts in the default runlevel (as it is
1888 started later). It may depend on other scripts in the boot runlevel though,
1889 Gentoo's <c>rc</c> is smart enough to tackle dependencies.
1890 </li>
1891 <li>
1892 The <e>default</e> runlevel contains all init scripts which should be
1893 started during normal system operation. This is the runlevel where you will
1894 probably add most of the init scripts.
1895 </li>
1896 </ul>
1897
1898 </body>
1899 </subsection>
1900 </section>
1901
1902
1903 </sections>
1904
1905
1906
1907 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-install-building.xml
1908
1909 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-install-building.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
1910 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-install-building.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
1911
1912 Index: hb-install-building.xml
1913 ===================================================================
1914 <?xml version='1.0' encoding='UTF-8'?>
1915 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
1916
1917 <!-- The content of this document is licensed under the CC-BY-SA license -->
1918 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
1919
1920 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-install-building.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
1921
1922 <sections>
1923
1924 <version>0.0</version>
1925 <date>2005-06-19</date>
1926
1927 <section>
1928 <title>Configuring the Gentoo environment</title>
1929 <subsection>
1930 <title>The build configuration file</title>
1931 <body>
1932
1933 <p>
1934 As Gentoo is primarily a <e>build the software</e>-distribution it requires a
1935 bit more configuration directives than most other distributions. The first and
1936 foremost configuration file is <path>/etc/make.conf</path> (remember, we are now
1937 inside the chrooted environment - outside it would be
1938 <path>/mnt/gentoo/etc/make.conf</path>). Open up the file with <c>nano</c>, an
1939 easy to use editor. We add the <c>-w</c> option to turn off word wrapping since
1940 this might harm the configuration itself.
1941 </p>
1942
1943 <pre caption="Editing /etc/make.conf">
1944 # <i>nano -w /etc/make.conf</i>
1945 </pre>
1946
1947 <p>
1948 Inside this configuration file you can define various configuration directives
1949 that affect Portage' behavior or the software building process. We will only
1950 discuss a few here - others exist as well, but are not that important at the
1951 beginning of the installation procedure.
1952 </p>
1953
1954 <p>
1955 Each directive is a variable with some specific content. Variables are often
1956 used throughout Linux (and this is even more so within Gentoo). To set a certain
1957 variable, you define its name followed by an equal sign and then the content of
1958 the variable.
1959 </p>
1960
1961 <pre caption="Example variable definition">
1962 MYVARIABLE="value of the variable"
1963 </pre>
1964
1965 </body>
1966 </subsection>
1967 </section>
1968
1969 <section>
1970 <title>Compiler directives</title>
1971 <subsection>
1972 <title>The compiler flags</title>
1973 <body>
1974
1975 <p>
1976 The first directives that we'll discuss are the compiler flags. A compiler is a
1977 tool that builds executable code from source code and one of the benefits of
1978 using Gentoo is that you can define how the compiler should behave. More
1979 precisely, you can tell the compiler to use certain optimizations on your
1980 system. Although a compiler can take a lot more options than just optimization
1981 options, most Gentoo users only use the optimization options.
1982 </p>
1983
1984 <p>
1985 The GNU Compiler Collection, the compiler toolchain used by most architectures,
1986 supports more than hundred optimization flags. Some of them are interesting,
1987 others hardly used. Some of them are harmless, others quite intrusive. We must
1988 warn you that <brite>using anything beyond the Gentoo-recommended optimization
1989 flags is not supported</brite>.
1990 </p>
1991
1992 </body>
1993 </subsection>
1994 <subsection>
1995 <title>CFLAGS and CXXFLAGS</title>
1996 <body>
1997
1998 <p>
1999 The <c>CFLAGS</c> and <c>CXXFLAGS</c> directives are immediately passed to the
2000 C and C++ compilers respectively as command line arguments. They are often used
2001 to inform the compiler about the destination architecture and optimization
2002 settings.
2003 </p>
2004
2005 <p>
2006 Quite often, the <c>CXXFLAGS</c> is told to contain the same setting as the
2007 <c>CFLAGS</c> variable:
2008 </p>
2009
2010 <pre caption="Setting CXXFLAGS">
2011 CXXFLAGS="${CFLAGS}"
2012 </pre>
2013
2014 <p>
2015 The GNU Compiler Collection has lots of possible directives. The first directive
2016 that most users will want to set is the destination CPU type. This is
2017 configurable with the <c>-march=&lt;CPU-TYPE&gt;</c> setting. For most people,
2018 finding out what CPU-TYPE to pick is quite a challenge and indeed, it is not
2019 possible to document what you should use. What we can tell you is that it is
2020 safe to pick an older type while a more recent type can cause malformed software
2021 on your system.
2022 </p>
2023
2024 <p>
2025 To obtain a list of valid <c>-march=</c> settings, please consult the GCC Manual
2026 or the GCC Info pages:
2027 </p>
2028
2029 <pre caption="Consulting the gcc info pages">
2030 # <i>info gcc</i>
2031 Select <i>GCC Command Options</i>,
2032 <i>Submodel Options</i>,
2033 and pick your architecture.
2034 </pre>
2035
2036 <p>
2037 A second often used compiler setting is the optimization setting. By adding a
2038 <c>-O</c> followed by a number you can ask the compiler to optimize the code in
2039 various degrees. Gentoo recommends <c>-O2</c> (that is "O" for "Optimization",
2040 not "0" like in "007"). The highest possible value is <c>-O3</c> - if you want
2041 even stronger optimization settings you'll need to add them to the variable.
2042 </p>
2043
2044 <p>
2045 If you don't want to optimize the code for speed but for size, use <c>-Os</c>.
2046 </p>
2047
2048 <p>
2049 The third option we add is <c>-pipe</c> which tells GCC that it can use process
2050 pipes instead of temporary files for communication between the various stages of
2051 compilation. This considerably improves compiling performance on systems with
2052 sufficient memory.
2053 </p>
2054
2055 </body>
2056 </subsection>
2057 <subsection>
2058 <title>CHOST</title>
2059 <body>
2060
2061 <p>
2062 The <c>CHOST</c> variable is an identifier for the target host for which the
2063 compiler should build software. It is vital that this variable identifies your
2064 system, but it is even more vital that you <brite>do not edit this variable if
2065 you are not performing a bootstrap installation</brite>. If you alter this
2066 variable, any toolchain rebuild will cause the toolchain to be in an
2067 intermediate state, possibly producing malfunctioning libraries.
2068 </p>
2069
2070 </body>
2071 </subsection>
2072 <subsection>
2073 <title>So your settings would be ...</title>
2074 <body>
2075
2076 <p>
2077 At the end of this handbook you will find architecture-specific chapters. For
2078 each architecture, precise (and valid) examples for various systems are listed
2079 so that you can pick one of those if the above explanation isn't sufficient.
2080 </p>
2081
2082 </body>
2083 </subsection>
2084 </section>
2085
2086 <section>
2087 <title>Gentoo directives</title>
2088 <subsection>
2089 <title>USE</title>
2090 <body>
2091
2092 <p>
2093 The <c>USE</c> variable is probably the most important setting of all inside
2094 <path>/etc/make.conf</path>. With this variable you define what purposes your
2095 system serves. Each flag set in the <c>USE</c> variable enables or disables
2096 specific support in one or more packages.
2097 </p>
2098
2099 <p>
2100 The idea is pretty simple: if your system has a DVD reader, you'll probably set
2101 <c>dvd</c> as one of the <c>USE</c> flags to add support for DVD readers. When
2102 you want to play DVDs as well, <c>dvdread</c> should be added. Writing DVDs will
2103 require the <c>dvdr</c> setting.
2104 Similar, if your system will host an IBM DB2 server (or any application you'll
2105 use connects to such a server) you'll probably want <c>db2</c> as a <c>USE</c>
2106 flag.
2107 </p>
2108
2109 <p>
2110 A list of all possible USE flags can be found in
2111 <path>/usr/portage/profiles/use.desc</path>. This is a plain text file which is
2112 also reproduced online at the <uri
2113 link="http://www.gentoo.org/dyn/use-index.xml">Gentoo web site</uri>. But
2114 starting to dig through this list is cumbersome as many USE flags will have no
2115 clear description (which is <e>not</e> because we want to remain vague on the
2116 subject, but because the USE flag is either used by different applications for
2117 slightly different purposes, or because the topic itself is too technical).
2118 </p>
2119
2120 <p>
2121 To resolve this issue, Gentoo provides you with a default <c>USE</c> setting. To
2122 find out what the default setting is, run <c>emerge&nbsp;--info</c> and filter
2123 out the line that starts with <c>USE</c>:
2124 </p>
2125
2126 <pre caption="Checking the default USE setting">
2127 # <i>emerge --info | grep -E ^USE</i>
2128 </pre>
2129
2130 <p>
2131 Any setting you place in <path>/etc/make.conf</path> is <e>added</e> to the USE
2132 flag - you don't substitute the default setting but embrace and extend it.
2133 Therefore you need to place a hyphen in front of the USE flags you do not want.
2134 For instance, the <c>arts</c> USE flag (which enables support for the aRts sound
2135 daemon) might be set by default. To deselect it, use <c>-arts</c>. As an example
2136 we'll select support for the Enlightened Sound Daemon and disable support for
2137 aRts:
2138 </p>
2139
2140 <pre caption="Example USE flag">
2141 USE="-arts esd"
2142 </pre>
2143
2144 <p>
2145 There are also USE flags that are specific to a single package. Such USE flags
2146 are called <e>local USE flags</e>. Although you can set those USE flags in
2147 <path>/etc/make.conf</path>, it is wiser to enable or disable those USE flags on
2148 a per-package basis. We'll refrain from explaining how to do this here - you
2149 don't need to set USE flags during the installation, Portage is intelligent
2150 enough to handle USE flag changes after an installation.
2151 </p>
2152
2153 <p>
2154 Before we go on with the next setting there are four remarks we want to make
2155 regarding USE flags:
2156 </p>
2157
2158 <ol>
2159 <li>
2160 Changing the USE flag in this stage of the installation might result in
2161 Portage downloading tools you don't want to install at this point yet.
2162 A frequently occurring issue is where a USE flag combination triggers the
2163 installation of <c>kde-base/kdebase</c> which is a quite huge build. You
2164 should consider altering the USE flags at any point later and ask Portage
2165 to just rebuild those tools that are affected by the USE flag change.
2166 </li>
2167 <li>
2168 USE flags allow Gentoo to make decisions regarding <e>optional</e> support
2169 and features. If any feature or support is not optional but mandatory or
2170 inherent to the package, the respective USE flags are ignored. A good
2171 example here is the <c>qt</c> USE flag. If a package can (but doesn't have
2172 to) support the Qt Graphical Widget library, it uses the <c>qt</c> USE flag
2173 to decide whether or not to build in support for Qt. If the package requires
2174 Qt to function, it'll install Qt regardless of USE flag.
2175 </li>
2176 <li>
2177 Some packages override the default USE flag settings (not the one you
2178 specify in <path>/etc/make.conf</path> though) if you install them. For
2179 instance, the <c>tetex</c> USE flag is not set by default, but when you
2180 install the TeX distribution, Gentoo will automatically enable the
2181 <c>tetex</c> USE flag so that other programs can now be built with
2182 TeX support if they can handle it.
2183 </li>
2184 <li>
2185 If you want to hard-set a custom USE flag listing regardless of the default
2186 USE flags, you can start with deactivating all USE flags and then list those
2187 you want to enable. This can be accomplished using
2188 <c>USE="-*&nbsp;flag1&nbsp;flag2&nbsp;..."</c>.
2189 </li>
2190 </ol>
2191
2192 </body>
2193 </subsection>
2194 <subsection>
2195 <title>The Gentoo Portage repository</title>
2196 <body>
2197
2198 <p>
2199 Any Gentoo package information is stored inside an ebuild. That is a small text
2200 file which contains some metadata about the package (like the description, home
2201 page, source code location, ...) and instructions for Gentoo on how to
2202 succesfully build and deploy the package on your system.
2203 </p>
2204
2205 <p>
2206 The complete set of all supported ebuilds is stored inside the Gentoo Portage
2207 Tree, also known as the Gentoo Portage Repository. You will find a snapshot of
2208 this repository at <path>/usr/portage</path> where all the ebuilds are
2209 categorised by function and name. Gentoo Portage, Gentoo's software management
2210 tool, builds decisions such as "What packages should be updated" or "What
2211 software is available for installation" based on the content of the repository
2212 snapshot <e>on your disk</e>.
2213 </p>
2214
2215 <p>
2216 It is therefore quite important that you regularly update the snapshot on your
2217 disk with the latest Gentoo Portage Repository content released by the Gentoo
2218 Developers. By default, Gentoo Portage chooses a random mirror<sup>1</sup> but
2219 it is more efficient to use a mirror that is either close to you or fastest for
2220 your environment. The <c>SYNC</c> variable is where you put the location of the
2221 Gentoo Portage Repository where you want to take a snapshot of.
2222 </p>
2223
2224 <p>
2225 Because you can't know what mirrors are available, Gentoo provides an easy to
2226 remember naming scheme for the mirrors. The default setting picks a random
2227 mirror. The country-based still picks a random mirror, but only of a pool of
2228 mirrors inside that country. The single mirror syntax always picks the mirror
2229 you define.
2230 </p>
2231
2232 <pre caption="Mirror syntax">
2233 <comment>(Default)</comment> rsync://rsync.gentoo.org/gentoo-portage
2234 <comment>(Country-based)</comment> rsync://rsync.${COUNTRYCODE}.gentoo.org/gentoo-portage
2235 <comment>(Single mirror)</comment> rsync://rsync#.${COUNTRYCODE}.gentoo.org/gentoo-portage
2236 </pre>
2237
2238 <p>
2239 An example setting for <path>/etc/make.conf</path> could be:
2240 </p>
2241
2242 <pre caption="Setting the SYNC variable">
2243 SYNC="rsync://rsync3.us.gentoo.org/gentoo-portage"
2244 </pre>
2245
2246 <note>
2247 <sup>1</sup> A mirror is a location on a server on the Internet where the exact
2248 content of another server location is replicated. The idea behind mirrors is to
2249 decrease the stress put on a single server by allowing clients to retrieve the
2250 data from various sources.
2251 </note>
2252
2253 </body>
2254 </subsection>
2255 <subsection>
2256 <title>Gentoo source code location</title>
2257 <body>
2258
2259 <p>
2260 Most Gentoo ebuilds inform Gentoo about the original location of the source
2261 code. This could be a mirror set (like with the many sourceforge hosted
2262 projects) or a fixed URL. Some ebuilds can't point to this location for whatever
2263 possible reason. If this is the case, the source code is pushed on the Gentoo
2264 mirrors in a specific location called the <path>distfiles/</path> directory.
2265 </p>
2266
2267 <p>
2268 The <c>GENTOO_MIRRORS</c> variable declares what mirrors Gentoo Portage should
2269 check to find the required source code. Each mirror declared in this variable
2270 should point to the parent location of the mirror (i.e. not the
2271 <path>distfiles/</path> directory but one level higher). A list of possible
2272 mirrors can be found <uri
2273 link="http://www.gentoo.org/main/en/mirrors.xml">online</uri>.
2274 </p>
2275
2276 </body>
2277 </subsection>
2278 </section>
2279
2280 <section>
2281 <title>Bootstrapping</title>
2282 <subsection>
2283 <title>What is bootstrapping?</title>
2284 <body>
2285
2286 <p>
2287 A bootstrap procedure prepares a system with the c library and compiler
2288 specifically for a certain environment. This procedure is very sensitive for
2289 problems which is why you shouldn't touch the bootstrap script (called
2290 <path>bootstrap.sh</path> inside <path>/usr/portage/scripts</path>).
2291 </p>
2292
2293 <p>
2294 And because you shouldn't really touch it, you also don't really need to perform
2295 a bootstrap yourself: if you are using a stage-2 or stage-3 tarball, the
2296 bootstrapping has already been done. If you do want to rebuild your system (for
2297 instance, because you altered your compiler directives), you should follow the
2298 method explained next.
2299 </p>
2300
2301 </body>
2302 </subsection>
2303 <subsection>
2304 <title>Bootstrapping your system from stage 3</title>
2305 <body>
2306
2307 <p>
2308 If you are performing a bootstrap installation where you don't alter the
2309 <path>bootstrap.sh</path> script, the procedure should perform the following
2310 steps:
2311 </p>
2312
2313 <ol>
2314 <li>Use your current toolchain to rebuild itself using the new settings</li>
2315 <li>
2316 Use the new toolchain to rebuild itself again. Unlike the previous time,
2317 your toolchain is now built, not only with the new settings, but also by a
2318 toolchain built with those settings.
2319 </li>
2320 <li>
2321 Use the new toolchain to build the rest of the packages using the new
2322 settings.
2323 </li>
2324 <li>
2325 Rebuild the packages again to make sure that all packages are built against
2326 rebuilt libraries. If you don't have any circular dependencies, this won't
2327 be necessary, but as you will probably not know if this is the
2328 case<sup>1</sup> it is better to perform this step anyway.
2329 </li>
2330 </ol>
2331
2332 <p>
2333 These steps can all be performed using the following commands:
2334 </p>
2335
2336 <pre caption="Bootstrapping the system">
2337 # <i>emerge -e system</i>
2338 # <i>emerge -e world</i>
2339 # <i>emerge -e world</i>
2340 </pre>
2341
2342 <p>
2343 To be honest, the last <c>emerge -e world</c> will rebuild some tools that don't
2344 need to be rebuilt: the <e>world</e> collection (all packages that should be
2345 installed on your system) contains the <e>system</e> collection (all packages
2346 that are vital for your system) as well, so that the system collection is built
2347 three times where it only needs to be built twice.
2348 </p>
2349
2350 <p>
2351 Since in this stage of the installation you don't have any differences between
2352 the system collection and the world one, performing <c>emerge -e system</c>
2353 twice instead of the system-world-world combination is sufficient.
2354 </p>
2355
2356 <note>
2357 <sup>1</sup> Although Portage can detect circular dependencies, it only detects
2358 those on metadata level. That means that it depends on the content of the
2359 ebuild, written by the package maintainer, and not on the <e>real</e>
2360 dependencies that the package has (the maintainer can always miss one or two
2361 that are almost always met) so Portage doesn't know that it needs to rebuild the
2362 dependency before the package.
2363 </note>
2364
2365 </body>
2366 </subsection>
2367 <subsection>
2368 <title>Bootstrapping your system from stage 1</title>
2369 <body>
2370
2371 <p>
2372 When you need to bootstrap your system different from the procedure set forth in
2373 the <path>bootstrap.sh</path> script, you can use any tarball you like,
2374 including a stage1. You can base your bootstrap procedure from the one
2375 documented in the <path>bootstrap.sh</path> script but you don't have to.
2376 However, make sure that the toolchain you build it built with Portage (using
2377 <c>emerge</c>), otherwise the Portage database will be inconsistent.
2378 </p>
2379
2380 <pre caption="Bootstrapping the toolchain">
2381 # <i>/usr/portage/scripts/bootstrap.sh</i>
2382 </pre>
2383
2384 </body>
2385 </subsection>
2386 </section>
2387
2388 <section>
2389 <title>Progressing from a bootstrapped system</title>
2390 <subsection>
2391 <title>Installing core system packages</title>
2392 <body>
2393
2394 <p>
2395 A bootstrapped system doesn't offer much beyond some libraries and compiler. You
2396 will need additional core system packages before you can actually work on your
2397 system. Gentoo Portage obtains a list of core system packages from your profile
2398 and installs them on your system after building them with the bootstrapped
2399 toolchain.
2400 </p>
2401
2402 <p>
2403 The list of core system packages is available as the <e>system</e> keyword for
2404 <c>emerge</c>. <c>emerge</c> is Gentoo's command-line interface to Gentoo
2405 Portage, Gentoo's software management system.
2406 </p>
2407
2408 <p>
2409 If you have bootstrapped your system previously, or you are installing Gentoo
2410 through a stage-2 tarball, or you are installing Gentoo through a stage-3
2411 tarball but want to rebuild your packages with the configuration directives
2412 you've set in your <path>make.conf</path> previously, run the following command
2413 to build all core system packages for your profile:
2414 </p>
2415
2416 <pre caption="Building core system packages">
2417 # <i>emerge -e system</i>
2418 </pre>
2419
2420 <p>
2421 Remember, most users will not need to perform this step: the stage3 tarball
2422 provided by Gentoo already contains a prepared system.
2423 </p>
2424
2425 </body>
2426 </subsection>
2427 </section>
2428
2429 </sections>
2430
2431
2432
2433 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-install-configure.xml
2434
2435 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-install-configure.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
2436 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-install-configure.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
2437
2438 Index: hb-install-configure.xml
2439 ===================================================================
2440 <?xml version='1.0' encoding='UTF-8'?>
2441 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
2442
2443 <!-- The content of this document is licensed under the CC-BY-SA license -->
2444 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
2445
2446 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-install-configure.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
2447
2448 <sections>
2449
2450 <version>0.0</version>
2451 <date>2005-06-19</date>
2452
2453 <section>
2454 <title>File system information</title>
2455 <subsection>
2456 <title>The fstab file</title>
2457 <body>
2458
2459 <p>
2460 <path>fstab</path> stands for <e>file system table</e>; when you would take a
2461 look at a fully configured <path>/etc/fstab</path> file you can easily see why:
2462 </p>
2463
2464 <pre caption="Example fstab file">
2465 /dev/sda8 / ext3 defaults,noatime 0 0
2466 /dev/sda5 none swap sw 0 0
2467 /dev/sda6 /boot ext2 noauto,noatime 0 0
2468 /dev/sda7 /home ext3 defaults,noatime,noexec 0 0
2469 /dev/cdroms/cdrom0 /media/cdrom auto defaults,user,noauto 0 0
2470
2471 none /proc proc defaults 0 0
2472 none /dev/shm tmpfs defaults 0 0
2473 </pre>
2474
2475 <p>
2476 Each line declares what storage location (first field) is mounted at a certain
2477 location (second field) using a file system (third field) and mounted with
2478 one or more options (fourth field). The last two numbers are not that actively
2479 used anymore so you can safely set them to <path>0 0</path>.
2480 </p>
2481
2482 <p>
2483 It is vital that your <path>/etc/fstab</path> file is a reflection of your
2484 environment. By default, Gentoo offers an almost empty <path>/etc/fstab</path>
2485 file with illegal storage locations (such as <path>/dev/BOOT</path> and
2486 <path>/dev/ROOT</path>). Any user should change the file, otherwise the system
2487 might not boot.
2488 </p>
2489
2490 <p>
2491 The <path>fstab</path> file is used during the system boot procedure to find out
2492 what file systems should be mounted, but also during regular system operation.
2493 For instance, when you insert a CD in your CD-ROM player, Linux ought to know
2494 where it should mount the CD so that you (and perhaps other users) can reach it.
2495 </p>
2496
2497 </body>
2498 </subsection>
2499 <subsection>
2500 <title>Mount options</title>
2501 <body>
2502
2503 <p>
2504 The mount options which you can place in the fourth field in
2505 <path>/etc/fstab</path> are well documented in the <c>mount</c> manual page:
2506 </p>
2507
2508 <pre caption="Reading the mount manual page">
2509 # <i>man mount</i>
2510 </pre>
2511
2512 <p>
2513 Each set of mount options is documented in a section pertaining to the file
2514 system used (for instance, ext2, reiserfs, ...). Some of them are available to
2515 all file systems, such as <c>defaults</c>, <c>auto</c> or <c>noauto</c>
2516 (automatically mount file system or not).
2517 </p>
2518
2519 </body>
2520 </subsection>
2521 <subsection>
2522 <title>Special file systems</title>
2523 <body>
2524
2525 <p>
2526 Some lines in the <path>/etc/fstab</path> file have a <e>none</e> as the storage
2527 location. Such file systems are <e>pseudo file systems</e> and do not require
2528 any storage on the disk.
2529 </p>
2530
2531 <ul>
2532 <li>
2533 The <e>proc</e> file system represents kernel information (like
2534 statistics, hardware settings, process information, memory data, ...) as
2535 regular files on the file system. You can read from those files to obtain
2536 the information you need, but these files are never actually written to
2537 disk. Every time you read them, the information is recalculated.
2538 </li>
2539 <li>
2540 The <e>tmpfs</e> file system is storage located entirely in memory. Although
2541 it is extremely fast, it is also volatile meaning that it loses its content
2542 when you reboot the system. The <e>tmpfs</e> file system is often used for
2543 temporary file storage (hence the name), but in the previously given
2544 <path>/etc/fstab</path> example it serves as a storage point for certain
2545 applications who want to share memory without using the shared memory
2546 functionality offered by the c library.
2547 </li>
2548 <li>
2549 The <e>sysfs</e> file system (not shown in the example as Gentoo mounts
2550 <path>/sys</path> automatically when it is present) is the successor of the
2551 proc file system. It servers the same purpose, but is restructured so it
2552 scales well in larger environments.
2553 </li>
2554 </ul>
2555
2556 </body>
2557 </subsection>
2558 <subsection>
2559 <title>Edit /etc/fstab</title>
2560 <body>
2561
2562 <p>
2563 Don't forget to edit <path>/etc/fstab</path> to suit your environment. You can
2564 use <c>nano</c> to open the file:
2565 </p>
2566
2567 <pre caption="Editing /etc/fstab">
2568 # <i>nano -w /etc/fstab</i>
2569 </pre>
2570
2571 </body>
2572 </subsection>
2573 </section>
2574
2575 <section>
2576 <title>System logging</title>
2577 <subsection>
2578 <title>Purpose of logging</title>
2579 <body>
2580
2581 <p>
2582 The system logger is an important <e>daemon</e> on the system. A daemon is a
2583 tool that runs in the background; you can't work with it interactively.
2584 </p>
2585
2586 <p>
2587 The job of the system logger is to obtain information from various processes
2588 (and in certain configurations even from remote processes) like logon events,
2589 web server requests, security events, kernel messages, ... and write them down
2590 in separate files: log files.
2591 </p>
2592
2593 <p>
2594 Such log files can then be used to resolve issues on the machine (hardware
2595 errors are usually quite verbose), generate usage statistics (for instance for
2596 web servers), backtrack logon events (for security purposes), etc.
2597 </p>
2598
2599 </body>
2600 </subsection>
2601 <subsection>
2602 <title>Installing a system logger</title>
2603 <body>
2604
2605 <p>
2606 Gentoo provides various system loggers, each of them with their own pros and
2607 cons: <c>metalog</c>, <c>newsyslog</c>, <c>socklog</c>, <c>sysklogd</c> and
2608 <c>syslog-ng</c>. Which one you choose is up to you, but it is quite important
2609 that you pick one: if you do not install a system logger, all events will be
2610 displayed on your terminal, cluttering up your screen instead of nicely
2611 archiving the events in files.
2612 </p>
2613
2614 <pre caption="Installing a system logger">
2615 # <i>emerge &lt;systemlogger&gt;</i>
2616 </pre>
2617
2618 <p>
2619 Next you'll need to add the system logger of your choice to the default run
2620 level:
2621 </p>
2622
2623 <pre caption="Adding the system logger to the default runlevel">
2624 <comment>(First find out how the init script is called)</comment>
2625 # <i>ls /etc/init.d</i>
2626
2627 <comment>(Then, add it to the default runlevel)</comment>
2628 # <i>rc-update add &lt;initscript&gt; default</i>
2629 </pre>
2630
2631 </body>
2632 </subsection>
2633 </section>
2634
2635 <section>
2636 <title>System information</title>
2637 <subsection>
2638 <title>Root password</title>
2639 <body>
2640
2641 <p>
2642 With the <c>passwd</c> tool you can set or change any user account password. At
2643 first, you need to set the <e>root</e> user his password. Run <c>passwd</c> and
2644 enter the new password. The tool will ask you to confirm the password by
2645 reentering it after which the password is updated.
2646 </p>
2647
2648 <pre caption="Setting the root user password">
2649 # <i>passwd</i>
2650 </pre>
2651
2652 <p>
2653 You might want to verify that your keyboard settings are correct before you
2654 enter the root password. If the keyboard settings deviate a bit from what you
2655 expect them to be, your root password might actually differ from the one you
2656 thought you have entered. As the <c>passwd</c> tool does not echo the characters
2657 on screen, you can not verify the password by just looking at it.
2658 </p>
2659
2660 <p>
2661 On most Gentoo installations, the password itself will be stored in a hashed
2662 format in <path>/etc/shadow</path> which is only readable by the root user.
2663 Hashed means that the password itself is not shown, but a mathematical result
2664 based on the password. A hash gives a theoretically unique value based on
2665 certain input (here: the password) but from which you can not revert (i.e. you
2666 can not use the hash to obtain the password).
2667 </p>
2668
2669 <p>
2670 The <path>/etc/passwd</path> file, which contains user account information, is
2671 readable by any user. Note though that this file does not always contain your
2672 user account information - larger networks will probably store this information
2673 on a central server (for instance an LDAP server). Where to look for the account
2674 information is stored in <path>/etc/nsswitch.conf</path> at the <c>passwd</c>
2675 field.
2676 </p>
2677
2678 </body>
2679 </subsection>
2680 <subsection>
2681 <title>User account</title>
2682 <body>
2683
2684 <p>
2685 Next, it is <e>heavily</e> recommended to create a user account for daily tasks.
2686 The root user is all-powerful; any mistyped command can severely damage your
2687 system. Running your applications as the root user also exposes you to security
2688 breaches - although not many Linux viruses exist, the damage that a virus can do
2689 depends on the privileges it obtains, and it obtains the privileges from the
2690 tool whose flaw it has exploited.
2691 </p>
2692
2693 <p>
2694 To create a user, use <c>useradd</c> and pass on the <c>-m</c> option so that
2695 the user's home directory (<path>/home/username</path> for the <e>username</e>
2696 user) is created. Also add the groups to which you want to make the user part
2697 of:
2698 </p>
2699
2700 <pre caption="Creating a user">
2701 # <i>useradd -m -g users -G wheel,audio,cdrom,games,users,portage john</i>
2702 </pre>
2703
2704 <p>
2705 Most groups are self-explanatory, the <e>wheel</e> and <e>portage</e> groups
2706 might need a small introduction.
2707 </p>
2708
2709 <p>
2710 The <e>wheel</e> group contains all users who can run <c>su</c> to switch from
2711 one user to another (including the root user). Only put trusted users in this
2712 group. A better alternative to the <e>wheel</e> access (since it still requires
2713 the user to know the passwords of the accounts it wants to switch to) is to use
2714 <c>sudo</c> of which an excellent <uri
2715 link="http://www.gentoo.org/doc/en/sudo-guide.xml">guide</uri> exists on the
2716 Gentoo web site.
2717 </p>
2718
2719 <p>
2720 The <e>portage</e> group contains all users who should be allowed to run
2721 <c>emerge</c> and other portage-related tools for <e>querying</e> the database.
2722 This doesn't allow those users to install or uninstall software though, you
2723 still need to be root for that, or have equivalent access.
2724 </p>
2725
2726 </body>
2727 </subsection>
2728 </section>
2729
2730 <section>
2731 <title>Networking information</title>
2732 <subsection>
2733 <title>Introduction</title>
2734 <body>
2735
2736 <p>
2737 To configure your wired network, Gentoo uses the <path>/etc/conf.d/net</path>
2738 file. Its syntax might seem a bit strange at first - you'll find
2739 well-documented examples at <path>/etc/conf.d/net.example</path> - but allows
2740 you to configure your entire network easily.
2741 </p>
2742
2743 </body>
2744 </subsection>
2745 <subsection>
2746 <title>Automatic IP retrieval</title>
2747 <body>
2748
2749 <p>
2750 If your network interface(s) should retrieve their configuration automatically
2751 (using DHCP) you don't need to do anything in this file - you can leave it
2752 empty. You will find that Gentoo gives a cosmetical warning that it assumes DHCP
2753 since you haven't provided anything. If you don't want any warning, explicitly
2754 enable DHCP for each interface:
2755 </p>
2756
2757 <pre caption="Specifying DHCP for eth0">
2758 config_eth0=( "dhcp" )
2759 </pre>
2760
2761 <p>
2762 Don't forget to install a DHCP client. Available ones are <c>dhcpcd</c>,
2763 <c>dhclient</c> (in the <c>dhcp</c> package), <c>udhcpc</c> (in the <c>udhcp</c>
2764 package) and <c>pump</c>.
2765 </p>
2766
2767 <pre caption="Installing a DHCP client">
2768 # <i>emerge dhcpcd</i>
2769 </pre>
2770
2771 <p>
2772 If you want to pass additional options to the DHCP client (we refer you to the
2773 man page of each DHCP client for more information about the available options)
2774 use the <c>&lt;client&gt;_&lt;interface&gt;</c> directive. For instance, to set
2775 the time out to 10 seconds (the default for most clients is 1 minute) for the
2776 <c>dhcpcd</c> client:
2777 </p>
2778
2779 <pre caption="Setting the DHCP time out">
2780 dhcpcd_eth0="-t 10"
2781 </pre>
2782
2783 </body>
2784 </subsection>
2785 <subsection>
2786 <title>Static IP address</title>
2787 <body>
2788
2789 <p>
2790 If your interface should be configured with a static IP address, you need to
2791 provide the following information:
2792 </p>
2793
2794 <ul>
2795 <li>the IP address, </li>
2796 <li>
2797 the gateway (where the network packets for different networks should hop
2798 to first) address, and
2799 </li>
2800 <li>
2801 the domain name server(s) (which translate hostnames to IP addresses)
2802 </li>
2803 </ul>
2804
2805 <p>
2806 For instance, suppose that your IP address is 192.168.0.2 and you're part of a
2807 network where all IP addresses start with 192.168.0, then you specify:
2808 </p>
2809
2810 <pre caption="eth0 configuration for a static IP address in /etc/conf.d/net">
2811 config_eth0=( "192.168.0.2/24" )
2812 </pre>
2813
2814 <p>
2815 The <c>/24</c> tells the configuration that the first three numbers (each number
2816 uses 8 bits, so 24 bits in total) define the network and the last number the
2817 host. If all of your IP addresses start with 192.168, then the configuration
2818 would read <c>192.168.0.2/16</c>.
2819 </p>
2820
2821 <p>
2822 Next, we need to define where all network packets should go to if they aren't
2823 meant for the internal network: the <e>gateway</e>. For instance, if 192.168.0.1
2824 would be the gateway:
2825 </p>
2826
2827 <pre caption="Adding routing information">
2828 route_eth0=( "default via 192.168.0.1" )
2829 </pre>
2830
2831 <p>
2832 The last setting defines where the domain name service servers are. These DNS
2833 addresses translate hostnames (such as <c>www.google.com</c>) to an IP address
2834 (such as <c>66.249.93.104</c>). Save <path>/etc/conf.d/net</path> first and then
2835 open <path>/etc/resolv.conf</path>:
2836 </p>
2837
2838 <pre caption="Example /etc/resolv.conf">
2839 <comment># Substitute the IP addresses with your DNS server addresses
2840 # Contact your network administrator or ISP if you don't know what to enter.</comment>
2841 nameserver 195.130.130.133
2842 nameserver 195.130.131.10
2843 </pre>
2844
2845 </body>
2846 </subsection>
2847 <subsection>
2848 <title>The hosts file</title>
2849 <body>
2850
2851 <p>
2852 The <path>/etc/hosts</path> file is a small table the system uses to make
2853 immediate translations between hostnames and IP addresses. This file should
2854 at least contain one line:
2855 </p>
2856
2857 <pre caption="Important line in /etc/hosts">
2858 127.0.0.1 localhost
2859 </pre>
2860
2861 <p>
2862 All other lines should be set under that line using the following syntax:
2863 </p>
2864
2865 <pre caption="Syntax for /etc/hosts">
2866 &lt;ip address&gt; &lt;fully qualified hostname&gt; &lt;aliases&gt;
2867 </pre>
2868
2869 <p>
2870 For instance, if you want to assing the host name <c>gentoobox</c> to your eth0
2871 interface address (for instance, 192.168.0.2):
2872 </p>
2873
2874 <pre caption="Example /etc/hosts line">
2875 192.168.0.2 gentoobox
2876 </pre>
2877
2878 <p>
2879 If you use a domainname for your network (like <c>boxes</c>, but it can also be
2880 a real reserved domain name like <c>company.com</c>), you should set it like so:
2881 </p>
2882
2883 <pre caption="Example /etc/hosts line for named network">
2884 192.168.0.2 gentoobox.boxes gentoobox
2885 </pre>
2886
2887 <p>
2888 Next to the host names assigned to your interfaces, you can also add in the IP
2889 address and hostname information for the other hosts on your system if they
2890 aren't known to the DNS servers you've specified (in
2891 <path>/etc/resolv.conf</path>, perhaps automatically with DHCP).
2892 </p>
2893
2894 </body>
2895 </subsection>
2896 <subsection>
2897 <title>Automatically starting the network at boot</title>
2898 <body>
2899
2900 <p>
2901 With the configuration in place, your next step would be to assure that the
2902 configuration is loaded when you boot your system. Go to
2903 <path>/etc/init.d</path> and make symbolic link from the <path>net.lo</path>
2904 init script to the interfaces you need. For instance, if you have one interface
2905 (called <c>eth0</c>):
2906 </p>
2907
2908 <pre caption="Automatically starting the eth0 interface at boot">
2909 # <i>cd /etc/init.d</i>
2910 # <i>ln -s net.lo net.eth0</i>
2911 # <i>rc-update add net.eth0 default</i>
2912 </pre>
2913
2914 <p>
2915 These commands might need some explanation:
2916 </p>
2917
2918 <ul>
2919 <li>
2920 The <c>ln</c> command makes a named link to a file (in this case,
2921 <path>net.lo</path>) called <path>net.eth0</path>. This file shouldn't exist
2922 before you run this command. There are two types of links one can make:
2923 <ul>
2924 <li>
2925 <e>symbolic</e> links merely point to a file or directory. If you remove
2926 the destination (like <path>net.lo</path>) then the file is really gone
2927 - the symbolic link will point to a non-existing file. You can create a
2928 symbolic link using the <c>-s</c> option to the <c>ln</c> command.
2929 </li>
2930 <li>
2931 <e>hard</e> links don't just point to a file, they are actually a second
2932 name for the same file. If you remove the destination file, the hard
2933 link still contains the content of that file. More technically, if you
2934 create a file, you actually reserve some space on a device and create a
2935 hard link to it. <c>ln</c> just makes a second hard link to it.
2936 </li>
2937 </ul>
2938 The advantage to using hard links should be obvious - if you remove one, the
2939 content still remains accessible through the other link. However, hard links
2940 have one disadvantage to symbolic links: they can not point to files on a
2941 different file system. Symbolic links can.
2942 </li>
2943 <li>
2944 The <c>rc-update</c> command configures the boot sequence Gentoo Linux goes
2945 through when starting the system. By using the <c>add</c> option, you tell
2946 the system that the given script (in this case, <path>net.eth0</path>)
2947 should be added to the <c>default</c> runlevel.
2948 <ul>
2949 <li>
2950 A <e>runlevel</e> is a name for a certain set of scripts that need
2951 to be started in order for the system to function. By default, Gentoo
2952 calls its default runlevel ... default. Others are <c>nonetwork</c>
2953 (which doesn't start network related scripts), <c>boot</c> (important
2954 scripts that <e>must</e> be started) and <c>single</c> (where only those
2955 scripts are started that are needed for an administrator to be able to
2956 fix a broken system).
2957 </li>
2958 <li>
2959 The script <path>net.eth0</path> is an <e>init script</e>. Such scripts
2960 are written using a specific syntax and reside in
2961 <path>/etc/init.d</path>.
2962 </li>
2963 </ul>
2964 </li>
2965 </ul>
2966
2967 </body>
2968 </subsection>
2969 </section>
2970
2971 <section>
2972 <title>Various configuration settings</title>
2973 <subsection>
2974 <title>The /etc/rc.conf file</title>
2975 <body>
2976
2977 <p>
2978 The <path>/etc/rc.conf</path> file contains system-wide settings for the entire
2979 system. You will find lots of variables already defined in the file, accompanied
2980 with lots of documentation.
2981 </p>
2982
2983 <p>
2984 The first variable you'll see is the <c>UNICODE</c> variable. Unicode (also
2985 known as UTF-8) is the new standard for character encoding. Character encoding
2986 tells the system what sequence of bits resembles what character. Well-known
2987 encodings are ASCII, ISO-8859-1, etc. The UTF-8 or Unicode encoding is important
2988 because it is able to provide encodings for every possible language (including
2989 special characters like €, but also chinese characters, etc.).
2990 </p>
2991
2992 <p>
2993 If you are interested in using Unicode on your system, please read the <uri
2994 link="http://www.gentoo.org/doc/en/utf-8.xml">UTF-8 Guide</uri> on the Gentoo
2995 web site.
2996 </p>
2997
2998 <p>
2999 Another variable of importance is the <c>DISPLAYMANAGER</c>. A display manager
3000 is a tool which shows a graphical logon screen after having booted your system.
3001 Most display managers even allow you to automatically log on as a specific user.
3002 If you want to use a display manager, you need to install one, add the
3003 <c>xdm</c> init script to the default runlevel and make sure that this variable
3004 points to the display manager of your choice.
3005 </p>
3006
3007 <p>
3008 Together with the <c>DISPLAYMANAGER</c> variable you'll find the <c>XSESSION</c>
3009 one. This tells the display manager what graphical environment it should load by
3010 default if the user didn't specify one explicitly. Well-known graphical
3011 environments are KDE, GNOME, XFCE, fluxbox, ... For specific instructions on how
3012 this variable influences the graphical logon process please read the comments in
3013 the <path>rc.conf</path> file.
3014 </p>
3015
3016 </body>
3017 </subsection>
3018 <subsection>
3019 <title>Select keyboard language</title>
3020 <body>
3021
3022 <p>
3023 If you aren't using a US Qwerty keyboard, you'll need to edit the
3024 <path>/etc/conf.d/keymaps</path> file to tell the Gentoo system what keyboard
3025 layout it should use.
3026 </p>
3027
3028 </body>
3029 </subsection>
3030 </section>
3031
3032 </sections>
3033
3034
3035
3036 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-install-kernel.xml
3037
3038 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-install-kernel.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
3039 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-install-kernel.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
3040
3041 Index: hb-install-kernel.xml
3042 ===================================================================
3043 <?xml version='1.0' encoding='UTF-8'?>
3044 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
3045
3046 <!-- The content of this document is licensed under the CC-BY-SA license -->
3047 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
3048
3049 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-install-kernel.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
3050
3051 <sections>
3052
3053 <version>0.0</version>
3054 <date>2005-06-19</date>
3055
3056 <section>
3057 <title>Kernel configuration procedure</title>
3058 <subsection>
3059 <title>Introduction</title>
3060 <body>
3061
3062 <p>
3063 The Linux kernel is the core of the Linux Operating System. It takes care of
3064 resource management (processes, memory, ...), hardware support, networking, file
3065 systems, ... and is therefore one of the most vital parts of the system.
3066 </p>
3067
3068 <p>
3069 Gentoo offers various kernel sources. Each source is based on the <e>vanilla</e>
3070 kernel source (the one developed by the main kernel developers) and adds in
3071 additional features, hardware support, experimental features, etc. You can pick
3072 whatever kernel source you like for your system (as long as your profile allows
3073 it of course).
3074 </p>
3075
3076 <p>
3077 When the source code is installed on your system, you still need to configure
3078 and build the kernel before you can use it. The kernel configuration is the
3079 trickiest part since a mistake can lead to an unusable kernel, but trying to
3080 build in too much leads to irrelevant code in your kernel which you'll never
3081 use, take space and might even cause troubles later when there is a kernel bug
3082 in that code.
3083 </p>
3084
3085 <p>
3086 Luckily, Gentoo offers a tool called <c>genkernel</c> which configures, builds
3087 and installs a kernel automatically. This might be of interest to you if you
3088 have no idea about configuring kernels, you want a basic kernel configuration
3089 for all your systems, or you require a kernel that can deal with a majority of
3090 hardware.
3091 </p>
3092
3093 <p>
3094 After configuring the kernel, it is built into an image which your computer
3095 loads in memory when you boot the system.
3096 </p>
3097
3098 </body>
3099 </subsection>
3100 <subsection>
3101 <title>Picking a kernel source</title>
3102 <body>
3103
3104 <p>
3105 Gentoo maintains a list of <uri link="/doc/en/gentoo-kernel.xml">supported
3106 kernel sources</uri> which contains a small introduction about the kernel tree.
3107 You can make your choice from this guide, although you can very well pick a
3108 fairly generic one right now and use a different kernel later on - the kernel is
3109 completely interchangeable on a Linux environment so you don't have to decide on
3110 the kernel right here, right now.
3111 </p>
3112
3113 <p>
3114 The most default, generic kernel source is the <c>vanilla-sources</c>. This
3115 kernel tree is the one released by the Linux Kernel Developers, unmodified.
3116 Gentoo offers a patched version itself called <c>gentoo-sources</c>. Using these
3117 sources has the advantage that Gentoo can release a new kernel tree whenever it
3118 deems it necessary.
3119 </p>
3120
3121 <p>
3122 If you have made your choice, install the kernel sources using <c>emerge</c>.
3123 Just add the kernel source name as an argument to <c>emerge</c> and
3124 <c>emerge</c> will download and extract the kernel sources on your system:
3125 </p>
3126
3127 <pre caption="Installing the kernel sources">
3128 # <i>emerge &lt;kernelsources&gt;</i>
3129 </pre>
3130
3131 </body>
3132 </subsection>
3133 </section>
3134
3135 <section>
3136 <title>Building the kernel</title>
3137 <subsection>
3138 <title>Automated build process</title>
3139 <body>
3140
3141 <p>
3142 If you don't want all the hassle surrounding the kernel installation, you can
3143 install <c>genkernel</c> and then have <c>genkernel</c> configure, build and
3144 install the Linux kernel for you. This process is quite simple:
3145 </p>
3146
3147 <pre caption="Using genkernel">
3148 # <i>emerge genkernel</i>
3149 # <i>genkernel all</i>
3150 </pre>
3151
3152 <p>
3153 However, <c>genkernel</c> is a lot more powerful than this. With this tool, you
3154 can maintain your personal kernel configuration and let the tool rebuild newer
3155 kernel versions with your settings. You can enable specific features (like
3156 bootsplash, lvm2, evms2, raid, ...) and tweak the compiler settings used during
3157 the kernel build process (which <e>differs</e> from the settings placed in
3158 <path>make.conf</path>!).
3159 </p>
3160
3161 <p>
3162 For more information on <c>genkernel</c>, please read the <uri
3163 link="/doc/en/genkernel.xml">Genkernel Guide</uri>.
3164 </p>
3165
3166 </body>
3167 </subsection>
3168 <subsection>
3169 <title>Manual build process</title>
3170 <body>
3171
3172 <p>
3173 The manual build process consists out of three steps:
3174 </p>
3175
3176 <ul>
3177 <li>configuring the kernel, </li>
3178 <li>building the kernel, and</li>
3179 <li>installing the kernel</li>
3180 </ul>
3181
3182 <p>
3183 To configure the kernel, go to <path>/usr/src/linux</path> and run
3184 <c>make&nbsp;menuconfig</c>. You will get a dialog-based interface where you can
3185 configure your kernel.
3186 </p>
3187
3188 <p>
3189 Configuring a kernel isn't hard if you know what hardware you have and what
3190 features you want - but then again, if all this is new to you, finding out what
3191 features you want or need can be time consuming.
3192 </p>
3193
3194 <p>
3195 The kernel configuration dialogs has a good <e>Help</e> built-in which even
3196 includes search functionality (very useful if you want to search for the
3197 location of that network card you have but can't seem to place in the
3198 configuration structure).
3199 </p>
3200
3201 <p>
3202 It is not our intention to describe the kernel configuration process for
3203 you - there are several guides about this topic on the Internet and if you
3204 really aren't able to succesfully configure a kernel, use <c>genkernel</c> for
3205 the time being.
3206 </p>
3207
3208 <p>
3209 When you're finished with the configuration part, build the kernel by running
3210 <c>make</c> (hold on, we'll do this together with the next step). <c>make</c>
3211 is a tool that reads in a script called <path>Makefile</path>
3212 in the directory you are in. <path>Makefile</path>s are very powerful when used
3213 for building software since they are able to only (re)build those parts that
3214 need to be (re)build instead of building the entire software over and over
3215 again.
3216 </p>
3217
3218 <p>
3219 To finish the kernel build process, you need to copy over the resulting kernel
3220 image to the boot partition and install the kernel modules you have selected.
3221 The location of the kernel image depends on the architecture you're using. The
3222 following table gives an overview of possible kernel images with the commands
3223 needed to build and install the kernel:
3224 </p>
3225
3226 <table>
3227 <tr>
3228 <th>Architecture</th>
3229 <th>Image Location</th>
3230 <th>Build Command</th>
3231 </tr>
3232 <tr>
3233 <ti>alpha</ti>
3234 <ti><path>arch/alpha/boot/vmlinux.gz</path></ti>
3235 <ti>
3236 <c>make &amp;&amp; make modules_install &amp;&amp; make boot</c>
3237 </ti>
3238 </tr>
3239 <tr>
3240 <ti>amd64</ti>
3241 <ti><path>arch/x86_64/boot/bzImage</path></ti>
3242 <ti><c>make &amp;&amp; make modules_install</c></ti>
3243 </tr>
3244 <tr>
3245 <ti>hppa</ti>
3246 <ti><path>vmlinux</path></ti>
3247 <ti><c>make &amp;&amp; make modules_install</c></ti>
3248 </tr>
3249 <tr>
3250 <ti>mips</ti>
3251 <ti><path>vmlinux</path></ti>
3252 <ti><c>make &amp;&amp; make modules_install</c></ti>
3253 </tr>
3254 <tr>
3255 <ti>ppc Apple/IBM</ti>
3256 <ti><path>vmlinux</path></ti>
3257 <ti><c>make &amp;&amp; make modules_install</c></ti>
3258 </tr>
3259 <tr>
3260 <ti>ppc Pegasos</ti>
3261 <ti><path>arch/ppc/boot/images/zImage.chrp</path></ti>
3262 <ti><c>make &amp;&amp; make modules_install</c></ti>
3263 </tr>
3264 <tr>
3265 <ti>ppc64</ti>
3266 <ti><path>vmlinux</path></ti>
3267 <ti><c>make &amp;&amp; make modules_install</c></ti>
3268 </tr>
3269 <tr>
3270 <ti>sparc32</ti>
3271 <ti><path>arch/sparc/boot/image</path></ti>
3272 <ti><c>make &amp;&amp; make modules_install</c></ti>
3273 </tr>
3274 <tr>
3275 <ti>sparc64</ti>
3276 <ti><path>arch/sparc64/boot/image</path></ti>
3277 <ti><c>make &amp;&amp; make image modules_install</c></ti>
3278 </tr>
3279 <tr>
3280 <ti>x86</ti>
3281 <ti><path>arch/i386/boot/bzImage</path></ti>
3282 <ti><c>make &amp;&amp; make modules_install</c></ti>
3283 </tr>
3284 </table>
3285
3286 <p>
3287 The build command is divided in two parts - the <c>make</c> instruction we've
3288 discussed before and a specific instruction to finish off with some additional
3289 steps. The separation is made with the <c>&amp;&amp;</c> string. This is a
3290 specific operator to the shell, telling the system to continue with the next
3291 command <e>if</e> the previous one didn't fail. A similar operator is <c>||</c>
3292 which tells the system to execute the next command if the previous one
3293 <e>did</e> fail.
3294 </p>
3295
3296 <p>
3297 Now, execute the build command to create the kernel image. When the process has
3298 finished, copy over the file to <path>/boot</path>. It is wise to give the
3299 kernel image file a good name in <path>/boot</path> so that you can distinguish
3300 one kernel from another. A common used naming scheme is
3301 <path>kernel-&lt;version&gt;</path>. The next example copies over
3302 an x86 kernel image to <path>/boot/kernel-2.6.12-gentoo-r6</path>:
3303 </p>
3304
3305 <pre caption="Copying over the kernel image to /boot">
3306 # <i>cp arch/i386/boot/bzImage /boot/kernel-2.6.12-gentoo-r6</i>
3307 </pre>
3308
3309 </body>
3310 </subsection>
3311 </section>
3312
3313 </sections>
3314
3315
3316
3317 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-install-media.xml
3318
3319 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-install-media.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
3320 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-install-media.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
3321
3322 Index: hb-install-media.xml
3323 ===================================================================
3324 <?xml version='1.0' encoding='UTF-8'?>
3325 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
3326
3327 <!-- The content of this document is licensed under the CC-BY-SA license -->
3328 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
3329
3330 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-install-media.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
3331
3332 <sections>
3333
3334 <version>0.0</version>
3335 <date>2005-06-19</date>
3336
3337 <section>
3338 <title>About the Gentoo releases</title>
3339 <subsection>
3340 <title>Gentoo versions</title>
3341 <body>
3342
3343 <p>
3344 One of Gentoo's major advantages is that it does not really know
3345 <e>versions</e>. Once installed, you have a Gentoo installation, not a Gentoo
3346 2005.1 or 2004.3 installation. Therefore you will continue to benefit from the
3347 Gentoo development with every system update you perform - there is no need to
3348 run through a specific upgrade procedure every time Gentoo makes a new release.
3349 </p>
3350
3351 <p>
3352 Yes, Gentoo does <e>release</e> often - twice a year to be exact. Such a release
3353 brings you an up to date installation CD with the latest hardware drivers and
3354 features that might improve your installation experience. It can also contain a
3355 set of prebuilt packages, helping you to install Gentoo quickly and efficiently.
3356 </p>
3357
3358 <p>
3359 When you hear someone talk about a specific Gentoo release (<e>Gentoo 2005.1</e>
3360 for instance) they are talking about the installation CDs and set of prebuilt
3361 packages, not about the state Gentoo is at at a certain point in time. Gentoo
3362 evolves on a daily basis, but can't develop, package, test and release new
3363 installation CDs and prebuilt packages every time Gentoo changes...
3364 </p>
3365
3366 </body>
3367 </subsection>
3368 <subsection>
3369 <title>Gentoo release media</title>
3370 <body>
3371
3372 <p>
3373 By default, Gentoo releases installation CDs: bootable CDs allowing you to
3374 immediately boot in a Gentoo Linux environment containing the necessary tools to
3375 help you install Gentoo on your system. Such CDs shouldn't be read from any
3376 other operating system but immediately booted from.
3377 </p>
3378
3379 <p>
3380 For each architecture (see the note below) you will find two installation CDs:
3381 a <e>minimal</e> installation CD and a <e>universal</e> one. They both contain
3382 the same hardware support drivers (Linux kernel and additional kernel modules)
3383 and tools; the universal installation CD however also contains the necessary
3384 files to allow any user to install Gentoo without requiring a working Internet
3385 connection.
3386 </p>
3387
3388 <p>
3389 It is important to understand that:
3390 </p>
3391
3392 <ol>
3393 <li>
3394 the Gentoo installation procedure is a <e>manual</e> procedure, requiring
3395 lots of input from the administrator
3396 </li>
3397 <li>
3398 there is support for a networkless installation <e>if</e> you use the
3399 universal installation CD and the stage-3 installation approach (which will
3400 be discussed later), but that Gentoo should not be considered if you don't
3401 have a working Internet connection
3402 </li>
3403 </ol>
3404
3405 <p>
3406 You will also find a <e>packages</e> CD. As the name implies, this CD contains
3407 prebuilt packages you can quickly install to get a working Gentoo installation
3408 without going through much software building.
3409 </p>
3410
3411 <p>
3412 <e>However</e>, these software packages are only available for those who perform
3413 a networkless installation and are not maintained by the Gentoo project at all:
3414 they are only meant for use during the initial installation of Gentoo. Once
3415 installed, your system is not different from any other Gentoo installation.
3416 </p>
3417
3418 <p>
3419 This part will not talk about the networkless installation. We have decided to
3420 postpone any information regarding prebuilt packages to a later stage because of
3421 the following reasons:
3422 </p>
3423
3424 <ul>
3425 <li>
3426 The networkless installation instructions are limiting the user's choices.
3427 Only a fraction of the software which a user can (and should) install during
3428 installation is available and the user might not be able to deviate from the
3429 standard installation routine.
3430 </li>
3431 <li>
3432 The set of prebuilt software is quickly outdated. As Gentoo does not offer a
3433 continuously maintained repository of prebuilt packages, any user who does a
3434 networkless installation might be facing an installation with insecure
3435 software for the time between the (quick) installation and (slower)
3436 upgrading.
3437 </li>
3438 <li>
3439 The available prebuilt software differs from architecture to architecture,
3440 from release to release. If one wants to have pseudo-static documentation on
3441 the Gentoo installation procedure, such variable information should be
3442 eliminated.
3443 </li>
3444 </ul>
3445
3446 <note>
3447 An architecture is a family of CPUs who support the same instructions. The most
3448 known architecture in the desktop world is <e>x86</e>, referring to the
3449 Intel-compatible systems. Others are <e>sparc</e>, <e>ppc</e>, <e>mips</e>, ...
3450 <e>amd64</e> is also an architecture although it has additional Intel
3451 compatibility. If you are not sure what architecture to pick, don't hesitate to
3452 ask. <br/>
3453 Incidentally, <e>amd64</e> is the most common answer to that question,
3454 followed by <e>x86</e> :)
3455 </note>
3456
3457 </body>
3458 </subsection>
3459 </section>
3460
3461 <section>
3462 <title>Gentoo installation approaches</title>
3463 <subsection>
3464 <title>Introduction</title>
3465 <body>
3466
3467 <p>
3468 You should understand that the Gentoo installation procedure - at least the
3469 officially publicised one - is quite different from most other Linux
3470 distributions: where other distributions try to perform most steps for you,
3471 Gentoo Linux asks you politely (but firmly) to do things yourself.
3472 </p>
3473
3474 <p>
3475 Getting the hardware up and running, configuring the network, partitioning your
3476 disk(s), copying over the initial files, building additional software (including
3477 the kernel), ... all these steps should be performed before you can finally boot
3478 in a minimal Gentoo environment. Not that all these steps can't be automated
3479 (Gentoo even offers tools to automate a few of those steps and you'll find a lot
3480 of unofficial installers that automate most - if not all - steps) but by
3481 documenting these steps in great detail Gentoo almost forces you to learn
3482 various Linux-related procedures.
3483 </p>
3484
3485 <p>
3486 Another advantage of letting the user perform all steps himself is that the user
3487 can now decide himself how he wants to install Gentoo - the options are there,
3488 the user needs to make a choice, over and over again. By clearly identifying the
3489 options and documenting the possible roads Gentoo hopes that the user is not
3490 scared but rather impressed.
3491 </p>
3492
3493 <p>
3494 For instance, Gentoo offers the user with three initial system states where the
3495 user can start from to install Gentoo. These states are called <e>stages</e>:
3496 stage-1, stage-2 and stage-3.
3497 </p>
3498
3499 </body>
3500 </subsection>
3501 <subsection>
3502 <title>Easy and fast: stage-3</title>
3503 <body>
3504
3505 <p>
3506 The stage-3 system state starts from a minimal Gentoo environment, containing
3507 the core system utils that anyone would need to get Gentoo up and running. This
3508 is the preferred initial state for most users and also the quickest way to
3509 install Gentoo. From this stage onward, the user installs the additional tools
3510 he requires (such as certain networking tools for automated IP information
3511 retrieval, cron jobs for scheduled process execution, system logger for keeping
3512 track of all log events, ...) and builds a Linux kernel to boot from.
3513 </p>
3514
3515 <p>
3516 When you want to install Gentoo without a working Internet connection (the
3517 networkless installation approach) you must use the stage-3 approach since the
3518 universal installation CD only contains source code for the additional tools you
3519 should install - not for the tools already available in the stage file.
3520 </p>
3521
3522 <p>
3523 Although the stage-3 system state is the most full-featured one, many users
3524 often take this as a bloated stage thinking they can't tweak as much as they can
3525 with the other stages. This is wrong, as you can easily rebuild the entire
3526 system with new (compiler and <c>USE</c>) settings - and in many occasions
3527 faster too!
3528 </p>
3529
3530 </body>
3531 </subsection>
3532 <subsection>
3533 <title>Tweaking the system: stage-2</title>
3534 <body>
3535
3536 <p>
3537 The stage-2 system state contains a built and functional toolchain but no system
3538 utilities. This is an intermediate state between a stage-1 and stage-3 and also
3539 the least often used approach to install Gentoo with. Those who do consider
3540 using this stage often alter their profile with respect to base system
3541 packages and perform major tweaks with the <c>CFLAGS</c>, <c>CXXFLAGS</c>
3542 and <c>USE</c> variables.
3543 </p>
3544
3545 <p>
3546 Although Gentoo offers a stage-2 initial system state, you should consider
3547 performing a stage-2 installation with a stage-3 initial system state. This will
3548 preserve you from possible circular dependency issues that are inherent with the
3549 stage-2 build.
3550 </p>
3551
3552 </body>
3553 </subsection>
3554 <subsection>
3555 <title>Tweaking the bootstrapping procedure: stage-1</title>
3556 <body>
3557
3558 <p>
3559 The stage-1 system state contains a non-optimized toolchain with no system
3560 utilities. This is the state where Gentoo Release Engineering developers start
3561 from to move to a stage-3 state by rebuilding the toolchain for the specific
3562 architecture (migrating to a stage-2) and using this newly rebuilt toolchain to
3563 install the system core utilities (migrating to a stage-3).
3564 </p>
3565
3566 <p>
3567 This state is only interesting for those attempting to change the bootstrapping
3568 procedure (by changing the <path>bootstrap.sh</path> script) or want to build a
3569 non-default Gentoo environment (for instance using a completely different
3570 toolchain).
3571 </p>
3572
3573 <p>
3574 Although Gentoo offers a stage-1 initial system state, you should consider
3575 performing a stage-1 installation with a stage-3 initial system state. This will
3576 preserve you from possible circular dependency issues and bootstrapping failures
3577 inherent with the stage-1 procedure (which is quite complex).
3578 </p>
3579
3580 </body>
3581 </subsection>
3582 </section>
3583
3584 <section>
3585 <title>Download, burn and boot</title>
3586 <subsection>
3587 <title>Download the media</title>
3588 <body>
3589
3590 <p>
3591 With the information handed to you in the previous sections you should have an
3592 idea what CD(s) you need to download. Gentoo provides the CDs both as an
3593 <uri link="http://www.gentoo.org/main/en/mirrors.xml">FTP/HTTP download</uri>
3594 or through the <uri link="http://torrents.gentoo.org">BitTorrent</uri>
3595 peer-to-peer network. Pick the latest version available (as that one contains
3596 the most up-to-date hardware support and additional features) although this is
3597 not mandatory: you can easily install a (current) Gentoo from an older
3598 installation CD.
3599 </p>
3600
3601 <p>
3602 As the directory structure on the FTP/HTTP mirrors suggests, you'll find the
3603 CDs in the <path>releases/</path> directory.
3604 </p>
3605
3606 <p>
3607 Each CD is fully contained within an ISO file. Such a file contains all the
3608 content of a CD and should be burned on the CD using a specific (but well
3609 supported) procedure. Most CD/DVD burning tools call it <e>Burn ISO</e> or
3610 <e>Raw burning</e>; it differs from the regular burning methods used that it
3611 burns the content of the file on the CD, not the file as-is (i.e. the end result
3612 is not that you just see the single file on the burnt CD).
3613 </p>
3614
3615 <p>
3616 If you want, you can verify the downloaded ISO file using the <path>.md5</path>
3617 file we provide. This file contains an Message Digest 5 checksum of the file, a
3618 known mathematical result of the entire CD that is practically unique to every
3619 file. In other words, you won't find a file anywhere with the same checksum
3620 unless that file is identical. Under Linux, you can use the <c>md5sum</c> tool
3621 to verify the checksum.
3622 </p>
3623
3624 <p>
3625 We also provide a digital signature of the file made with our private Release
3626 Engineering key. This digital signature can be used to validate the origin of
3627 the ISO file: if the digital signature matches the public key of the Release
3628 Engineering team, then the file is authentic. Under Linux, you can use the
3629 <c>gpg</c> tool to verify the checksum.
3630 </p>
3631
3632 </body>
3633 </subsection>
3634 <subsection>
3635 <title>Booting the CD</title>
3636 <body>
3637
3638 <p>
3639 To get in the initial Gentoo environment, you need to boot from the installation
3640 CD. How to achieve this depends on the architecture you are using. The first
3641 appendix in this book covers the various architecture-specific aspects of a
3642 Linux system, including booting CDs.
3643 </p>
3644
3645 <p>
3646 Once booted, you will see that the installation CD already tried to load the
3647 necessary drivers and hands you over to a <e>root prompt</e>, indicating that
3648 the system is waiting for further input:
3649 </p>
3650
3651 <pre caption="Resulting prompt after a succesful boot">
3652 root ~#
3653 </pre>
3654
3655 <p>
3656 This is the command-line prompt. You are now booted in the initial Gentoo
3657 environment, ready to continue.
3658 </p>
3659
3660 </body>
3661 </subsection>
3662 </section>
3663
3664 </sections>
3665
3666
3667
3668 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-install-minenv.xml
3669
3670 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-install-minenv.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
3671 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-install-minenv.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
3672
3673 Index: hb-install-minenv.xml
3674 ===================================================================
3675 <?xml version='1.0' encoding='UTF-8'?>
3676 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
3677
3678 <!-- The content of this document is licensed under the CC-BY-SA license -->
3679 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
3680
3681 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-install-minenv.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
3682
3683 <sections>
3684
3685 <version>0.0</version>
3686 <date>2005-06-19</date>
3687
3688 <section>
3689 <title>Introduction</title>
3690 <subsection>
3691 <body>
3692
3693 <p>
3694 The prompt you are now looking at is all-powerful, but a bit daunting at first.
3695 If you know how the Linux command line works, this chapter will give you no
3696 further surprises and you can easily jump to the next chapter, <e>Preparing
3697 the Network</e>.
3698 </p>
3699
3700 </body>
3701 </subsection>
3702 </section>
3703
3704 <section>
3705 <title>Basic navigation</title>
3706 <subsection>
3707 <title>Working command-line</title>
3708 <body>
3709
3710 <p>
3711 At the prompt you can enter <e>commands</e> to the Gentoo Linux environment.
3712 Basic commands are just single words, like <c>ls</c> or <c>ps</c>. Most commands
3713 however often require additional words to be added, like <c>cd&nbsp;/var</c> or
3714 <c>man&nbsp;ls</c>. These added characters are called <e>arguments</e>.
3715 </p>
3716
3717 <p>
3718 More often, these arguments represent certain <e>options</e> to the command. For
3719 instance, the <c>ls</c> command (used to list the content of a directory) can
3720 take several options, like <c>-l</c> (for a lengthy description of each found
3721 file), <c>-a</c> (to include hidden files), etc.
3722 </p>
3723
3724 <p>
3725 In the next Code Listing you'll see this terminology explained. The command
3726 shown will list the content of the <path>/var/tmp</path> directory (a temporary
3727 location) showing additional information about each file found, including hidden
3728 files.
3729 </p>
3730
3731 <pre caption="Command, arguments and options">
3732 root ~# <i>ls -la /var/tmp</i>
3733 &lt;--+--&gt;&lt;+&gt; &lt;+&gt; &lt;---+--&gt;
3734 | | | `- Argument, in this case the target directory to list
3735 | | `- Argument, also two options: lengthy description + hidden files
3736 | `- Command (list in this case)
3737 `- Prompt
3738 </pre>
3739
3740 <p>
3741 After having constructed a command, you can execute it by pressing the return
3742 key. Your shell (the command-line environment you are currently "in" which
3743 interprets commands and helps you navigate through the Linux environment) will
3744 then execute the command and show you the results.
3745 </p>
3746
3747 <p>
3748 The next section will give you a crash course in certain Linux commands that
3749 will help you explore your current minimal Gentoo environment. We won't go in
3750 much detail - there are plenty guides and books available online that will
3751 inform you about the basic Linux tools (<uri
3752 link="http://http://www.chongluo.com/books/rute/">Rute's
3753 Unix Tutorial Exposed</uri> is one of the more famous, freely available books).
3754 </p>
3755
3756 </body>
3757 </subsection>
3758 <subsection>
3759 <title>Navigating up and down</title>
3760 <body>
3761
3762 <p>
3763 We have already covered how a Linux file system looks like (the hierarchical
3764 structure, remember?). To help you out we'll give you a quick overview on the
3765 most common tools you might need to navigate on your Gentoo Linux system:
3766 </p>
3767
3768 <table>
3769 <tr>
3770 <th>Command</th>
3771 <th>Description</th>
3772 <th>Example</th>
3773 </tr>
3774 <tr>
3775 <ti><c>ls</c></ti>
3776 <ti>
3777 List the content of a given directory, or the current directory if no
3778 directory is given.
3779 </ti>
3780 <ti><c>ls&nbsp;/mnt/cdrom</c></ti>
3781 </tr>
3782 <tr>
3783 <ti><c>pwd</c></ti>
3784 <ti>
3785 Show the current working directory; this is the full pathname of the
3786 directory you are currently in.
3787 </ti>
3788 <ti><c>pwd</c></ti>
3789 </tr>
3790 <tr>
3791 <ti><c>cd</c></ti>
3792 <ti>
3793 Change the current working directory to a different location. If no
3794 directory is given, go to the user's home directory.
3795 </ti>
3796 <ti><c>cd&nbsp;/mnt/gentoo</c></ti>
3797 </tr>
3798 <tr>
3799 <ti><c>less</c></ti>
3800 <ti>
3801 Show the content of a given file on the screen. You can navigate with the
3802 up and down arrows through the file and quit the application by pressing
3803 'q'.
3804 </ti>
3805 <ti><c>less&nbsp;install.txt</c></ti>
3806 </tr>
3807 <tr>
3808 <ti><c>rm</c></ti>
3809 <ti>
3810 Remove a file from the system (if you have the required privileges). To
3811 remove a directory with all files in it, use the <c>-r</c> option. Be
3812 careful with this command though, it won't warn you when you are about
3813 to destroy all your data.
3814 </ti>
3815 <ti><c>rm&nbsp;portage.tar</c></ti>
3816 </tr>
3817 </table>
3818
3819 </body>
3820 </subsection>
3821 <subsection>
3822 <title>Concurrent terminals</title>
3823 <body>
3824
3825 <p>
3826 Gentoo's installation CDs allow you to use a couple of terminals simultaneously.
3827 That means you can work in one, browse the internet in another and chat on a
3828 third. To switch between terminals, type <c>Alt+F#</c> (with <c>F#</c> one of
3829 the function keys). You will notice that your current session is at <c>F1</c>.
3830 </p>
3831
3832 <p>
3833 You can also work in a terminal and then put your working session in the
3834 background using a powerful tool called <c>screen</c>. With <c>screen</c> you
3835 can even let other people work on your terminal while you are watching every
3836 step they perform.
3837 </p>
3838
3839 <pre caption="Working with screen">
3840 <comment>(Starting a screen session:)</comment>
3841 $ <i>screen -S mySession</i>
3842 <comment>(To detach a screen session, type 'Ctrl-A' followed by a 'd')</comment>
3843
3844 <comment>(Reattach to a screen session:)</comment>
3845 $ <i>screen -x mySession</i>
3846
3847 <comment>(To quit a screen session, just type 'exit':)</comment>
3848 $ <i>exit</i>
3849 </pre>
3850
3851 </body>
3852 </subsection>
3853 </section>
3854
3855 <section>
3856 <title>Networking utilities</title>
3857 <subsection>
3858 <body>
3859
3860 <p>
3861 Gentoo offers a few utilities on the installation CDs which you can use to
3862 surf on the Internet, download files, chat on the IRC network, etc. We will
3863 cover a few of them in this section, but you can't use them until you have
3864 configured your network (and Internet connection) which is described in the next
3865 chapter.
3866 </p>
3867
3868 </body>
3869 </subsection>
3870 <subsection>
3871 <title>Surfing on the Internet</title>
3872 <body>
3873
3874 <p>
3875 Because no documentation can be perfect and no two environments are alike, you
3876 will often search for additional information and help on the Internet. Websites
3877 such as the main <uri link="http://www.gentoo.org/doc/en/index.xml">Gentoo
3878 documentation repository</uri> or powerful search engines like <uri
3879 link="http://www.google.com">Google</uri> are a welcome resource during your
3880 installation quest.
3881 </p>
3882
3883 <p>
3884 To browse through these sites you need a browser. Because the Gentoo
3885 installation CDs don't contain a graphical environment you need to use either a
3886 different system, a different installation medium or ... a non-graphical
3887 browser. The Gentoo installation CDs offer at least one of the following console
3888 browsers:
3889 </p>
3890
3891 <ul>
3892 <li>
3893 <c>lynx</c>, a general purpose web site browser which operates key-driven
3894 (for instance 'D' for downloading, 'G' to go to a different site, ...).
3895 </li>
3896 <li>
3897 <c>links2</c>, a featureful browser with support for frames, limited
3898 JavaScript, svgalib/framebuffer, background downloading, ... which operates
3899 both menu-driven (press 'Escape' to open the menu) as key-driven.
3900 </li>
3901 </ul>
3902
3903 <p>
3904 Both browsers support proxy servers, although the first one uses the standard
3905 way (setting an <c>HTTP_PROXY</c> environment variable) while the second one
3906 requires you to enter the proxy server in the browser.
3907 </p>
3908
3909 <pre caption="Example surfing information with proxy support">
3910 <comment>(For lynx - ignore the export command if no proxy is needed:)</comment>
3911 $ <i>export HTTP_PROXY="http://myproxy.server.tld:8080"</i>
3912 $ <i>lynx http://www.gentoo.org</i>
3913
3914 <comment>(For links2 - ignore the -http-proxy option if no proxy is needed:)</comment>
3915 $ <i>links2 -http-proxy http://myproxy.server.tld:8080 http://www.gentoo.org</i>
3916 </pre>
3917
3918 </body>
3919 </subsection>
3920 <subsection>
3921 <title>Chatting on an IRC network</title>
3922 <body>
3923
3924 <p>
3925 When you can't find useful information on the Internet, you can always ask your
3926 question on the <uri
3927 link="irc://irc.freenode.net/gentoo-install">#gentoo-install</uri> or <uri
3928 link="irc://irc.freenode.net/gentoo">#gentoo</uri> IRC channels on FreeNode.
3929 Gentoo delivers a terminal-based, yet extremely powerful chat client called
3930 <c>irssi</c>.
3931 </p>
3932
3933 <p>
3934 Its use is quite simple. First, connect to the IRC network. Then, join the
3935 channel(s) you want to participate in. You can use Alt+F# to switch between
3936 channels (or type in <c>/window&nbsp;#</c> if the key combination fails). To
3937 exit the application, type <c>/quit</c>.
3938 </p>
3939
3940 <pre caption="Getting online with irssi">
3941 $ <i>irssi -c irc.freenode.net YourNickName</i>
3942 <comment>(Wait until the connection is made)</comment>
3943 [irssi #] <i>/join #gentoo</i>
3944 </pre>
3945
3946 </body>
3947 </subsection>
3948 <subsection>
3949 <title>Remote shell access</title>
3950 <body>
3951
3952 <p>
3953 The Gentoo installation CD contains an <e>SSH daemon</e>, which is a tool to
3954 allow others to securely connect to your system so they can help you install
3955 Gentoo. This service isn't started by default, but if you want to use it you
3956 should:
3957 </p>
3958
3959 <ol>
3960 <li>get the Internet connection up and running</li>
3961 <li>create a user account</li>
3962 <li>give the root account a password</li>
3963 <li>start the SSH daemon</li>
3964 </ol>
3965
3966 <p>
3967 If you trust the other person, you can give him your root password, but we
3968 advise you to only give limited access to the other person - they should help
3969 you identify errors and tell you how to resolve them, not fix the errors
3970 themselves. Otherwise you won't learn :)
3971 </p>
3972
3973 <pre caption="Steps to get the SSH service running">
3974 <comment>(First get the Internet connection up and running, then...)</comment>
3975 # <i>useradd -m -G users myuser</i>
3976 # <i>passwd myuser</i>
3977 <comment>(Give the 'myuser' user a password)</comment>
3978 # <i>passwd</i>
3979 <comment>(Give the 'root' user a (different) password)</comment>
3980 # <i>/etc/init.d/sshd start</i>
3981 </pre>
3982
3983 <p>
3984 The passwords you set here are limited to the Gentoo installation CD environment
3985 and only until you reboot. They are not used for your final Gentoo installation!
3986 </p>
3987
3988 </body>
3989 </subsection>
3990 </section>
3991 </sections>
3992
3993
3994
3995 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-install-network.xml
3996
3997 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-install-network.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
3998 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-install-network.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
3999
4000 Index: hb-install-network.xml
4001 ===================================================================
4002 <?xml version='1.0' encoding='UTF-8'?>
4003 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
4004
4005 <!-- The content of this document is licensed under the CC-BY-SA license -->
4006 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
4007
4008 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-install-network.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
4009
4010 <sections>
4011
4012 <version>0.0</version>
4013 <date>2005-06-19</date>
4014
4015 <section>
4016 <title>Introduction</title>
4017 <subsection>
4018 <title>Why you need it ...</title>
4019 <body>
4020
4021 <p>
4022 Not everyone requires a working Internet connection, but if you <e>can</e> it is
4023 best if you do - this part of the book only covers installations with a
4024 working Internet connection because it is highly advantageous. Not only can
4025 you immediately install the latest versions of all
4026 the Gentoo packages, it also allows you to go on the Internet to seek help and
4027 support, or to chat while your system is installing Gentoo.
4028 </p>
4029
4030 <p>
4031 In this chapter we cover one specific network type: Ethernet. An
4032 Ethernet network connection is often referred to as the <e>wired network</e>,
4033 using a RJ-45 network plug. Wireless networking, also known as <e>WiFi</e> or
4034 <e>IEEE 802.11x</e>, is also supported from the Gentoo installation CDs but not
4035 covered in this chapter (you will find more information about it further in this
4036 book).
4037 </p>
4038
4039 </body>
4040 </subsection>
4041 </section>
4042
4043 <section>
4044 <title>Recognizing the hardware</title>
4045 <subsection>
4046 <title>Auto-detection</title>
4047 <body>
4048
4049 <p>
4050 You first need to configure your system to support your network card. Chances
4051 are that the card is already found and supported - to verify this, use the
4052 <c>ifconfig</c> tool. This tool will tell you what interfaces are available on
4053 your system. Interfaces are where Linux can assign IP address information to. It
4054 can represent a networking device but doesn't have to: there are interfaces for
4055 the local system (<e>localhost</e>, which doesn't need a network card), network
4056 tunnels, bridges, etc.
4057 </p>
4058
4059 <pre caption="Showing all available interfaces">
4060 # <i>ifconfig -a</i>
4061 </pre>
4062
4063 <p>
4064 The above command will display statistics about each interface found on your
4065 system. The interfaces that start with <e>eth</e> are the ones that interest us
4066 the most. Those interfaces represent the network cards. If you have one network
4067 card, it will probably be called <e>eth0</e>. If you have two, they would be
4068 called <e>eth0</e> and <e>eth1</e>, etc.
4069 </p>
4070
4071 <p>
4072 If you have several network cards, you can't tell right now what interface
4073 represents what network card. There are several ways to find this out, but the
4074 easiest method is to assume that eth0 is the one you are interested in - and if
4075 it turns out your network doesn't work, try switching the cable :)
4076 </p>
4077
4078 <p>
4079 Now, if you have seen eth-interfaces then your hardware is found and
4080 supported and you can continue with the next section (<uri
4081 link="#net_config_type">DHCP or Static IP Address?</uri>). Otherwise you need to
4082 find out what chipset your network card uses and load the necessary hardware
4083 support.
4084 </p>
4085
4086 </body>
4087 </subsection>
4088 <subsection>
4089 <title>Manual hardware discovery</title>
4090 <body>
4091
4092 <p>
4093 With <c>lspci</c> you can get an overview of all PCI devices found on your
4094 system. The interesting part of this tool is that it shows the function of the
4095 device <e>and</e> the brand and type, making it excellent to discover what you
4096 have under the hood of your system.
4097 </p>
4098
4099 <p>
4100 We are interested in the <e>Ethernet controller</e> or <e>Network
4101 controller</e>, so we filter out the output of the <c>lspci</c> command using
4102 the <c>grep</c> tool, only giving us those lines that have 'Ethernet controller'
4103 or 'Network controller' in it:
4104 </p>
4105
4106 <pre caption="Showing all Ethernet controller devices">
4107 <comment>(Substitute with 'Network controller' if this doesn't give satisfying results)</comment>
4108 # <i>lspci | grep 'Ethernet controller'</i>
4109 0000:06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8169
4110 Gigabit Ethernet (rev 10)
4111 </pre>
4112
4113 <p>
4114 With this information, you can start searching for the <e>kernel module</e> that
4115 offers support for your Ethernet card. In the above example, the
4116 module is <path>r8169.ko</path>. Although there is a quite efficient way to
4117 find out what kernel module exists for what chipset (search through the Linux
4118 kernel menu configuration information) we can't use this from the Gentoo
4119 installation CD as you don't have this configuration information available yet.
4120 </p>
4121
4122 <p>
4123 You are not left in the dark though. You can try digging through all the
4124 available kernel modules that support network cards, hoping to find any
4125 reference of the chipset you have. An easy method is to 'dump' a list of all
4126 kernel modules and filter out those that contain a good identifier in their
4127 name.
4128 </p>
4129
4130 <p>
4131 For instance, the above example could lead to the discovery of the
4132 <path>r8169.ko</path> module using the following method:
4133 </p>
4134
4135 <pre caption="Filtering the list of kernel modules">
4136 # <i>find /lib/modules | grep -i '8169'</i>
4137 </pre>
4138
4139 <p>
4140 The <c>-i</c> tells the <c>grep</c> tool to behave case insensitive. Okay, it
4141 doesn't matter for the example since we're asking <c>grep</c> to filter out a
4142 number - which isn't affected by case sensitivity - but this is quite important
4143 for different filters.
4144 </p>
4145
4146 <p>
4147 You can try out various terms that occur in the chipset name as well, either as
4148 separate jobs, or by providing <c>grep</c> with an entire list of terms you want
4149 to filter on. This can be accomplished by adding the <c>-E</c> option and
4150 handing it a list, separated by '|' signs and contained within '(' and ')'. The
4151 <c>-E</c> tells <c>grep</c> to interprete the filter as a <e>regular
4152 expression</e>:
4153 </p>
4154
4155 <pre caption="Filtering the list of kernel modules on a regular expression">
4156 # <i>find /lib/modules | grep -iE '(8169|realtek|rtl)'</i>
4157 </pre>
4158
4159 <p>
4160 Once you have found a possible kernel module for your network card, you can try
4161 to load it in memory using <c>modprobe</c>. This tool will search for the
4162 module, query for possible depending modules (some modules require another
4163 module to be loaded first) and then load the module in memory. For instance,
4164 for the <path>r8169.ko</path> module:
4165 </p>
4166
4167 <pre caption="Loading a kernel module in memory">
4168 <comment>(Notice that we have dropped the ".ko" suffix!)</comment>
4169 # <i>modprobe r9169</i>
4170 </pre>
4171
4172 <p>
4173 If this command didn't fail out, try <c>ifconfig&nbsp;-a</c> again to see if you
4174 have a working interface. If not, keep trying...
4175 </p>
4176
4177 </body>
4178 </subsection>
4179 </section>
4180
4181 <section id="net_config_type">
4182 <title>DHCP or static IP address?</title>
4183 <subsection>
4184 <title>Setting the IP address information</title>
4185 <body>
4186
4187 <p>
4188 Now we need to configure the interface to obtain an IP address, a unique
4189 address that identifies your system in the network (<e>Internet Protocol
4190 address</e>). In most environments, this can be obtained automatically using
4191 DHCP (<e>Dynamic Host Configuration Protocol</e>). This protocol
4192 allows interfaces to send out a request for an IP address on the network and
4193 receive IP address and routing information from the DHCP server (which is often
4194 found in home routers or in enterprise environments as a stand-alone service).
4195 </p>
4196
4197 <note>
4198 TCP, the other part of the TCP/IP combo, stands for <e>Transfer Control
4199 Protocol</e> and is responsible for the applicative communication between two
4200 systems. It has no recollection of system addresses (that's the IP's job) but
4201 uses <e>ports</e> instead to distinguish one communication session from another.
4202 </note>
4203
4204 <p>
4205 If you have a DHCP service on your network, you need to run a DHCP client for
4206 your interface. With Gentoo, you have <c>dhcpcd</c> at your disposal. Other
4207 clients exists as well though, such as <c>dhclient</c> and <c>pump</c>. To
4208 automatically obtain an IP address for the eth0 interface, run
4209 <c>dhcpcd&nbsp;eth0</c> after which you can continue with <uri
4210 link="#network_testing">Testing the Network</uri>.
4211 </p>
4212
4213 <pre caption="Obtaining an IP address">
4214 # <i>dhcpcd eth0</i>
4215 </pre>
4216
4217 <p>
4218 If your network card was automatically detected by Gentoo and your network
4219 supports DHCP, you'll probably receive a warning telling you that an instance of
4220 <c>dhcpcd</c> is already running. That's okay, it means that the installation
4221 already had the network configured for you.
4222 </p>
4223
4224 <p>
4225 If you need to configure your network using a static IP address, you have to
4226 know:
4227 </p>
4228
4229 <ul>
4230 <li>which IP address you can use,</li>
4231 <li>what IP address your <e>gateway</e> listens to, and</li>
4232 <li>
4233 what part of the IP address is reserved for the network
4234 identification
4235 </li>
4236 </ul>
4237
4238 <p>
4239 A <e>gateway</e> is a system that acts as the connection between your network
4240 and the outside world. If you have a PC that shares an Internet connection
4241 (which often uses NAT - Network Address Translation) it is most likely that its
4242 IP address is your gateway IP address.
4243 </p>
4244
4245 <p>
4246 The network part of the IP address is what separates your IP address from an
4247 outside IP address. For instance, if your IP address is 192.168.1.12 and all IP
4248 addresses in your network are in the range of 192.168.1.1 to 192.168.1.255, then
4249 the network part of the IP address are the first three numbers. This is
4250 identified by a <e>netmask</e> 255.255.255.0.
4251 </p>
4252
4253 <p>
4254 To configure your interface with a static IP address you can use the
4255 <c>ifconfig</c> application which we have already seen when we tried to discover
4256 what interfaces were available on your system.
4257 </p>
4258
4259 <p>
4260 The <c>ifconfig</c> tool requires you to pass it the interface, the IP address
4261 and the netmask of the network. Suppose that 192.168.1.12 is your IP address and
4262 255.255.255.0 your netmask:
4263 </p>
4264
4265 <pre caption="Running the ifconfig tool">
4266 # <i>ifconfig eth0 192.168.1.12 netmask 255.255.255.0 up</i>
4267 </pre>
4268
4269 <p>
4270 Next we need to configure the system to pass on requests for the Internet to the
4271 gateway. With the <c>route</c> command you can set up the <e>default
4272 gateway</e>, which is the default location where requests that are for an
4273 unknown network are passed to. Assuming that 192.168.1.1 is the gateway IP
4274 address:
4275 </p>
4276
4277 <pre caption="Setting up the default gateway">
4278 # <i>route add default gw 192.168.1.1</i>
4279 </pre>
4280
4281 <p>
4282 We are almost there. You should be able to get on the Internet ... if you knew
4283 all the IP addresses of all the servers by heart. To be able to use hostnames as
4284 well, you need to tell the system where the <e>name servers</e> are: systems
4285 that can translate hostnames to IP addresses. Your Internet Service Provider
4286 or network administrator should be able to tell you what the IP addresses for
4287 the name servers are.
4288 </p>
4289
4290 <p>
4291 You need to place these IP addresses in the <path>/etc/resolv.conf</path> file
4292 which sole purpose is to configure anything related to name configuration,
4293 including where the name servers are located.
4294 </p>
4295
4296 <p>
4297 To edit this file, you can use <c>nano</c>, a simple text editor for the command
4298 line. Other editors that might be available are <c>vi</c> and <c>emacs</c>.
4299 <c>nano</c> however is certainly available, so we will use <c>nano</c> as an
4300 example. Assuming that the name servers are 123.45.67.89 and 123.45.67.90:
4301 </p>
4302
4303 <pre caption="Editing /etc/resolv.conf">
4304 # <i>nano /etc/resolv.conf</i>
4305 <comment>(Change the content of the file to contain the name servers:)</comment>
4306 nameserver 123.45.67.89
4307 nameserver 123.45.67.90
4308 </pre>
4309
4310 <p>
4311 Now that's done, you should test your network connectivity.
4312 </p>
4313
4314 </body>
4315 </subsection>
4316 <subsection id="network_testing">
4317 <title>Testing the network</title>
4318 <body>
4319
4320 <p>
4321 With the <c>ping</c> tool you can send small requests to servers around the
4322 Internet (but also on your network) and ask them to reply back. This makes
4323 <c>ping</c> a perfect tool to check if a system is reachable. We'll use this
4324 tool to verify the network connectivity.
4325 </p>
4326
4327 <p>
4328 First, we will try to reach a <uri link="http://www.google.com">Google</uri> web
4329 server. We'll send it three requests - if they come back, your network (and
4330 Internet connection) is working great and you can continue with the next
4331 chapter.
4332 </p>
4333
4334 <pre caption="Sending three requests to www.google.com">
4335 # <i>ping -c 3 www.google.com</i>
4336 </pre>
4337
4338 <p>
4339 If you are not able to ping this system by name, you should try to ping an
4340 Internet server by its IP address. In the following example, we send three
4341 requests to 66.249.93.104, which is an IP address for a Google server. However,
4342 IP addresses might change so it is easier if you first verify that this IP
4343 address is really functional on a different system which has a working Internet
4344 connection.
4345 </p>
4346
4347 <pre caption="Sending three requests to 66.249.93.104">
4348 # <i>ping -c 3 66.249.93.104</i>
4349 </pre>
4350
4351 <p>
4352 If this works, then the problem is with the name resolving. Verify that your
4353 <path>/etc/resolv.conf</path> contains the correct IP addresses for the name
4354 servers. Those IP addresses should be reachable (you can ping those as well to
4355 verify). Also verify that <path>/etc/nsswitch.conf</path> has a line that starts
4356 with 'hosts' and contains 'dns' as a keyword. This file tells your system where
4357 to look for various resources, such as name resolving information. The 'dns'
4358 keyword tells the system that <path>/etc/resolv.conf</path>'s name servers
4359 should be used. The 'files' keyword tells the system that
4360 <path>/etc/hosts</path> contains a few IP address with hostnames which should be
4361 used as well.
4362 </p>
4363
4364 <pre caption="Verifying the /etc/nsswitch.conf file">
4365 # <i>grep -E '^hosts' /etc/nsswitch.conf</i>
4366 hosts: files dns
4367 </pre>
4368
4369 <p>
4370 Suppose that 66.249.93.104 wasn't reachable as well, you might have an issue
4371 with the gateway being malconfigured. Verify if your gateway is set correctly by
4372 running <c>route&nbsp;-n</c>: the gateway IP address is the one mentioned right
4373 next to the 0.0.0.0 destination. In the next example, we use the <c>awk</c> tool
4374 to filter the output of the <c>route</c> command: of the line that starts with
4375 0.0.0.0 we only show the second 'word' (which, in this case, is the gateway IP
4376 address):
4377 </p>
4378
4379 <pre caption="Verifying the configured gateway IP address">
4380 # <i>route -n | awk '/^0.0.0.0/ {print $2}'</i>
4381 </pre>
4382
4383 <p>
4384 If the gateway IP address seems correct, try to ping it to see if you can reach
4385 it. If you can, then the gateway itself is either blocking your Internet
4386 connections (perhaps a firewall issue) or the system isn't the gateway at all
4387 but just another host on your network.
4388 </p>
4389
4390 <p>
4391 If you can't reach the gateway IP address but you are confident that the IP
4392 address is correct and doesn't have a firewall that is dropping all your
4393 requests (including the ping requests), then your interface is malfunctioning.
4394 Make sure the network cable is plugged in and the cable is meant for the
4395 connection type you are using (the straight versus crossed UTP cable debacle).
4396 </p>
4397
4398 </body>
4399 </subsection>
4400
4401 </section>
4402 </sections>
4403
4404
4405
4406 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-install-next.xml
4407
4408 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-install-next.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
4409 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-install-next.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
4410
4411 Index: hb-install-next.xml
4412 ===================================================================
4413 <?xml version='1.0' encoding='UTF-8'?>
4414 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
4415
4416 <!-- The content of this document is licensed under the CC-BY-SA license -->
4417 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
4418
4419 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-install-next.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
4420
4421 <sections>
4422
4423 <version>0.0</version>
4424 <date>2005-06-19</date>
4425
4426 <section>
4427 <title>Rebooting the system</title>
4428 <subsection>
4429 <title>Exiting the chrooted environment</title>
4430 <body>
4431
4432 <p>
4433 The base Gentoo installation is almost finished. Right now, you'll need to exit
4434 from the chrooted environment, unmount all mounted file systems from the system
4435 and reboot. Then we'll find out if the boot procedure settings are correct: if
4436 you can log on to your system, great. If not, well, no worries - you don't need
4437 to redo everything all over again :)
4438 </p>
4439
4440 <p>
4441 To exit the chrooted environment, type <c>exit</c>. When you get back at the
4442 installation CD environment, find out what file systems are mounted at the
4443 <path>/mnt/gentoo</path> location and unmount them one by one. You can't unmount
4444 a file system that still has mounted file systems in it, meaning that you can't
4445 unmount <path>/mnt/gentoo</path> before <path>/mnt/gentoo/proc</path> and others
4446 are unmounted.
4447 </p>
4448
4449 <pre caption="Exiting the chrooted environment and unmounting the file systems">
4450 # <i>exit</i>
4451 # <i>mount | grep '/mnt/gentoo'</i>
4452 /dev/sda3 on /mnt/gentoo type ext3 (rw,noatime)
4453 proc on /mnt/gentoo/proc type proc (rw)
4454 /dev/sda1 on /mnt/gentoo/boot type ext2 (rw,noatime)
4455 # <i>umount /mnt/gentoo/boot /mnt/gentoo/proc /mnt/gentoo</i>
4456 </pre>
4457
4458 <p>
4459 Next, reboot the system and hope for the best...
4460 </p>
4461
4462 <pre caption="Rebooting the system">
4463 # <i>reboot</i>
4464 </pre>
4465
4466 <p>
4467 Don't forget to remove the installation media from the system, otherwise you'll
4468 boot right into the installation environment again.
4469 </p>
4470
4471 </body>
4472 </subsection>
4473 <subsection>
4474 <title>Boot failed?</title>
4475 <body>
4476
4477 <p>
4478 If the reboot failed, you need to dig through the error messages you receive to
4479 find out what went wrong. You'll find that the <uri
4480 link="http://forums.gentoo.org">Gentoo Forums</uri> represent a wonderful
4481 Knowledge Base with solutions to many problems.
4482 </p>
4483
4484 <p>
4485 To help you get back, we'll explain how to return to the installation
4486 environment so that you can fix whatever fault is causing the error.
4487 </p>
4488
4489 <ol>
4490 <li>
4491 Reinsert the installation medium and reboot your system so that you are back
4492 inside the installation environment, just like you were in the beginning of
4493 the Gentoo installation.
4494 </li>
4495 <li>
4496 Load up any drivers you need and configure your network just like you did
4497 with the Gentoo installation.
4498 </li>
4499 <li>
4500 Instead of taking a stab at the storage configuration, immediately mount all
4501 your file systems at <path>/mnt/gentoo</path>. Don't forget to mount the
4502 <c>proc</c> file system as well. You never know when you'll need it and it
4503 is often forgotten.
4504 </li>
4505 <li>
4506 Chroot into the Gentoo installation (<c>chroot /mnt/gentoo</c>), run
4507 <c>env-update</c> and <c>source /etc/profile</c> so that your session
4508 environment is configured correctly.
4509 </li>
4510 <li>
4511 Now fix whatever needs to be fixed.
4512 </li>
4513 <li>
4514 Exit the chrooted environment, unmount the partitions and reboot to retry.
4515 </li>
4516 </ol>
4517 </body>
4518 </subsection>
4519 </section>
4520
4521 <section>
4522 <title>Finishing off the base installation</title>
4523 <subsection>
4524 <title>USE flag changes and rebuilding</title>
4525 <body>
4526
4527 <p>
4528 If you didn't alter your USE flags during the installation, this is a good time
4529 to do it. Log onto your system as root (using the password you supplied
4530 previously) and edit the <c>USE</c> variable inside <path>/etc/make.conf</path>
4531 using your favorite editor (<c>nano</c> is available by default) and reread the
4532 information we gave you about USE flags earlier in this book in the chapter on
4533 <e>Building the System</e>.
4534 </p>
4535
4536 <p>
4537 Once you've updated your USE flags, we'll tell Portage that it needs to rebuild
4538 the tools that are affected by your USE flag change. To verify what Portage
4539 wants to do, we'll first ask it to show it to us without actually performing the
4540 rebuild. The <c>emerge</c> command has an option called <c>--pretend</c> (or
4541 <c>-p</c> in short) that does exactly that. When we add the <c>--verbose</c> (or
4542 <c>-v</c> in short) option we'll also ask it to display <e>why</e> it wants to
4543 rebuild the packages. And of course, we need to ask Portage to do all that just
4544 for the packages that are affected by the USE flag change (<c>--newuse</c>, or
4545 <c>-N</c> in short):
4546 </p>
4547
4548 <pre caption="Rebuilding packages affected by USE flag change">
4549 <comment>(In this example, we've changed the nls USE flag:)</comment>
4550 # <i>emerge --pretend --verbose --newuse world</i>
4551
4552 These are the packages that I would merge, in order:
4553
4554 Calculating world dependencies ...done!
4555 [ebuild R ] sys-apps/man-pages-2.11 <i>-nls*</i> 0 kB
4556 [ebuild R ] sys-apps/grep-2.5.1-r8 -build <i>-nls*</i> +pcre -static 0 kB
4557 [ebuild R ] media-sound/alsa-utils-1.0.10_rc3 <i>-nls*</i> 0 kB
4558 <comment>(...)</comment>
4559 </pre>
4560
4561 <p>
4562 If you are okay with whatever Portage proposes, drop the <c>--pretend</c> so
4563 that the packages can be rebuilt.
4564 </p>
4565
4566 </body>
4567 </subsection>
4568 <subsection>
4569 <title>Orphaned packages</title>
4570 <body>
4571
4572 <p>
4573 Some packages are installed on your system as dependencies of a tool if certain
4574 USE flags are set. When you unset the affecting USE flag, Portage will
4575 <e>not</e> unmerge the dependency even though the original package is rebuilt.
4576 Such dependencies which aren't needed by any package on the system anymore but
4577 are stil present are called <e>orphaned packages</e>.
4578 </p>
4579
4580 <p>
4581 You can ask Portage to find such orphaned packages and remove them from the
4582 system. The method is called <e>depclean</e> (which stands for dependency
4583 cleaning):
4584 </p>
4585
4586 <pre caption="Running depclean on the system">
4587 # <i>emerge --pretend --depclean</i>
4588 </pre>
4589
4590 <p>
4591 Take a look at the packages Portage wants to remove. If you want to scroll
4592 through the list, try pressing <c>Ctrl-PgUp</c> or filter the list through the
4593 <c>less</c> utility:
4594 </p>
4595
4596 <pre caption="Using 'less' for the depclean output">
4597 # <i>emerge --pretend --depclean | less</i>
4598 </pre>
4599
4600 <p>
4601 If you're satisfied with the list, drop the <c>--pretend</c> and let Portage
4602 sort the packages out.
4603 </p>
4604
4605 </body>
4606 </subsection>
4607 <subsection>
4608 <title>Updating the system</title>
4609 <body>
4610
4611 <p>
4612 Finally, update your system so it uses the latest versions of all packages.
4613 First, let Portage obtain a more recent snapshot of the Portage tree:
4614 </p>
4615
4616 <pre caption="Updating the Portage tree">
4617 # <i>emerge --sync</i>
4618 </pre>
4619
4620 <p>
4621 Next, ask Portage to update the packages that have a more recent version
4622 available. We'll use the <c>--update</c> argument for <c>emerge</c> to inform
4623 Portage that we want to update them, but also the <c>--deep</c> argument so that
4624 not only those packages you have installed (using
4625 <c>emerge&nbsp;&lt;packagename&gt;</c>) and their immediate dependencies are
4626 updated, but also the dependencies of the dependencies. You'll also notice we
4627 use the <c>--newuse</c> argument again. That is because Gentoo might add a USE
4628 flag to the default USE set, either because of a profile update, or because you
4629 installed a package that "provides" a USE flag.
4630 </p>
4631
4632 <pre caption="Updating the packages on the system">
4633 # <i>emerge --update --deep --newuse world</i>
4634 </pre>
4635
4636 </body>
4637 </subsection>
4638 </section>
4639
4640 <section>
4641 <title>Installing additional software</title>
4642 <subsection>
4643 <title>Some recommendations...</title>
4644 <body>
4645
4646 <p>
4647 Now that your base system is available, you'll still left in the dark as you
4648 don't have many tools at your disposal. No graphical environment for the desktop
4649 users, no services for the servers, so development tools (apart from the
4650 toolchain) for the developers.
4651 </p>
4652
4653 <p>
4654 Your next stop should be to investigate the Portage tree for software you want
4655 to have. You can just browse through <path>/usr/portage</path> and use
4656 <c>emerge</c> for every tool you want, but better would be to follow one or
4657 more <uri link="http://www.gentoo.org/doc/en/index.xml">guides</uri> from our
4658 web site that help you install <e>and</e> configure the tool.
4659 </p>
4660
4661 <p>
4662 For instance, Gentoo has a nice <uri
4663 link="http://www.gentoo.org/doc/en/xorg-config.xml">Xorg Configuration
4664 Guide</uri> for those who want to set up their Gentoo installation as a
4665 graphical environment desktop or workstation. The <c>xorg-x11</c> tool is the
4666 service that provides windowing features and other graphical possibilities to
4667 the various desktop environments.
4668 </p>
4669
4670 <p>
4671 Possible desktop environments are KDE, GNOME or fluxbox who also have
4672 configuration guides at the Gentoo web site (<uri
4673 link="http://www.gentoo.org/doc/en/kde-config.xml">KDE Configuration
4674 Guide</uri>, <uri link="http://www.gentoo.org/doc/en/gnome-config.xml">GNOME
4675 Configuration Guide</uri> and <uri
4676 link="http://www.gentoo.org/doc/en/fluxbox-config.xml">Fluxbox Configuration
4677 Guide</uri>).
4678 </p>
4679
4680 <p>
4681 For those interested more in services should take a look at the <uri
4682 link="http://www.gentoo.org/doc/en/security">Gentoo Security Guide</uri> which
4683 helps you harden your system configuration.
4684 </p>
4685
4686 <p>
4687 Other interesting resources are the <uri link="http://forums.gentoo.org">Gentoo
4688 Forums</uri>, <uri link="http://www.gentoo.org/main/en/irc.xml">Gentoo IRC
4689 channels</uri> and <uri
4690 link="http://www.gentoo.org/main/en/lists.xml">mailinglists</uri>.
4691 </p>
4692
4693 </body>
4694 </subsection>
4695 </section>
4696
4697 </sections>
4698
4699
4700
4701 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-install-storage.xml
4702
4703 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-install-storage.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
4704 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-install-storage.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
4705
4706 Index: hb-install-storage.xml
4707 ===================================================================
4708 <?xml version='1.0' encoding='UTF-8'?>
4709 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
4710
4711 <!-- The content of this document is licensed under the CC-BY-SA license -->
4712 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
4713
4714 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-install-storage.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
4715
4716 <sections>
4717
4718 <version>0.0</version>
4719 <date>2005-06-19</date>
4720
4721 <section>
4722 <title>Storage</title>
4723 <subsection>
4724 <title>Introduction</title>
4725 <body>
4726
4727 <p>
4728 A difficult job of any Linux installation is to prepare the partitions to house
4729 the Operating System. Each person has a different taste as to what should be on
4730 a different partition and what shouldn't, or what file system to use.
4731 </p>
4732
4733 <p>
4734 The idea behind partitioning is to make some sort of separation between one set
4735 of data and another. For instance, people have their <path>/boot</path>
4736 separated from the root file system because they want to be able to hide the
4737 <path>/boot</path> content from the system during regular operations. Or they
4738 want to have <path>/home</path> separate because that would allow them to store
4739 all user-specific information, settings and data on a different disk so they are
4740 able to easily retrieve the data after an Operating System reinstallation.
4741 </p>
4742
4743 <p>
4744 You can also choose to have a separate partition because you want to improve
4745 performance by using a different file system tweaked to the use of the data
4746 stored on the partition.
4747 </p>
4748
4749 <p>
4750 Deciding on the partition scheme requires intimate knowledge of the file system:
4751 </p>
4752
4753 <ul>
4754 <li>What files are stored where?</li>
4755 <li>How often are the files used? Read or written?</li>
4756 <li>What is the function of the system you are building?</li>
4757 <li>What features do the various file systems have?</li>
4758 </ul>
4759
4760 <p>
4761 Because this is something that comes with age (err, experience ;) your first,
4762 second, third, ... attempt for a perfect scheme will undoubtedly fail. Lots of
4763 people therefore opt for a simple partitioning scheme (like everything on a
4764 single partition, with a separate partition for the swap<sup>1</sup>
4765 information). Others attempt to use a more dynamical approach and use
4766 <e>Volume Management</e>.
4767 </p>
4768
4769 <p>
4770 With Volume Management, you place a layer in between the partitions on the disk
4771 and the file systems that hold your data. This layer can be used to combine
4772 multiple partitions as if they were just a single one, or to use several logical
4773 divisions on a single partition. Of course, Volume Management is much more than
4774 that: it makes it easier to move data across partitions, shrink or grow file
4775 systems, etc.
4776 </p>
4777
4778 <note>
4779 <sup>1</sup> Swap space is a specific location on the disk where the Linux
4780 kernel can store memory pages (regions of data in memory, assigned for use by
4781 processes or by the kernel itself) that will most likely not be used in a while.
4782 The Linux kernel will, once your memory is completely filled (not sooner!),
4783 move such memory pages to the swap location, thereby freeing internal memory
4784 for other, more important memory pages.
4785 </note>
4786
4787 </body>
4788 </subsection>
4789 <subsection>
4790 <title>Designing a scheme</title>
4791 <body>
4792
4793 <p>
4794 You should start designing a partitioning scheme for your system. Telling you
4795 what partitioning scheme is best for you is impossible, but here are some
4796 pointers:
4797 </p>
4798
4799 <ul>
4800 <li>
4801 For each partition you want to create, ask around how much space the
4802 partition might get given the tools and services you want to install. Make
4803 sure you design each partition to be larger than the size given by others:
4804 growing a file system is <e>not</e> without danger.
4805 </li>
4806 <li>
4807 Not all Linux file system locations are partitionable:
4808 <ol>
4809 <li>
4810 The <path>/etc</path>, <path>/lib</path>, <path>/bin</path> and
4811 <path>/sbin</path> locations must stay on the root file system as they
4812 are required by the Operating System under any circumstances. This is
4813 because they are needed to be able to mount other partitions on the file
4814 system.
4815 </li>
4816 <li>
4817 Only directories can be separated from a file system. Each separation
4818 automatically includes all subdirectories.
4819 </li>
4820 <li>
4821 You can not separate two different locations and still store them on a
4822 single partition (logical, that is - with Volume Management physical
4823 partitions <e>can</e> hold several logical ones), so you can't put both
4824 <path>/usr</path> and <path>/opt</path> on a single location.
4825 </li>
4826 </ol>
4827 Some locations also require special attention:
4828 <ol>
4829 <li>
4830 The <path>/dev</path> location will already be separated from the main
4831 file system by the device manager, so you don't need to devote a
4832 specific partition for <path>/dev</path>.
4833 </li>
4834 <li>
4835 The <path>/tmp</path> and <path>/var/tmp</path> locations are used for
4836 temporary file storage. Although the content of these locations is slim
4837 in most situations, it can grow exponentially. For instance, during the
4838 installation of software through Portage, <path>/var/tmp/portage</path>
4839 is used and can require up to a few gigabytes (!) of space.
4840 </li>
4841 </ol>
4842 </li>
4843 <li>
4844 Ask yourself if you really need that nifty file system feature: using Volume
4845 Management or (Software) RAID does require more work. Without much guidance,
4846 you might lose too much time stabbing at storage related problems.
4847 </li>
4848 <li>
4849 Many backup solutions are file system independant, but some of them aren't.
4850 If the backup storage is limited but you are using a file system dependant
4851 solution, make sure that the total amount of data that it will backup
4852 doesn't exceed the dedicated backup storage size.
4853 </li>
4854 </ul>
4855
4856 <p>
4857 We will discuss the more advanced storage solutions in more detail in a
4858 different part of this book, but to make you aware of the possibilities we'll
4859 give a quick rundown of those features first. We won't integrate these solutions
4860 with the installation procedure though as that would complicate things too much.
4861 </p>
4862
4863 </body>
4864 </subsection>
4865 <subsection id="raid_arrays">
4866 <title>RAID arrays</title>
4867 <body>
4868
4869 <p>
4870 RAID stands for <e>Redundant Array of Inexpensive Disks</e> and is a well-known
4871 way of putting disks together. There are several RAID levels defined:
4872 </p>
4873
4874 <ul>
4875 <li>
4876 <e>RAID-Linear</e> places two (or more) disks next to each other and let the
4877 user view them as if those disks were a single one. At first, all data is
4878 written to the first disk. Once that disk is filled, the second disk is
4879 used, etc.
4880 </li>
4881 <li>
4882 <e>RAID-0</e> is also called <e>striping</e>: unlike with RAID-Linear data
4883 is first partitioned after which each 'stripe' of data is written to a disk.
4884 Therefore data written to a RAID-0 array is stored across all disks.
4885 </li>
4886 <li>
4887 <e>RAID-1</e>, also known as <e>mirroring</e>, places all data written to
4888 the array on <e>all disks</e>. In other words, each member of the RAID-1
4889 array is an exact copy of the others.
4890 </li>
4891 <li>
4892 <e>RAID-5</e> requires at least three disks. We'll explain its inner
4893 workings for three disks, but more than three is perfectly possible as well.
4894 When data is sent to the array, it is partitioned. For each two parts of
4895 data, a simple <e>checksum</e> is created, so we have three data segments.
4896 Those three segments are then stored to a disk. If one of the segments is
4897 lost, it can be retrieved from the other two segments if necessary.
4898 </li>
4899 </ul>
4900
4901 <p>
4902 Other RAID levels exists but are less frequently used.
4903 </p>
4904
4905 <p>
4906 RAID arrays are interesting when you need high availability of your data. For
4907 instance, with RAID-1, if one of the disks crashes, the other one takes over.
4908 Something similar happens with RAID-5: if one of the disks crashes, the other
4909 disks can work together to generate the data that was stored on the
4910 malfunctioning disk.
4911 </p>
4912
4913 <p>
4914 If you have a true hardware RAID card, using RAID within Linux (or any other
4915 Operating System for that matter) does not require any input at all: the
4916 operating system does not handle anything RAID-related. You only see the result,
4917 the hardware RAID card handles all the rest.
4918 </p>
4919
4920 <p>
4921 Pseudo-hardware RAID cards offer various RAID-related services but still require
4922 some (or a lot) of operating system input. Such cards therefore require a good
4923 working driver and perhaps even a few tools. Although they aren't as transparent
4924 as true hardware RAID cards, they still beat the software RAID.
4925 </p>
4926
4927 <p>
4928 Software RAID allows users to benefit from most of the RAID functionality
4929 without requiring any specific hardware. This does require the operating system
4930 to handle all the RAID-related tasks, requiring some computing time.
4931 </p>
4932
4933 <p>
4934 Information about using Software RAID is discussed further in this book.
4935 </p>
4936
4937 </body>
4938 </subsection>
4939 <subsection>
4940 <title>Logical Volume Management</title>
4941 <body>
4942
4943 <p>
4944 Unlike RAID, which is most often used for redundancy, LVM allows the user to
4945 maximise the flexibility of his storage. Basically LVM (actually, LVM2) should
4946 be seen as a layer in between the physical storage (the disks) and the logical
4947 view (the file system).
4948 </p>
4949
4950 <p>
4951 With LVM, you create <e>logical volumes</e> (partitions) which hold the file
4952 systems. One or more logical volumes are stored on a <e>volume group</e> which
4953 is nothing more than a collection of <e>physical volumes</e> (partitions). A
4954 physical volume is an entire disk, or a partition, controller by LVM.
4955 </p>
4956
4957 <p>
4958 The LVM software offers services on top of this intermediate layer. For
4959 instance, you can `spread' data across several partitions (like RAID-Linear or
4960 RAID-0), or have several logical partitions on a single physical one. But that's
4961 not it. LVM allows you to add (or remove) physical volumes from a volume group
4962 without affecting the logical volumes (unless of course the logical volumes
4963 require more space than the volume group has to offer), move data from one disk
4964 to another without requiring any manual copy procedure or take a snapshot of an
4965 entire file system without really having to take a full copy of the system.
4966 </p>
4967
4968 <p>
4969 These (and more) features make LVM a powerful tool of many system
4970 administrators.
4971 </p>
4972
4973 <p>
4974 Information about LVM2 is discussed further in this book.
4975 </p>
4976
4977 </body>
4978 </subsection>
4979 <subsection>
4980 <title>Preparing the devices</title>
4981 <body>
4982
4983 <p>
4984 Before you can start creating the necessary partitions, you need to make sure
4985 that the Linux Operating System can work with your hardware. If the installation
4986 CD that you used to boot didn't automatically detect your hardware, you will
4987 need to load the appropriate support manually.
4988 </p>
4989
4990 <p>
4991 Although we can start by educating you how the Linux kernel addresses the disks
4992 (like <path>/dev/hd*</path> for IDE, <path>/dev/sd*</path> for SCSI and Serial
4993 ATA, ...) and what logic is behind it, we will leave this for another document
4994 (or perhaps a later chapter :) and immediately tell you how to discover where
4995 your disks are.
4996 </p>
4997
4998 <p>
4999 If your disks are SCSI or Serial ATA (although some SATA disks are treated as
5000 native IDE disks, most of them are using a SCSI-like driver), run <c>dmesg</c>
5001 and filter out any occurrence of 'disk'. IDE disk users should filter out 'ide'
5002 and 'hd':
5003 </p>
5004
5005 <pre caption="Finding out what disk(s) you have">
5006 <comment>(For SCSI or SATA:)</comment>
5007 # <i>dmesg | grep -i disk</i>
5008 Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
5009
5010 <comment>(For IDE:)</comment>
5011 # <i>dmesg | grep -i ide | grep -i hd</i>
5012 TODO insert IDE output
5013 </pre>
5014
5015 <p>
5016 In the above example we discover that our SCSI (or SATA) disk is at
5017 <path>/dev/sda</path> and our IDE disks are at TODO. If this does not reflect
5018 the setup you have, you will need to load the appropriate drivers. Otherwise
5019 continue with the next section on <uri link="#raid_arrays">RAID Arrays</uri>.
5020 </p>
5021
5022 <p>
5023 Your Linux system can tell you what controllers you have and what chipset they
5024 use. This information is vital if you need to load additional drivers. The
5025 combination of the <c>lspci</c> tool and the <c>grep</c> filter proves to be
5026 quite efficient.
5027 </p>
5028
5029 <p>
5030 For instance, if you have an IDE controller but it wasn't loaded by default, try
5031 filtering for 'ide'. Similar actions should be performed for Serial ATA ('sata')
5032 or SCSI ('scsi'):
5033 </p>
5034
5035 <pre caption="Findout out what IDE controllers are available on a system">
5036 # <i>lspci | grep -iE '(ide|sata)'</i>
5037 0000:00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family)
5038 IDE Controller (rev 04)
5039 0000:00:1f.2 Class 0106: Intel Corporation 82801FBM (ICH6M) SATA Controller
5040 (rev 04)
5041 </pre>
5042
5043 <p>
5044 Based on this information you can try searching for the appropriate support
5045 drivers. A quick <c>grep</c> on the content of the <path>/lib/modules</path>
5046 directory (which stores all the additional kernel modules):
5047 </p>
5048
5049 <pre caption="Searching for support drivers">
5050 # <i>find /lib/modules | grep -iE '(82801|ich6)'</i>
5051 TODO
5052 </pre>
5053
5054 <p>
5055 If you found a matching kernel module, load it in memory and rediscover where
5056 your disks are:
5057 </p>
5058
5059 <pre caption="Loading the kernel module">
5060 # <i>modprobe TODO</i>
5061 </pre>
5062
5063 </body>
5064 </subsection>
5065 </section>
5066
5067 <section>
5068 <title>Partitioning</title>
5069 <subsection>
5070 <title>Architecture-specific</title>
5071 <body>
5072
5073 <p>
5074 Partitioning is architecture-dependant as partitions are generally tagged for
5075 some function. The <e>type</e> of a distribution is therefore a very important
5076 setting. Two important types are:
5077 </p>
5078
5079 <dl>
5080 <dt>82 (Linux Swap)</dt>
5081 <dd>The partition holds swap information</dd>
5082 <dt>83 (Linux)</dt>
5083 <dd>The partition holds a Linux file system</dd>
5084 </dl>
5085
5086 <p>
5087 The partition structure is also architecture-dependant. Some architectures only
5088 allow a few partitions (sometimes also called <e>slices</e>) to be available,
5089 others have some weird solution to get over a very narrow limit causing
5090 confusion in the numbering scheme of the partitions. There are even
5091 architectures where certain partition numbers are reserved for a specific use.
5092 </p>
5093
5094 <p>
5095 You will find architecture-specific partitioning information in the first
5096 Appendix of this book, together with an example partition layout which you can
5097 use to get started with Gentoo Linux.
5098 </p>
5099
5100 </body>
5101 </subsection>
5102 <subsection>
5103 <title>Create them, now!</title>
5104 <body>
5105
5106 <p>
5107 Read the partitioning information for your architecture <e>now</e> and create
5108 the partitions you'll use to store Gentoo Linux on.
5109 </p>
5110
5111 </body>
5112 </subsection>
5113 </section>
5114
5115 <section>
5116 <title>Filesystems</title>
5117 <subsection>
5118 <title>Overview</title>
5119 <body>
5120
5121 <p>
5122 Partitions alone aren't sufficient to store data (unless the partition for a
5123 specific purpose, like raw access for databases). You need to apply some
5124 structure to the partition so that Linux knows where files and directories are
5125 stored, what permissions are set to the file, what security attributes are
5126 applied, etc.
5127 </p>
5128
5129 <p>
5130 This is the task of the file system. A <e>file system</e> is a standard way of
5131 storing and retrieving information from a partition. It dictates where the files
5132 data is stored and how to get access to the file <e>metadata</e> (everything
5133 about a file except the content, like name, creation date, owner, ...).
5134 </p>
5135
5136 <p>
5137 Linux supports quite a lot file systems, but not all of them are functional
5138 enough to store Linux files. For instance, the FAT-family (FAT12 for floppies,
5139 FAT16 for small partitions and FAT32 for larger ones) has no concept of
5140 permissions while the NTFS-family (all the dozen versions that Microsoft has
5141 released thus far) is too complex (partially due to its closed-source nature)
5142 and not fully supported.
5143 </p>
5144
5145 <p>
5146 We will describe the most known file systems that you can use to hold your Linux
5147 Operating System together with some information on the tools associated with the
5148 file system.
5149 </p>
5150
5151 </body>
5152 </subsection>
5153 <subsection>
5154 <title>Extended 3</title>
5155 <body>
5156
5157 <p>
5158 Extended 3 is the <e>journaled</e> version of Extended 2, the older (but proven)
5159 file system which is the first real Linux file system ever developed for Linux
5160 (before ext2, the Minix file system was used - but that was a long, long time
5161 ago). Extended 3 is currently the most used file system as well.
5162 </p>
5163
5164 <p>
5165 As a <e>journaled</e> file system, ext3 can make sure that the entire file
5166 system is consistent at any time. In other words, if your system would ever
5167 crash (for instance due to a power interruption), the file system would never
5168 contain garbled data - if you were busy writing data to the disk, either the old
5169 data is there, or the new data, but not a partial write.
5170 </p>
5171
5172 <p>
5173 You can choose between no journaling (which basically means that the file system
5174 should be seen a an Extended 2), metadata journaling (where only the metadata is
5175 consistent across time) where you can choose between writeback (first metadata
5176 write, then data) and ordered (first data write, then metadata) and full
5177 journaling. The ordered metadata journaling is the default.
5178 </p>
5179
5180 <p>
5181 Extended 3 supports access control lists and is therefore a candidate file
5182 system for more security enhanced Linux kernels who require ACLs to be available
5183 for the file system.
5184 </p>
5185
5186 <p>
5187 To write an ext3 file system on a device, use the <c>mke2fs</c> tool with the
5188 <c>-j</c> option (for <e>journaling</e>):
5189 </p>
5190
5191 <pre caption="Writing an ext3 file system on /dev/hda3">
5192 # <i>mke2fs -j /dev/hda3</i>
5193 </pre>
5194
5195 <p>
5196 The <c>mke2fs</c> command has a few interesting options as well:
5197 </p>
5198
5199 <ul>
5200 <li>
5201 Writing a file system to the disk is quite fast. If you want to check the
5202 device for bad blocks during the file system write, add a <c>-c</c> option.
5203 If you specify this option twice, a full read-write test is performed
5204 instead of a read-only test.
5205 </li>
5206 <li>
5207 To speed up lookups in large directories, you can enable directory indexing
5208 by adding <c>-O dir_index</c>.
5209 </li>
5210 <li>
5211 Large file systems might free more space by adding <c>-O sparse_super</c>.
5212 This will decrease the percentage of blocks used as backups for the file
5213 metadata.
5214 </li>
5215 </ul>
5216
5217 </body>
5218 </subsection>
5219 <subsection>
5220 <title>The swap file system</title>
5221 <body>
5222
5223 <p>
5224 Although you can't 'use' the swap space directly, it does use a specific file
5225 system to store the memory pages. To create a swap file system on the swap
5226 partition, use <c>mkswap</c>:
5227 </p>
5228
5229 <pre caption="Creating a swap file system on /dev/hda2">
5230 # <i>mkswap /dev/hda2</i>
5231 </pre>
5232
5233 <p>
5234 Unlike the other file system creation tools, <c>mkswap</c> hardly takes
5235 additional options for tuning purposes.
5236 </p>
5237
5238 </body>
5239 </subsection>
5240 <subsection>
5241 <title>Create the file systems</title>
5242 <body>
5243
5244 <p>
5245 Create the file systems on your partitions <e>now</e> and don't forget to create
5246 the swap file system as well.
5247 </p>
5248
5249 </body>
5250 </subsection>
5251 </section>
5252
5253 <section>
5254 <title>Getting in the minimal environment</title>
5255 <subsection>
5256 <title>Mounting the partitions</title>
5257 <body>
5258
5259 <p>
5260 The next step is to <e>mount</e> the file systems in the Linux file system
5261 hierarchy so that you can use it. As we have said in the previous part, mounting
5262 attaches the file system to the current hierarchy at a specified location.
5263 </p>
5264
5265 <p>
5266 On the Gentoo installation CD, a directory <path>/mnt/gentoo</path> is available
5267 to mount your root file system in spe. Let us suppose that the file system is at
5268 <path>/dev/hda3</path>, then the <c>mount</c> command would be:
5269 </p>
5270
5271 <pre caption="Mounting the root file system at /mnt/gentoo">
5272 # <i>mount /dev/hda3 /mnt/gentoo</i>
5273 </pre>
5274
5275 <p>
5276 You'll also need to mount the other file systems at the correct place. Because
5277 your root file system doesn't contain any directories yet, you'll need to create
5278 them. For instance, if you have a separate <path>/boot</path> (at
5279 <path>/dev/hda1</path> and <path>/usr</path> (at <path>/dev/hda4</path>) file
5280 system:
5281 </p>
5282
5283 <pre caption="Creating mount points prior to mounting the file systems">
5284 # <i>mkdir /mnt/gentoo/boot /mnt/gentoo/usr</i>
5285 # <i>mount /dev/hda4 /mnt/gentoo/usr</i>
5286 # <i>mount /dev/hda1 /mnt/gentoo/boot</i>
5287 </pre>
5288
5289 <p>
5290 You will also need to activate the swap partition. This is accomplished using
5291 the <c>swapon</c> command:
5292 </p>
5293
5294 <pre caption="Activating the swap space">
5295 <comment>(Example for a swap file system at /dev/hda2)</comment>
5296 # <i>swapon /dev/hda2</i>
5297 </pre>
5298
5299 </body>
5300 </subsection>
5301 <subsection>
5302 <title>Preparing the stage tarball</title>
5303 <body>
5304
5305 <p>
5306 A Gentoo stage tarball contains a minimal Gentoo environment. If you are booted
5307 from a Gentoo universal installation CD you might find the stage of your choice
5308 on the CD (probably at <path>/mnt/cdrom/stages</path>). If not, you can download
5309 one from one of our <uri
5310 link="http://www.gentoo.org/main/en/mirrors.xml">mirrors</uri>. They are stored
5311 in the appropriate release directory under the name <path>stages/</path>.
5312 </p>
5313
5314 <p>
5315 A <e>tarball</e> is an archive, usually compressed using Lempel-Ziv coding
5316 (LZ77 - <c>gzip</c>) or Burrows-Wheeler compression with Huffman coding
5317 (<c>bzip2</c>). Uncompressed, you will have a single file (a tar<sup>2</sup>
5318 file) that contains all the files in the archive, nicely appended one after
5319 another.
5320 </p>
5321
5322 <p>
5323 To download such a stage tarball, <e>first</e> go to <path>/mnt/gentoo</path>.
5324 This is required so that, once you start downloading the file, it is stored on
5325 the disk and not in memory (the Gentoo installation CD creates a virtual 'disk'
5326 in memory so that you can use the CD without requiring any pre-installed Linux
5327 system).
5328 </p>
5329
5330 <pre caption="Downloading a stage tarball">
5331 # <i>cd /mnt/gentoo</i>
5332 # <i>lynx http://www.gentoo.org/main/en/mirrors.xml</i>
5333 </pre>
5334
5335 <p>
5336 Next, extract the tarball to the <path>/mnt/gentoo</path> location. Use the
5337 <c>tar</c> tool with <c>xjpf</c> as options and the tarball as argument:
5338 </p>
5339
5340 <ul>
5341 <li>e<b>x</b>tract the files from the archive</li>
5342 <li>
5343 use <c>bunzip2</c> to decompress the archive (<b>j</b> due to shortage of
5344 available options :)
5345 </li>
5346 <li><b>p</b>reserve the permissions that were stored in the tarball</li>
5347 <li>use the next <b>f</b>ile as the archive</li>
5348 </ul>
5349
5350 <pre caption="Extracting the stage tarball">
5351 # <i>tar xjpf &lt;file&gt;</i>
5352 </pre>
5353
5354 <p>
5355 If your stage tarball is stored on the CD, just use the path to the file for
5356 <path>&lt;file&gt;</path>.
5357 </p>
5358
5359 <note>
5360 <sup>2</sup>: the name <e>tar</e> comes from Tape ARchive. The <c>tar</c> tool
5361 was (and still is) commonly used for backing up files to tapes which only have
5362 linear access (unlike digital media where you can quickly jump from one location
5363 to another). Because of this limitation, all files are aligned after another
5364 with a table of contents stored in the beginning of the tape. The <c>tar</c>
5365 tool is still a very popular tool for creating archives.
5366 </note>
5367
5368 </body>
5369 </subsection>
5370 <subsection>
5371 <title>Extracting a Portage snapshot</title>
5372 <body>
5373
5374 <p>
5375 We need to extract another tarball, namely a <e>portage snapshot</e>. Portage is
5376 the software management system Gentoo uses. The package information itself is
5377 stored in what we call the <e>Portage tree</e>. A <e>portage snapshot</e>
5378 is a Portage tree taken at a certain point in time.
5379 </p>
5380
5381 <p>
5382 On a universal installation CD, you might find such a snapshot at
5383 <path>/mnt/gentoo/snapshot</path>, but you can always download a snapshot from
5384 the Internet as well. Go to one of our <uri
5385 link="http://www.gentoo.org/main/en/mirrors.xml">mirrors</uri> and locate the
5386 most recent portage snapshot in the <path>snapshots/</path> directory.
5387 </p>
5388
5389 <pre caption="Downloading a Portage tree snapshot">
5390 # <i>lynx http://www.gentoo.org/main/en/mirrors.xml</i>
5391 </pre>
5392
5393 <p>
5394 We don't need any specific permission information from the snapshot, so the
5395 <c>tar</c> command only requires <c>xjf</c> as options. However, the snapshot
5396 <e>must</e> be extracted inside <path>/mnt/gentoo/usr</path>. We could do the
5397 same as we did with the stage tarball and first go to
5398 <path>/mnt/gentoo/usr</path> before we run the extraction command, but you can
5399 also use <c>-C &lt;location&gt;</c> (with a capital C) to inform <c>tar</c> that
5400 the <path>/mnt/gentoo/usr</path> location is the destination:
5401 </p>
5402
5403 <pre caption="Extracting a Portage tree snapshot">
5404 # <i>tar xjf &lt;snapshot&gt; -C /mnt/gentoo/usr</i>
5405 </pre>
5406
5407 </body>
5408 </subsection>
5409 <subsection>
5410 <title>Preparing the minimal Gentoo environment</title>
5411 <body>
5412
5413 <p>
5414 As you might have guessed already, we are trying to have
5415 <path>/mnt/gentoo</path> contain a fully functional Linux environment. To finish
5416 this off, we need to mount a specific <e>pseudo file system</e> called proc at
5417 <path>/mnt/gentoo/proc</path>. This is not a file system stored on a disk, but
5418 rather an interface to the Linux kernel showing kernel information as regular
5419 files. This allows you to retrieve kernel (and system) information by just
5420 reading files instead of requiring specific tools.
5421 </p>
5422
5423 <pre caption="Mounting the proc file system">
5424 # <i>mount -t proc none /mnt/gentoo/proc</i>
5425 </pre>
5426
5427 <p>
5428 To be able to use the network you have defined (if applicable), you need to copy
5429 over the <path>/etc/resolv.conf</path> file to the new Linux environment:
5430 </p>
5431
5432 <pre caption="Copying over the name resolving information file">
5433 # <i>cp /etc/resolv.conf /mnt/gentoo/etc</i>
5434 </pre>
5435
5436 </body>
5437 </subsection>
5438 <subsection>
5439 <title>Changing the root from CD to the new environment</title>
5440 <body>
5441
5442 <p>
5443 The final step now is to change the root of your file system from the one
5444 provided by the CD to the one you just set up, namely <path>/mnt/gentoo</path>.
5445 Using the <c>chroot</c> tool, your terminal session will not see anything
5446 outside <path>/mnt/gentoo</path> unless you finish the <c>chroot</c> itself.
5447 Because you need a shell to navigate, we run <path>/bin/bash</path> (the Bourn
5448 Again SHell) right after changing the root:
5449 </p>
5450
5451 <pre caption="Changing the root to /mnt/gentoo">
5452 # <i>chroot /mnt/gentoo /bin/bash</i>
5453 </pre>
5454
5455 </body>
5456 </subsection>
5457 </section>
5458
5459 </sections>
5460
5461
5462
5463 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-intro-choice.xml
5464
5465 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-choice.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
5466 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-choice.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
5467
5468 Index: hb-intro-choice.xml
5469 ===================================================================
5470 <?xml version='1.0' encoding='UTF-8'?>
5471 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
5472
5473 <!-- The content of this document is licensed under the CC-BY-SA license -->
5474 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
5475
5476 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-choice.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
5477
5478 <sections>
5479
5480 <version>0.0</version>
5481 <date>2005-06-19</date>
5482
5483 <section>
5484 <title>Distributions</title>
5485 <subsection>
5486 <title>Differences</title>
5487 <body>
5488
5489 <p>
5490 Now that you know a bit about Linux and Free Software, you need to make a choice
5491 about the distribution you want to use. As you already know, a distribution
5492 makes it easy for a user to install and maintain software. But a distribution
5493 does a lot more than this. In the next few sections we describe various topics
5494 which are filled in differently by distributions.
5495 </p>
5496
5497 </body>
5498 </subsection>
5499 <subsection>
5500 <title>Architectures</title>
5501 <body>
5502
5503 <p>
5504 For a system to become functional, the source code of an application must be
5505 translated to machine instructions. These instructions differ from CPU to CPU. A
5506 set of machine instructions for a certain brand of CPUs (and its clones) is
5507 called the <e>architecture</e>. The best known architecture is the <c>x86</c>
5508 architecture, but several others exist, such as alpha, sparc, ppc, ...
5509 </p>
5510
5511 <p>
5512 Not all distributions support all possible architectures. Some distributions
5513 even limit their support to a single architecture, others take pride in the fact
5514 that they support quite a lot architectures.
5515 </p>
5516
5517 <p>
5518 Gentoo supports quite a few architectures: alpha, amd64, hppa, ia64, mips, ppc,
5519 ppc64, sparc, x86 and even has unofficial support for arm, m68k, s390, sh, ...
5520 </p>
5521
5522 </body>
5523 </subsection>
5524 <subsection>
5525 <title>Package building</title>
5526 <body>
5527
5528 <p>
5529 There are many ways a software title can be packaged. Some distributions do not
5530 prebuilt the software (so that the system still needs to compile the source code
5531 prior to installing it to the system), but most do. Prebuilt software can be
5532 packaged in an RPM file (RedHat Package Manager), a DEB file (Debian Package),
5533 ... Each of those package formats has its advantages and disadvantages.
5534 </p>
5535
5536 <p>
5537 By default Gentoo lets the system built the software. The format Gentoo uses is
5538 called an <e>ebuild</e> which contains instructions for Portage, the Gentoo
5539 software manager, to built the software for the user.
5540 </p>
5541
5542 </body>
5543 </subsection>
5544 <subsection>
5545 <title>Provided software</title>
5546 <body>
5547
5548 <p>
5549 Some distributions only provide a few software titles because they aim on a very
5550 particular niche (like embedded Linux, a Linux terminal server, ...) while
5551 others provide a plethora on software titles. This is quite different from other
5552 Operating Systems where you need to acquire additional software, or at least
5553 have to locate, download and install it separately. With Linux, this process is
5554 often embedded in the distribution which makes it a lot easier for the user.
5555 </p>
5556
5557 <p>
5558 Gentoo provides more than 9500 packages.
5559 </p>
5560
5561 </body>
5562 </subsection>
5563 <subsection>
5564 <title>Preconfiguration</title>
5565 <body>
5566
5567 <p>
5568 When you install software, the distribution can try to preconfigure the
5569 software for you. Some distributions go quite far so that the user hardly needs
5570 to know how to configure anything - for the common user, everything works out of
5571 the box. Other distributions do not try to configure most packages and leave it
5572 to the user. After all, the user knows best what he needs and what not.
5573 </p>
5574
5575 <p>
5576 Gentoo mainly stays with the configuration as provided by the software project
5577 and informs its users how to configure the software through excellent
5578 step-by-step documentation.
5579 </p>
5580
5581 </body>
5582 </subsection>
5583 <subsection>
5584 <title>System maintenance</title>
5585 <body>
5586
5587 <p>
5588 A Linux system is not only a collection of installed software, the software
5589 needs to work well (configuration) and should be manageable. System maintenance
5590 is a job where you make sure that the system works as it should. You can
5591 maintain your entire system through a single software package (like
5592 <c>webmin</c>) or through a collection of software titles.
5593 </p>
5594
5595 <p>
5596 While some distributions try to provide an all-in-one maintenance solution, most
5597 distributions opt for a decentralised maintenance with specific tools for
5598 specific jobs.
5599 </p>
5600
5601 <p>
5602 Gentoo does not offer any configuration tools - the user should configure his
5603 system through the standard Linux tools.
5604 </p>
5605
5606 </body>
5607 </subsection>
5608 <subsection>
5609 <title>Branding</title>
5610 <body>
5611
5612 <p>
5613 When a system is <e>branded</e> it is beautified: logo's are added, backgrounds
5614 changed, behaviour altered, ... so that the system feels as if it was developed
5615 and released by a single entity instead of several ones. Not all distributions
5616 like branding because it removes the default look and feel that the individual
5617 software projects have given to their software. They leave it as-is out of
5618 respect for the software projects.
5619 </p>
5620
5621 <p>
5622 Gentoo does not brand applications by default.
5623 </p>
5624
5625 </body>
5626 </subsection>
5627 <subsection>
5628 <title>Installation</title>
5629 <body>
5630
5631 <p>
5632 Whereas several distributions have a similar or even identical way of installing
5633 software, almost no distribution has the same installation method. Some
5634 distributions provide an installation where you hardly need to provide any
5635 information, others require you to perform every single step yourself. And all
5636 the other distributions are situated somewhere between those extremes.
5637 </p>
5638
5639 <p>
5640 Gentoo lets you perform every single installation step yourself, making a great
5641 learning school for Linux internals.
5642 </p>
5643
5644 </body>
5645 </subsection>
5646 <subsection>
5647 <title>Policies</title>
5648 <body>
5649
5650 <p>
5651 Albeit this is less visible in most distributions, some have a policy they
5652 adhere to. For instance, some distributions might have a policy that they don't
5653 allow non-free software in their distribution. Therefore such distributions will
5654 always be free to use with no restrictions whatsoever (apart from those governed
5655 by the free software license(s) they use).
5656 </p>
5657
5658 <p>
5659 Gentoo has a policy, written down in their <uri
5660 link="http://www.gentoo.org/main/en/contract.xml">Social Contract</uri>. It is
5661 less strict than the one mentioned in the previous paragraph, informing the user
5662 that Gentoo will never depend on non-free software. In other words, you will
5663 always have the ability to use a completely free Operating System with no
5664 crippled features whatsoever. Gentoo <e>does</e> offer non-free software through
5665 Portage - at least, it offers the instructions on how to integrate it
5666 succesfully on your system. It will never allow you to install software against
5667 the spirit of the license which it is released under.
5668 </p>
5669
5670
5671 </body>
5672 </subsection>
5673 </section>
5674 <section>
5675 <title>Software choices</title>
5676 <subsection>
5677 <title>Why it doesn't matter</title>
5678 <body>
5679
5680 <p>
5681 When you are starting with Linux (and Gentoo Linux) you will undoubtedly find it
5682 difficult to know what software to install. How is the best e-mail client
5683 called? Can you run Windows applications on Linux? How is the support for the
5684 many Word documents you might have? How can you edit pictures?
5685 </p>
5686
5687 <p>
5688 There are many, many tools available for Gentoo Linux. They offer a plethora of
5689 possibilities and functions. It is not mandatory for you to know what software
5690 you will use now: when you install Gentoo Linux, you first install a minimal,
5691 bare-boned system. When you have this, you can start finding out what software
5692 you would like to use.
5693 </p>
5694
5695 <p>
5696 Since all software is freely available, the best way to know what software to
5697 use is to try and test them out until you find one that suits you the best. Of
5698 course, it is often wise to build upon the knowledge of others: ask around what
5699 the best software would be for your needs.
5700 </p>
5701
5702 </body>
5703 </subsection>
5704 </section>
5705 </sections>
5706
5707
5708
5709 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-intro-linux.xml
5710
5711 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-linux.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
5712 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-linux.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
5713
5714 Index: hb-intro-linux.xml
5715 ===================================================================
5716 <?xml version='1.0' encoding='UTF-8'?>
5717 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
5718
5719 <!-- The content of this document is licensed under the CC-BY-SA license -->
5720 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
5721
5722 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-linux.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
5723
5724 <sections>
5725
5726 <version>0.0</version>
5727 <date>2005-06-19</date>
5728
5729 <section>
5730 <title>Linux: concept and history</title>
5731 <subsection>
5732 <title>What is Linux?</title>
5733 <body>
5734
5735 <p>
5736 Linux is a free operating system, consisting of the Linux kernel, libraries
5737 and utilities which allow the user to interact with his system.
5738 </p>
5739
5740 <p>
5741 The <uri link="http://www.kernel.org/">Linux kernel</uri> is the core of the
5742 Linux Operating System. It is responsible for all hardware interaction,
5743 process management, memory management, network protocol support and file
5744 system support. We probably forgot a few other responsibilities as well,
5745 but it is obvious that the kernel has many important responsibilities. All these
5746 tasks are handled in the background: as the core of the system, the user has no
5747 direct interaction with the kernel.
5748 </p>
5749
5750 <p>
5751 The core library on a Linux system is the <uri
5752 link="http://www.gnu.org/software/libc/libc.html">GNU C library</uri>, called
5753 <c>glibc</c>. This library provides an interface between the Linux kernel,
5754 which operates almost independently, and the user applications. The library
5755 contains <e>system call</e> definitions and basic features to facilitate
5756 the application development for the Linux Operating System.
5757 </p>
5758
5759 <p>
5760 The core utilities on a Linux Operating System provide you, the user, with a way
5761 to interact with the system. These utilities allow you to create and manipulate
5762 files, navigate around on your system, start and stop processes, etc. There is
5763 no "single" core utility package: the Linux Operating System contains a dozen
5764 different packages and two Linux systems can have different utilities.
5765 </p>
5766
5767 <p>
5768 The most well-known and used utilities however (such as those for navigating on
5769 the system) are generally called the <uri
5770 link="http://www.gnu.org/software/coreutils/">GNU Core Utilities</uri>. GNU is a
5771 project devoted to the development of a completely free (as in 'free speech')
5772 Unix-like environment. Because GNU plays an important role on most Linux
5773 systems, many people talk about GNU/Linux.
5774 </p>
5775
5776 </body>
5777 </subsection>
5778 <subsection>
5779 <title>So... what is Linux?</title>
5780 <body>
5781
5782 <p>
5783 While the above explanation is quite technical, the Linux Operating System is
5784 built upon the <uri link="http://www.unix.org/">UNIX</uri> idea, delivering
5785 UNIX-like features and stability. But it is more than just a UNIX clone. It is
5786 developed by several thousand developers who work on the operating system in
5787 their free time (although many of them also work on Linux on a paid-for basis).
5788 </p>
5789
5790 <p>
5791 The development of Linux is decentralised: each part of the Linux Operating
5792 System (kernel, libraries, tools, graphical environments, office suites, server
5793 software, ...) is developed by its own project which works independently of
5794 the other projects. Unlike what many people think, this does <e>not</e> mean
5795 that the projects do not work well with each other. Each software title that
5796 interacts with another uses <e>standards</e>. A standard is an established or
5797 widely recognized technical explanation to accomplish something. The best
5798 standards are open standards.
5799 </p>
5800
5801 <p>
5802 An <e>open standard</e> is a freely available and sufficiently documented
5803 technical explanation that allows any developer to write software that operates
5804 as the document dictates or supports the communication described by the
5805 standard. Therefore it can flawlessly interact with other software titles that
5806 adhere to the document as well. The document and its technical implications
5807 are free of any juridical limits (like patents, licenses, ...) and the
5808 document is accepted by a standards organisation (like ISO, ANSI, ...).
5809 </p>
5810
5811 <p>
5812 Examples of such open standards are the various network protocols (like TCP/IP,
5813 HTTP, ...), character encodings (ASCII, UTF-8, ...), etc.
5814 Because the applications use standards, interoperability amongst the various
5815 applications is guaranteed.
5816 </p>
5817
5818 <p>
5819 The Linux Operating System is characterised by freedom and choice. Freedom,
5820 because the software is free (although non-free software exists for Linux as
5821 well). Choice, because you will have the choice between several applications
5822 for each action you want to perform.
5823 </p>
5824
5825 </body>
5826 </subsection>
5827 <subsection>
5828 <title>Where can I find Linux?</title>
5829 <body>
5830
5831 <p>
5832 You should not be searching for Linux sensu stricto as you'll only find the
5833 Linux kernel which you can't use without additional libraries and tools. What
5834 you need to look for is a distribution. A distribution is a project
5835 that combines the Linux kernel, libraries and tools in a coherent software
5836 package. With a distribution you can install, configure and use a Linux
5837 system easily.
5838 </p>
5839
5840 <p>
5841 Next to the distribution, you might need to install additional software. If you
5842 can not install it through your distribution (most distributions offer thousands
5843 of software titles out of the box) or you do not know any software title by
5844 name, then you can visit one of the many free software repositories
5845 around. Known repositories are <uri
5846 link="http://www.freshmeat.net">Freshmeat</uri>, <uri
5847 link="http://www.icewalkers.com">Icewalkers</uri>, <uri
5848 link="http://www.sourceforge.net">SourceForge</uri>, etc.
5849 </p>
5850
5851 <p>
5852 Known distributions are <uri link="http://fedora.redhat.com">Fedora</uri>, <uri
5853 link="http://www.mandriva.com">Mandriva</uri>, <uri
5854 link="http://www.novell.com/linux/suse/">SuSE</uri>, <uri
5855 link="http://www.debian.org">Debian</uri>, <uri
5856 link="http://www.ubuntu.org">Ubuntu</uri> and of course <uri
5857 link="http://www.gentoo.org">Gentoo</uri>, but many others exist as well.
5858 </p>
5859
5860 </body>
5861 </subsection>
5862 <subsection>
5863 <title>Linux' history</title>
5864 <body>
5865
5866 <p>
5867 Linus Thorvalds, the creator of the Linux kernel, made a first posting about his
5868 hobby project on August 25th, 1991. People could download his code and use it,
5869 modify it and redistribute it. Linus also made a few ports available to make it
5870 possible for others to run a Linux operating system. Of course, in those days,
5871 the operating system contained only a few applications and hardware support was
5872 very limited.
5873 </p>
5874
5875 <p>
5876 In the next few years, the Linux kernel grew and expanded: support for
5877 networking, SCSI disks, specific file systems, ... was added and bugs were
5878 quickly fixed. Yet installing a Linux Operating System still was difficult as
5879 there were no easy installation methods yet. That changed when the first
5880 distribution got out.
5881 </p>
5882
5883 <p>
5884 Early distributions were hardly maintained so no real good candidate for
5885 continuous usage. In 1993 Slackware was created, and others followed suit
5886 shortly after. Nowadays, several hundred distributions exist.
5887 </p>
5888
5889 </body>
5890 </subsection>
5891 </section>
5892 <section>
5893 <title>Free software model</title>
5894 <subsection>
5895 <title>Freedom of speech</title>
5896 <body>
5897
5898 <p>
5899 As mentioned previously, Linux is Free Software. The "Free" here should be read
5900 as "Freedom of Speech", not "Free beer". The <uri link="http://www.fsf.org">Free
5901 Software Foundation</uri> defines the freedom as:
5902 </p>
5903
5904 <ol>
5905 <li>
5906 freedom to run the program for any purpose,
5907 </li>
5908 <li>
5909 freedom to study how the program works, and to adapt it to your needs,
5910 </li>
5911 <li>
5912 freedom to redistribute copies of the program, and
5913 </li>
5914 <li>
5915 freedom to improve the program, and release your improvements to the public
5916 so that the entire community benefits
5917 </li>
5918 </ol>
5919
5920 <p>
5921 The Free Software Foundation has prepared and released a specific license that
5922 embraces the abovementioned freedom. Their license is called the <uri
5923 link="http://www.fsf.org/licensing/licenses/gpl.html">GPL</uri> and is used by
5924 the Linux kernel and various other applications. The Free Software Model builds
5925 upon this freedom.
5926 </p>
5927
5928 </body>
5929 </subsection>
5930 <subsection>
5931 <title>The role of distributions</title>
5932 <body>
5933
5934 <p>
5935 Distributions play an important role: they bundle the free software in a
5936 coherent package. A distribution allows you to install a Linux Operating
5937 System easily and maintain the software installed on your system. Thanks to
5938 distributions, you don't need to know how to build packages, what toolchains
5939 are and other packaging-related tasks.
5940 </p>
5941
5942 <p>
5943 One role of a distribution in the free software model is that of the quality
5944 analysis and marketing. Distributions take the source code of many projects and
5945 bundle it together. They test the software and provide feedback to the
5946 developers of the individual projects. When they are happy with the end result,
5947 they present their distribution to the world: it is this end result that the
5948 users will install on their system.
5949 </p>
5950
5951 </body>
5952 </subsection>
5953 <subsection>
5954 <title>Development model</title>
5955 <body>
5956
5957 <p>
5958 Most free software is developed on a volunteer basis. A free software project
5959 generally has some infrastructure at its disposal:
5960 </p>
5961
5962 <ul>
5963 <li>
5964 a <e>code repository</e>: a location where several people can work on the
5965 source code simultaneously. When you hear about CVS or SVN then the topic of
5966 the discussion is most likely code repositories or the tools to manage them.
5967 A versioning tool allows developers to deal with collaborative source code
5968 development. Such tools keep track of all changes made to the project.
5969 </li>
5970 <li>
5971 a web site, displaying news and information about the project. The web site
5972 will probably include download and installation instructions, documentation,
5973 etc.
5974 </li>
5975 <li>
5976 a mailinglist where developers and users discuss the future of the project,
5977 changes and change requests, bugs, etc.
5978 </li>
5979 <li>
5980 a <e>bug tracking system</e> where users can submit bug reports and
5981 enhancement requests. Such bug tracking systems allow the developers to
5982 keep track of bugs easily.
5983 </li>
5984 </ul>
5985
5986 <p>
5987 Most free software projects are ran by volunteers. These people put their
5988 knowledge of programming, documentation writing, infrastructure, ... in the
5989 project. The motivation that drives these developers makes free software
5990 evolve quite fast: why else would someone work on a project in his free time if
5991 he wasn't motivated?
5992 </p>
5993
5994 <p>
5995 Because a project is mostly ran by volunteers, there is no limit to the amount
5996 of developers that can work on the project. The Gentoo distribution has more
5997 than 350 developers, the Linux kernel has several hundred developers. Many
5998 updates to a project are made by contributors as well: people who have found and
5999 fixed an issue but are not part of the development base of the project.
6000 </p>
6001
6002 <p>
6003 The entire development process is open to the public (everyone can see
6004 how the project evolves), so there is a lot of feedback from the users. Users
6005 participate in discussions on the mailinglists or through IRC (lots of projects
6006 have a chat channel). In many cases, active users are asked to join the
6007 development team because they provide valuable feedback.
6008 </p>
6009
6010 </body>
6011 </subsection>
6012 </section>
6013 <section>
6014 <title>Is Linux your thing?</title>
6015 <subsection>
6016 <title>Expectations</title>
6017 <body>
6018
6019 <p>
6020 So what can you expect from Linux?
6021 </p>
6022
6023 <p>
6024 Linux is a very stable platform that can be used in every area you can be
6025 interested in: desktop, workstation, server, programming, embedded, ...
6026 Stability is a core concern with Linux. The Linux kernel for instance is a
6027 separate entity in the Operating System and not integrated in the shell or
6028 hidden from the user. Any instability of an application will cause the
6029 application to fail but not the kernel, so the system remains functional.
6030 </p>
6031
6032 <p>
6033 Because of the development model used, Linux is a fast moving operating system.
6034 With Linux you can expect frequent updates with lots of new features. You will
6035 notice that as you update your system, the system will remain recent and
6036 completely up-to-date with the latest developments. Some distributions
6037 (Gentoo included) don't even require you to upgrade your system: once
6038 installed, you will always have the latest release. Such an approach is quite
6039 unique and you can't find this in operating systems like Microsoft Windows.
6040 </p>
6041
6042 <p>
6043 Programmers will find that Linux offers them the best development platform they
6044 can imagine. An Operating System where you can learn a lot from the inner
6045 workings of the system, where you can find a plethora of (free) development
6046 tools for languages such as C#, C++, Java, C, PHP, ... where communities help
6047 each other in the development of peer projects.
6048 </p>
6049
6050 <p>
6051 Home users will find Linux to be extremely interesting, with lots of documents
6052 available to help you find your way through this new and exciting system. Yes,
6053 documentation is a powerful asset: you have sites devoted to the ongoing
6054 development of good, professional and clear documents about various
6055 Linux-related subjects. Documents are not only available in English but
6056 in various languages and this international approach is also taken within the
6057 Linux software products themselves: most applications are available in several
6058 languages. You can have your entire system available in your native language!
6059 </p>
6060
6061 <p>
6062 Lots of developers are security-aware. Therefore you will find that most
6063 applications are written with a high sense of secure defaults. E-mail clients
6064 are not that likely to be easily trapped by viruses; the system only allows you
6065 to alter files you have created, leaving system-wide files intact; free updates
6066 lessen the chance that an exploitable bug remains on your system; firewalls and
6067 other security-related software is freely available and easy to install. Do not
6068 read this as if Linux is secure by default, but it does stress security more
6069 than some other operating systems.
6070 </p>
6071
6072 <p>
6073 A Linux Operating System is quite cheap. Many distributions are freely available
6074 (free as in free beer), others are available for a small price compared to what
6075 they have to offer. To understand how the Free Software Model is sustainable we
6076 will discuss this in <uri link="?part=1&amp;chap=3">Freedom, Support and
6077 Finances</uri>. You are also not forced to stay with a single vendor since most
6078 applications use standards which improve interoperability.
6079 </p>
6080
6081 <p>
6082 You will find that Linux is extremely flexibel. You can use Linux as a desktop,
6083 as a workstation, as a TV receiver/recorder, ... You can save disk space by
6084 installing just the applications you need without any additional stuff, you can
6085 install an entire desktop suite or just the tools you need. You can optimize
6086 your installation for your system, or use a generic installation to speed up the
6087 installation of hundreds of desktops you administer. You can choose amongst
6088 various applications that offer the same functionality but use different ways
6089 to achieve their goals. You can do whatever you want, the way you want.
6090 </p>
6091
6092 </body>
6093 </subsection>
6094 </section>
6095 <section>
6096 <title>Linux is not...</title>
6097 <subsection>
6098 <title>... a Microsoft Windows look-a-like</title>
6099 <body>
6100
6101 <p>
6102 Do not expect Linux to behave like Windows, to run Windows programs, to be
6103 compatible with everything Windows offers. Linux is a completely different
6104 Operating System with its own way of dealing with things. It is completely
6105 different by design, by development model, by community, ... and will most
6106 likely stay different.
6107 </p>
6108
6109 </body>
6110 </subsection>
6111 <subsection>
6112 <title>... secure by default</title>
6113 <body>
6114
6115 <p>
6116 Security is a major concern with Linux, but "Secure by Default" is something
6117 completely different. You should not expect that your Linux environment will
6118 always be untouchable; security lays in the hands of whoever controls the
6119 system.
6120 </p>
6121
6122 <p>
6123 Keeping your system up to date is a prerequisite: if you do not update your
6124 system regularly, you will eventually have applications on your system that have
6125 known exploitable bugs in them. Having a clear policy is important as well: do
6126 not trust everyone on the Internet, do not use empty or easy-to-guess passwords,
6127 do not use applications from untrusted sources, etc. Know what you do on your
6128 system: badly configured services can be the weakest link in someone's security.
6129 </p>
6130
6131 </body>
6132 </subsection>
6133 <subsection>
6134 <title>... an alternative</title>
6135 <body>
6136
6137 <p>
6138 The word "alternative" is often used for a less powerful but "sufficient"
6139 solution. Linux is <e>more</e> powerful and different. It is not an alternative
6140 for any other operating system, but a different operating system.
6141 </p>
6142
6143 <p>
6144 Forget what you know about the operating system you currently use. Linux is
6145 different and you <e>will</e> need to learn it. It will take a while but it is
6146 definitely worth it.
6147 </p>
6148
6149 </body>
6150 </subsection>
6151 </section>
6152 </sections>
6153
6154
6155
6156 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-intro-next.xml
6157
6158 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-next.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
6159 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-next.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
6160
6161 Index: hb-intro-next.xml
6162 ===================================================================
6163 <?xml version='1.0' encoding='UTF-8'?>
6164 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
6165
6166 <!-- The content of this document is licensed under the CC-BY-SA license -->
6167 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
6168
6169 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-next.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
6170
6171 <sections>
6172
6173 <version>0.0</version>
6174 <date>2005-06-19</date>
6175
6176 <section>
6177 <title>Handbook syntax</title>
6178 <subsection>
6179 <title>Used symbols and colors</title>
6180 <body>
6181
6182 <p>
6183 Okay, we are now at the end of this first part. As you might have seen, the
6184 previous sections suddenly started using some Linux-specific commands. I will
6185 quickly explain how this handbook uses those Code&nbsp;Listings and other
6186 syntax.
6187 </p>
6188
6189 </body>
6190 </subsection>
6191 <subsection>
6192 <title>Code listings</title>
6193 <body>
6194
6195 <p>
6196 A Code&nbsp;Listing can be a command that needs to be executed. When this is the
6197 case, the command is prepended with a symbol that refers to the <e>prompt</e>.
6198 </p>
6199
6200 <p>
6201 A prompt is a short string given by the system to the user, telling that the
6202 user can give a command. By default, the prompt for a regular user would look
6203 like so on a system with hostname "localhost" and username "john":
6204 </p>
6205
6206 <pre caption="Example prompt">
6207 john@localhost ~ $
6208 </pre>
6209
6210 <p>
6211 When you are the root user, the prompt will look like so:
6212 </p>
6213
6214 <pre caption="Example prompt for the root user">
6215 root@localhost ~ #
6216 </pre>
6217
6218 <p>
6219 As you can see, it differs not only by the user name, but also the ending
6220 character: regular users have a prompt that ends at <c>$</c>, but the root user
6221 has an ending character of <c>#</c>. For this reason, we will use this single
6222 character throughout the rest of the document to refer to the prompt. When the
6223 character is a <c>$</c> you can (should) execute the command as a regular user.
6224 When the character is a <c>#</c> you can (should) execute the command as the
6225 root user.
6226 </p>
6227
6228 <p>
6229 For instance, the <c>ls</c> command (which lists the content of the current
6230 working directory) can very well be ran as a regular user, but to install a
6231 package (like <c>bzip2</c>) you need to be root:
6232 </p>
6233
6234 <pre caption="Example Code Listing usage for commands">
6235 $ <i>ls</i>
6236 # <i>emerge bzip2</i>
6237 </pre>
6238
6239 <p>
6240 As you can see, the command itself is highlighted. When there is output from the
6241 command to the screen that you do not need to type, it will be in plain text.
6242 When we add some comments, you will notice that it has a different layout. For
6243 instance, to change your password:
6244 </p>
6245
6246 <pre caption="Changing the current user his password">
6247 $ <i>passwd</i>
6248 Old password: <comment>(Enter your old password)</comment>
6249 New password: <comment>(Enter the new password)</comment>
6250 Re-enter new password: <comment>(Re-enter the new password to verify)</comment>
6251 Password changed.
6252 </pre>
6253
6254 <p>
6255 We will also use Code&nbsp;Listings to show the contents of a file.
6256 </p>
6257
6258 </body>
6259 </subsection>
6260 <subsection>
6261 <title>Warnings</title>
6262 <body>
6263
6264 <p>
6265 When the information in this handbook is incorrect due to a bug or a temporary
6266 issue, I use a warning to inform you about this temporary setback. I prefer to
6267 do it this way than to fix the content itself because I feel that documentation
6268 should not be used to fix bugs (or provide workarounds).
6269 </p>
6270
6271 <p>
6272 An example warning would look like so:
6273 </p>
6274
6275 <warn>
6276 Due to a <uri link="https://bugs.gentoo.org/show_bug.cgi?id=100456">bug</uri> in
6277 the Evolution ebuild you can not install version 2.2.3-r2 for the time being.
6278 Please use 2.2.3-r1 until a fix has been found.
6279 </warn>
6280
6281 <p>
6282 A more permanent warning will look like so:
6283 </p>
6284
6285 <p>
6286 <brite>Warning!</brite> Do <e>not</e> set the <c>USE</c> variable on the command
6287 line as a variable. This will temporarily assume that those USE flags are given,
6288 but the next time your system is updated this information is forgotten.
6289 </p>
6290
6291 </body>
6292 </subsection>
6293 <subsection>
6294 <title>Important</title>
6295 <body>
6296
6297 <p>
6298 When we want to stress out something important, we will normally put this in the
6299 paragraphs using <e>emphasised text</e> or <b>bold text</b>. However, when it is
6300 quite urgent and would require a larger rewrite, we will temporarily use an
6301 importancy-box like so:
6302 </p>
6303
6304 <impo>
6305 Make sure <path>/etc/hostname</path> is removed afterwards. Otherwise the error
6306 will remain since the <c>baselayout</c> package first checks this file prior to
6307 <path>/etc/conf.d/hostname</path>.
6308 </impo>
6309
6310 </body>
6311 </subsection>
6312 <subsection>
6313 <title>Notes</title>
6314 <body>
6315
6316 <p>
6317 At the end of a chapter we might add a few notes, either as a certain type of
6318 footnote or a reference to another resource. If the amount of notes aren't too
6319 large, we will use a note box like so:
6320 </p>
6321
6322 <note>
6323 The <uri link="http://www.tldp.org">Linux Documentation Project</uri> has a
6324 few guides on networking as well. Definitely worth a read.
6325 </note>
6326
6327 </body>
6328 </subsection>
6329 </section>
6330 <section>
6331 <title>What can you expect</title>
6332 <subsection>
6333 <title>Installing Gentoo</title>
6334 <body>
6335
6336 <p>
6337 In the next part, we will give you lots and lots of Linux technical information
6338 to allow you to install Gentoo Linux on your system. Unlike with the <uri
6339 link="http://www.gentoo.org/doc/en/handbook">Gentoo Handbook</uri> we will try
6340 to be <e>more verbose</e> (yes, that's possible :) but less step-by-step.
6341 </p>
6342
6343 <p>
6344 Why? Because you should be able to install Gentoo the way you like it without
6345 the need to take a look at the step by step decriptions. Not that the Gentoo
6346 Handbook is written badly (hey, I wrote the most of it :p) but just...
6347 differently :)
6348 </p>
6349
6350 </body>
6351 </subsection>
6352 </section>
6353 </sections>
6354
6355
6356
6357 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-intro-resources.xml
6358
6359 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-resources.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
6360 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-resources.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
6361
6362 Index: hb-intro-resources.xml
6363 ===================================================================
6364 <?xml version='1.0' encoding='UTF-8'?>
6365 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
6366
6367 <!-- The content of this document is licensed under the CC-BY-SA license -->
6368 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
6369
6370 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-resources.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
6371
6372 <sections>
6373
6374 <version>0.0</version>
6375 <date>2005-06-19</date>
6376
6377 <section>
6378 <title>People</title>
6379 <subsection>
6380 <title>Friends and colleagues</title>
6381 <body>
6382
6383 <p>
6384 When you are searching for information, the best place to look for is amongst
6385 your friends and colleagues. They might not describe everything in full detail
6386 as you would expect from a book or technical document, but they are interactive
6387 meaning that you can ask more questions as they come along. Another advantage is
6388 that they might reword their answers if you don't understand them.
6389 </p>
6390
6391 <p>
6392 Having friends and colleagues to ask questions to is a major advantage,
6393 especially if they also use the distribution you want to use. They might even
6394 give you on-site help: think of a private tutor :) Make sure that this person
6395 doesn't mind you asking a lot of questions though.
6396 </p>
6397
6398 <p>
6399 When you are advanced in a certain topic, remember that other people helped you
6400 when you were still a novice and share your knowledge with other people. Be open
6401 for questions and help your friends and colleagues. Don't think you know all the
6402 answers though, even Einstein made mistakes.
6403 </p>
6404
6405 </body>
6406 </subsection>
6407 <subsection>
6408 <title>User groups</title>
6409 <body>
6410
6411 <p>
6412 When you can't find your answer amongst your friends or colleagues (or they
6413 aren't immediately available for help) your best bet would be to ask in <e>User
6414 Groups</e>. A Linux User Group (abbreviated to LUG) is a group of Linux users
6415 who gather to discuss Linux, give Linux-related presentations, etc.
6416 </p>
6417
6418 <p>
6419 User Groups are often a good place to start as well since they give you a
6420 friendly neighbourhood-like environment where you can ask questions, as simple
6421 as they might be, without being seen as a "dull newbie". A User Group is also a
6422 good place to find distributions so you can get the latest and greatest
6423 distribution for a small fee (most likely the costs of an empty CD/DVD) so you
6424 don't need to download it yourself.
6425 </p>
6426
6427 <p>
6428 In many User Groups you will often find events such as <e>Install Fests</e>. An
6429 install festival is a social event where you can bring your computer to and
6430 where other people will help you install your favorite distribution. Even
6431 better, they will help you tweak it, making it more performant, up to date and
6432 tailored to your needs.
6433 </p>
6434
6435 </body>
6436 </subsection>
6437 <subsection>
6438 <title>Virtual forums</title>
6439 <body>
6440
6441 <p>
6442 Often called virtual user groups are the web site forums, places where you can
6443 find literally hundreds of people willing to help you in any way possible. On
6444 these forums (of which the <uri link="http://forums.gentoo.org">Gentoo
6445 Forums</uri> are probably a perfect example) you can ask everything you want (as
6446 long as it remains on-topic).
6447 </p>
6448
6449 <p>
6450 Forums have a big advantage: you can always consult them, 24/7, and you will
6451 often find that they react quite fast. They also work as a great knowledge base
6452 where you can search through, hopefully finding someone who has posed your
6453 question before and has received all the information he needed. In that case,
6454 you don't need to re-ask (it is even considered rude to ask questions that have
6455 been answered not long ago).
6456 </p>
6457
6458 <p>
6459 Forums are also a great way to make friends: if you are very helpful yourself,
6460 you will undoubtedly get noticed. More than often will you find out that others
6461 live near you and share the same hobbies and interests. What better incentive do
6462 you need to get out to a pub and get a beer :)
6463 </p>
6464
6465 </body>
6466 </subsection>
6467 </section>
6468 <section>
6469 <title>Books and guides</title>
6470 <subsection>
6471 <title>Online guides</title>
6472 <body>
6473
6474 <p>
6475 For specific subjects you might find that online guides prove to be a better
6476 resource. Such guides explain a single topic in great extend, often in a
6477 step-by-step construction, guiding you through the topic.
6478 </p>
6479
6480 <p>
6481 When you consult one of the more interactive resources (like forums) you will
6482 often be referred to an online guide which covers your subject. More than often
6483 provide those guides the best answer to your question, so don't be upset when
6484 the people don't answer your question but refer you to such a guide.
6485 </p>
6486
6487 <p>
6488 Gentoo has quite a lot of those <uri
6489 link="http://www.gentoo.org/doc/en/">helpful guides</uri>. If you think Gentoo
6490 is missing an interesting subject, don't hesitate to ask for one or even write
6491 one. Most documentation is written by volunteering contributors, so why not try
6492 and contribute :)
6493 </p>
6494
6495 <p>
6496 You will also find such guides, often in the form of a HOWTO, at the <uri
6497 link="http://www.tldp.org/docs.html#howto">Linux Documentation Project</uri>.
6498 </p>
6499
6500 </body>
6501 </subsection>
6502 <subsection>
6503 <title>Books</title>
6504 <body>
6505
6506 <p>
6507 When you want to learn more about a broader subject (like Gentoo in general) or
6508 in more detail than any guide could offer, you might want to buy (or download) a
6509 full book instead. <uri link="http://www.oreilly.com">O'Reilly</uri> has several
6510 dozens of books available covering a lot of subjects. A book is probably the
6511 most ultimate help you can find for self-teaching, but mind you, books often get
6512 outdated and aren't replaced as fast as online guides.
6513 </p>
6514
6515 <p>
6516 Some books are available online. More than often are they grown from a small
6517 guide to a larger one, eventually changing their layout from a guide to a book.
6518 This has happened with the <uri
6519 link="http://www.gentoo.org/doc/en/handbook">Gentoo Handbook</uri> and <uri
6520 link="http://www.gentoo.org/doc/en/security">Gentoo Security Handbook</uri>.
6521 Once they were only a few pages long. Now they span over a hundred pages.
6522 </p>
6523
6524 <p>
6525 You can find online books at <uri link="http://www.tldp.org/guides.html">the
6526 Linux Documentation Project</uri>.
6527 </p>
6528
6529 </body>
6530 </subsection>
6531 <subsection>
6532 <title>Massive collaboration guides</title>
6533 <body>
6534
6535 <p>
6536 Unlike the books, who don't get much updates, and the guides who do get updates
6537 if the maintainer is active, there are special kinds of online information pages
6538 that do get a lot of updates: massive collaboration guides, often in the form of
6539 so-called <e>WiKi</e> projects.
6540 </p>
6541
6542 <p>
6543 Pages like these can be updated by any user who wishes so, making it quite easy
6544 to quickly fix issues and expand the document. But this fast updating has one
6545 major setback: people can easily sneak in more errors in the guide, or provide
6546 you with a step-by-step trail that is against the spirit of the subject you are
6547 interested in.
6548 </p>
6549
6550 <p>
6551 There is an unofficial <uri link="http://www.gentoo-wiki.com">Gentoo Wiki</uri>
6552 filled with guides written by several hundreds of users.
6553 </p>
6554
6555 </body>
6556 </subsection>
6557 </section>
6558 <section>
6559 <title>Online help</title>
6560 <subsection>
6561 <title>Manual pages</title>
6562 <body>
6563
6564 <p>
6565 Manual pages are documentation pages that cover a single command. A manual page
6566 is a reference document that explains all possible options you can give at a
6567 command. Unlike guides they do not provide you with a step-by-step explanation
6568 on the subject and are therefore not interesting for guided help. They are
6569 however very important once you know the tool but want to know it better.
6570 </p>
6571
6572 <p>
6573 When you are inside a Linux system, you can obtain the manual page for a
6574 specific command or subject by typing <c>man&nbsp;&lt;subject&gt;</c>. For
6575 instance, to get the manual page for the <c>emerge</c> command often used on
6576 Gentoo:
6577 </p>
6578
6579 <pre caption="Getting the emerge manual page">
6580 $ <i>man emerge</i>
6581 </pre>
6582
6583 <p>
6584 Almost every possible command has a manual page on your system.
6585 </p>
6586
6587 </body>
6588 </subsection>
6589 <subsection>
6590 <title>Info pages</title>
6591 <body>
6592
6593 <p>
6594 Another commonly used format to display information is the GNU Info browser.
6595 Whereas the man pages are a single resource containing a quick and dirty
6596 overview of the command (and its options), the info pages are a more extensive
6597 resource, dividing information in chapters, sections, ... and allowing you to
6598 browse from one subject to another.
6599 </p>
6600
6601 <p>
6602 To view an info page for a command, type <c>info&nbsp;&lt;command&gt;</c>.
6603 You'll be greeted by the info browser where you can navigate up and down using
6604 your arrow keys (line by line) or <c>PageUp</c> and <c>PageDown</c> (screen by
6605 screen). When you encounter a link (visualized by a <c>*</c> in front of it and
6606 <c>::</c> after) press <c>Enter</c> to go to the page.
6607 </p>
6608
6609 <p>
6610 Using the keys <c>u</c> (up), <c>n</c> (next) and <c>p</c> (previous) you can
6611 navigate through the documentation easily. To quit, press <c>q</c>.
6612 </p>
6613
6614 </body>
6615 </subsection>
6616 <subsection>
6617 <title>Added documentation</title>
6618 <body>
6619
6620 <p>
6621 Lots of software tools add documentation to your Linux system. This
6622 documentation can be in the form of a PDF document, HTML pages or plain text. In
6623 most cases, this documentation is stored in
6624 <path>/usr/share/doc/&lt;software&nbsp;title&gt;</path>.
6625 </p>
6626
6627 <p>
6628 For instance, the <c>bzip2</c> compression utility has a manual (in PDF format)
6629 stored inside <path>/usr/share/doc/bzip2-1.0.3-r4</path> (the version might be
6630 different on your system).
6631 </p>
6632
6633 </body>
6634 </subsection>
6635 <subsection>
6636 <title>Immediate help</title>
6637 <body>
6638
6639 <p>
6640 Most tools have immediate help available when you run the tool with
6641 <c>--help</c> or <c>-h</c> as one of its arguments. Do not hope to find much
6642 information here: in most cases the help provided is just a short summary of the
6643 available options.
6644 </p>
6645
6646 <p>
6647 For instance, for the <c>emerge</c> command (which does list quite a lot of
6648 detailed information):
6649 </p>
6650
6651 <pre caption="Getting immediate help for the emerge program">
6652 $ <i>emerge --help</i>
6653 </pre>
6654
6655 </body>
6656 </subsection>
6657 </section>
6658 </sections>
6659
6660
6661
6662 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-intro-support.xml
6663
6664 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-support.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
6665 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-support.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
6666
6667 Index: hb-intro-support.xml
6668 ===================================================================
6669 <?xml version='1.0' encoding='UTF-8'?>
6670 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
6671
6672 <!-- The content of this document is licensed under the CC-BY-SA license -->
6673 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
6674
6675 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-support.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
6676
6677 <sections>
6678
6679 <version>0.0</version>
6680 <date>2005-06-19</date>
6681
6682 <section>
6683 <title>Priceless</title>
6684 <subsection>
6685 <title>Userbase</title>
6686 <body>
6687
6688 <p>
6689 Free Software has a very active user community, filled with people who are eager
6690 to help you install, configure and maintain free software. <e>Help your
6691 neighbour</e> has never been as succesful as with Free Software.
6692 </p>
6693
6694 <p>
6695 Take the <uri link="irc://irc.freenode.net/#gentoo">#gentoo</uri> support
6696 channel as an example. It has over 800 users who help any Gentoo user or
6697 interested party with whatever question he or she might have. Or the <uri
6698 link="http://forums.gentoo.org">Gentoo Forums</uri> which has over 2'000 posts
6699 per day.
6700 </p>
6701
6702 <p>
6703 You can and will find support for the Free Software you want, support given by
6704 users of that software, who believe the software is the best in its field and
6705 have good experiences with the software. Of course, there is a trade: this
6706 support is on a volunteer basis, so don't expect someone to answer your question
6707 immediately - if you are not friendly, you will undoubtedly be ignored or even
6708 removed from the support channels.
6709 </p>
6710
6711 </body>
6712 </subsection>
6713 <subsection>
6714 <title>Developer base</title>
6715 <body>
6716
6717 <p>
6718 When you have feature requests, or you have found a bug in the software, the
6719 developers are always happy to hear from you. Most projects even have public
6720 bugtracking systems where you can submit bugreports to or ask for software
6721 enhancements.
6722 </p>
6723
6724 <p>
6725 As a user, you deal with the developers personally and not with some obscure
6726 phone number with a robotic voice on the other end, or an automated reply server
6727 who thanks you for your submission only to never hear from it again. These
6728 developers are devoted in bringing you the best software available and hope that
6729 you can help them improve it.
6730 </p>
6731
6732 <p>
6733 Those developers live all over the world, in all possible timezones, so when you
6734 mail a developer or talk with him directly (for instance over IRC), do not
6735 expect him to be available all the time. Not only can he be very sleepy because
6736 it is 03.00 on his side, he can also be unavailable due to real-life issues,
6737 phone calls, etc. Remember, most developers work on the software in their free
6738 time.
6739 </p>
6740
6741 </body>
6742 </subsection>
6743 </section>
6744 <section>
6745 <title>Timeless</title>
6746 <subsection>
6747 <title>Archives</title>
6748 <body>
6749
6750 <p>
6751 Free Software is timeless. Most projects keep older releases around and some
6752 projects even archive free software for various reasons (such as allowing people
6753 to find out how old a certain feature is).
6754 </p>
6755
6756 <p>
6757 You will also find archives of the mailinglists used by the project, sometimes
6758 even daily IRC logs. Support channels like the bugtracking system or the forums
6759 keep all posts and information around in case you would ever need it.
6760 </p>
6761
6762 </body>
6763 </subsection>
6764 <subsection>
6765 <title>Stalled software</title>
6766 <body>
6767
6768 <p>
6769 When a software project "dies" (for instance because the developer(s) are too
6770 busy with real-life or just dropped interest in the project), it does not
6771 disappear. Such projects are only <e>stalled</e> and ready to be picked up by
6772 someone who wants to devote some of his time to the project. Nothing of the
6773 project gets lost: the software itself remains, documentation remains, ...
6774 </p>
6775
6776 <p>
6777 This is one of the major advantages of Free Software: unlike propriatary
6778 software which might get dropped by the company, the software does <e>not</e>
6779 disappear. If you require long time support for any type of software, you can
6780 only trust Free Software - you can never know when the propriatary software is
6781 discontinued. In the worst case with Free Software, you will need to
6782 take on development of the software on your own or hire someone to do it for
6783 you.
6784 </p>
6785
6786 </body>
6787 </subsection>
6788 </section>
6789 <section>
6790 <title>Immortal</title>
6791 <subsection>
6792 <title>Freedom</title>
6793 <body>
6794
6795 <p>
6796 Because the software is free, you can not kill it. The software can not be taken
6797 over by another company. When the project is turned over to an organisation that
6798 you do not like, you can just take the software and <e>fork</e> it (a term
6799 used to denote that two or more projects develop software based on the same
6800 code, but do this independently with their own goals and development accents).
6801 </p>
6802
6803 <p>
6804 The author of the software can not revoke the rights he has given to you first:
6805 once the software is free, it remains free.
6806 </p>
6807
6808 </body>
6809 </subsection>
6810 <subsection>
6811 <title>Paid support</title>
6812 <body>
6813
6814 <p>
6815 If you are not satisfied with the support you receive, you can obtain paid
6816 support (contracts with a certain support level attached to it) if you want.
6817 In many cases, this paid support isn't given by the project itself but by a
6818 third party that is well known to the software code base and maintenance.
6819 </p>
6820
6821 <p>
6822 On certain occasions, you can obtain paid support from the software project
6823 itself as well.
6824 </p>
6825
6826 </body>
6827 </subsection>
6828 </section>
6829 </sections>
6830
6831
6832
6833 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-intro-user_fhs.xml
6834
6835 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-user_fhs.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
6836 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-user_fhs.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
6837
6838 Index: hb-intro-user_fhs.xml
6839 ===================================================================
6840 <?xml version='1.0' encoding='UTF-8'?>
6841 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
6842
6843 <!-- The content of this document is licensed under the CC-BY-SA license -->
6844 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
6845
6846 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-user_fhs.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
6847
6848 <sections>
6849
6850 <version>0.0</version>
6851 <date>2005-06-19</date>
6852
6853 <section>
6854 <title>Why multi-user?</title>
6855 <subsection>
6856 <title>Separation of privileges</title>
6857 <body>
6858
6859 <p>
6860 One of the advantages of a multi-user operating system like Linux is that the
6861 privileges are separated. Each process runs with specific privileges and can
6862 only execute a limited number of tasks. As long as the process does not run
6863 as the <c>root</c> user (the allmighty administrator privilege) it can only deal
6864 with files and tasks that are assigned to that particular user.
6865 </p>
6866
6867 <p>
6868 This separation of privileges provides a small but working security wall: as
6869 long as all your users use the system with their user account and not with the
6870 <c>root</c> account, the worst that can happen is that the user removed his own
6871 files - the system itself is left untouched.
6872 </p>
6873
6874 <p>
6875 For this reason, you will always hear not to use the <c>root</c> account.
6876 </p>
6877
6878 </body>
6879 </subsection>
6880 <subsection>
6881 <title>System accounts</title>
6882 <body>
6883
6884 <p>
6885 To enforce the separation of privileges, specific system accounts are created
6886 for each task. If you run a mail server on your system, that mail server will
6887 have a user account on your system.
6888 </p>
6889
6890 <p>
6891 These accounts are not usable by regular users: you can not log in on your
6892 system using those accounts. They exist only to allow the specific processes to
6893 run with their own permissions and privileges.
6894 </p>
6895
6896 </body>
6897 </subsection>
6898 </section>
6899 <section>
6900 <title>Users and permissions</title>
6901 <subsection>
6902 <title>The user ID</title>
6903 <body>
6904
6905 <p>
6906 To identify a system account, a unique <e>user identification</e> is used: the
6907 UID. This is a number used by the Linux kernel and other applications as
6908 numbers are easier to deal with than names (strings). However, Linux is
6909 intelligent enough to immediately translate the UID to a user name and vice
6910 versa, so in most cases you will only see or use the user name instead of the
6911 UID.
6912 </p>
6913
6914 </body>
6915 </subsection>
6916 <subsection>
6917 <title>The process ID</title>
6918 <body>
6919
6920 <p>
6921 When your Linux system is up and running, it will have started various processes
6922 already. Each process is an application (or part of an application) and receives
6923 a unique <e>process identifier</e> (which is also a number): the PID.
6924 </p>
6925
6926 <p>
6927 PIDs play an important role in the administration of a running Linux system:
6928 you need the PID of a specific process to be able to terminate it (in case it
6929 behaves badly), change priorities or receive specific system usage statistics
6930 regarding a particular application.
6931 </p>
6932
6933 <p>
6934 For regular Linux usage however, the PID is less important: you still need to
6935 understand what a PID is, but you will probably not encounter any use of it
6936 until you administer your system.
6937 </p>
6938
6939 </body>
6940 </subsection>
6941 <subsection>
6942 <title>Privileges</title>
6943 <body>
6944
6945 <p>
6946 Each process obtains privileges based on the user account it uses. By default,
6947 a process runs with the privileges of the user that started the
6948 process. For instance, if you start <c>firefox</c> it will run with your
6949 privileges.
6950 </p>
6951
6952 <p>
6953 However, some processes have a specific flag set that tells the Linux kernel not
6954 to run the process as the user that executed it, but as a specific user
6955 instead. This flag is called the <e>set user id</e> (SetUID or SUID) and tells
6956 the Linux kernel to run this application with the privileges of the
6957 <e>owner</e> of that application instead of the <e>executor</e>.
6958 </p>
6959
6960 <p>
6961 Most tools that have the SUID bit set are owned by the <c>root</c> user and
6962 therefore start running with the privileges of the <c>root</c> user. Because
6963 this is a security thread (remember, running things as <c>root</c> can be
6964 dangerous) most tools have a feature called <e>privilege separation</e>: when
6965 they are started, they first run the tasks they have to run as <c>root</c> after
6966 which they automatically decrease their own privileges to a less powerful state.
6967 </p>
6968
6969 </body>
6970 </subsection>
6971 </section>
6972 <section>
6973 <title>Linux file system hierarchy</title>
6974 <subsection>
6975 <title>Structure of a file system</title>
6976 <body>
6977
6978 <p>
6979 The most pertinent change Linux users will have to be comfortable with is the
6980 file system structure which is quite different from the file system structure
6981 operating systems like Microsoft Windows use.
6982 </p>
6983
6984 <p>
6985 In Linux, the entire file system is structured as one huge tree. You start with
6986 the root of the tree and traverse down until you reach your goal. The next Code
6987 Listing shows you the first depth of a Linux file system:
6988 </p>
6989
6990 <pre caption="Incomplete example of a Linux File System">
6991 / <comment>(The root)</comment>
6992 +- bin/ <comment>(Executable programs needed to get the system up and running)</comment>
6993 +- boot/ <comment>(Files related to the boot loader and Linux kernel)</comment>
6994 +- dev/ <comment>(Device files)</comment>
6995 +- etc/ <comment>(Configuration files)</comment>
6996 +- home/ <comment>(User home directories)</comment>
6997 +- lib/ <comment>(Libraries needed to get the system up and running)</comment>
6998 +- mnt/ <comment>(Location for mount points)</comment>
6999 +- opt/ <comment>(Contains large package installations not part of a regular install)</comment>
7000 +- proc/ <comment>(Kernel-provided information)</comment>
7001 +- root/ <comment>(Home directory for the root user)</comment>
7002 +- sbin/ <comment>(System administration executables to get the system up and running)</comment>
7003 +- sys/ <comment>(Kernel-provided information)</comment>
7004 +- tmp/ <comment>(Temporary files)</comment>
7005 +- usr/ <comment>(Applications for day-to-day system usage)</comment>
7006 `- var/ <comment>(Variable information like log-files, caches, ...)</comment>
7007 </pre>
7008
7009 <p>
7010 Suppose you want to navigate to the CUPS error logs (CUPS is a printing service
7011 frequently used on Linux systems) which are located inside
7012 <path>/var/log/cups</path> you will find the following tree:
7013 </p>
7014
7015 <pre caption="Expanded tree to /var/log/cups">
7016 <i>/</i>
7017 +- bin/
7018 <comment>(...)</comment>
7019 +- usr/
7020 `- <i>var/</i>
7021 +- cache/
7022 +- db/
7023 +- lock/
7024 +- <i>log/</i>
7025 | +- <i>cups/</i>
7026 | | +- access_log
7027 | | +- error_log
7028 | | `- page_log
7029 | +- dmesg
7030 | +- emerge.log
7031 | +- lastlog
7032 | `- messages
7033 +- run/
7034 +- spool/
7035 +- state/
7036 `- tmp/
7037 </pre>
7038
7039 <p>
7040 Each location has its purpose as defined in the <uri
7041 link="http://www.pathname.com/fhs">Linux File System Hierarchy Standard</uri>.
7042 As said before, Linux builds upon standards and the file system structure is no
7043 exception. Each Linux distribution adheres to this standard (although a few
7044 deviations are known). If you want to learn more about the file system
7045 structure, please read this standard. A short summary can also be found on your
7046 Linux system in the <c>hier</c> manual ("hier" is short for "hierarchy").
7047 </p>
7048
7049 </body>
7050 </subsection>
7051 <subsection>
7052 <title>Scattered files</title>
7053 <body>
7054
7055 <p>
7056 One often frowned upon result of this file system structure is that applications
7057 scatter their files around on the system. Indeed, the locations for executable
7058 files, data files, documentation files, configuration files, ... are defined in
7059 the hierarchy standard but result in files being scattered throughout the file
7060 system instead of at a single location.
7061 </p>
7062
7063 <p>
7064 For instance, for a regular application the executable files will be stored in
7065 <path>/usr/bin</path>, data files in
7066 <path>/usr/share/&lt;application&nbsp;name&gt;/</path>, documentation files in
7067 <path>/usr/share/man</path> (for the manuals) or in the data file location,
7068 configuration files in <path>/etc</path>, libraries in <path>/usr/lib</path>,
7069 etc.
7070 </p>
7071
7072 <p>
7073 It is up to the distribution to keep track of the files that belong to a
7074 particular package. The software management system of a distribution is
7075 therefore a very important tool and is often the application that distinguishes
7076 one distribution from the others. For Gentoo, the software management system is
7077 called Portage.
7078 </p>
7079
7080 </body>
7081 </subsection>
7082 <subsection>
7083 <title>System administration versus system usage</title>
7084 <body>
7085
7086 <p>
7087 When you are using your Linux system for daily tasks you should be logged on as
7088 a regular user. This user will only have write-access to his personal <e>home
7089 directory</e>, located in <path>/home</path>, and have read access to most
7090 other places on the system (except where sensitive information is stored).
7091 </p>
7092
7093 <p>
7094 This user will be able to execute most applications that are stored in the
7095 regular executable locations (<path>/bin</path>, <path>/usr/bin</path> and a few
7096 other places). Whenever the user wants to run an application, the system will
7097 search through those directories for a matching application: it will not
7098 search through the entire system.
7099 </p>
7100
7101 <p>
7102 The administrative user (<c>root</c>) however has access to every location on
7103 the system. When he wants to execute an application, the system will search
7104 through <e>system administration locations</e> such as <path>/sbin</path> and
7105 <path>/usr/sbin</path> as well. Those locations contain tools that should only
7106 be ran by the <c>root</c> user. The <c>root</c> user can also read and write to
7107 every location on the system (although particular kernel projects exist that
7108 allow for more access control, limiting even the <c>root</c> user's
7109 capabilities).
7110 </p>
7111
7112 </body>
7113 </subsection>
7114 <subsection>
7115 <title>The role of hardware</title>
7116 <body>
7117
7118 <p>
7119 Within the tree structure there does not seem to be any room for the hardware
7120 (like disks, CD-ROMs, USB sticks or network mounts). Of course, hardware is
7121 important - where else would you store your files on if you do not have a hard
7122 disk? The use of such hardware however happens transparent to the user.
7123 </p>
7124
7125 <p>
7126 Storing files in Linux happens in a layered structure. At the bottom of the
7127 layer, you have the actual storage (most likely the partition or removable
7128 media). On top of the actual storage you have the file system. A file system can
7129 be spanned across several storage devices but most users will have one partition
7130 per file system. The file system is <e>mounted</e> in the Linux file system
7131 structure. Such mount always happens at a certain directory.
7132 </p>
7133
7134 <p>
7135 By default, you will have at least one file system for the root of your file
7136 system. If you only want to use a single file system, you can have your entire
7137 Linux system on a single partition. If you want to use several partitions, you
7138 need to think about what directory (and its subdirectories) you want to store
7139 on a different file system.
7140 </p>
7141
7142 <p>
7143 For instance, you might want to have <path>/home</path> stored on a separate
7144 file system which allows you to have all the users their data on a single
7145 partition (or drive). What happens is that you create a file system on that
7146 partition (or drive) and then <e>mount</e> this at <path>/home</path>.
7147 </p>
7148
7149 <p>
7150 If you do not mount it at <path>/home</path>, the <path>/home</path> and all its
7151 contents will be stored on the file system that contains the root of the file
7152 system. If you do mount it at <path>/home</path>, <path>/home</path> and all its
7153 contents will be stored on the other file system.
7154 </p>
7155
7156 <p>
7157 This mounting does have an important implication: if you forget to mount a file
7158 system at a certain location, the Linux file system structure will look as if
7159 that location contains no files. You will be able to add files to that location
7160 of course, but they will then be stored on the root file system instead of on
7161 the file system you forgot to mount.
7162 </p>
7163
7164 <p>
7165 In the next Code Listing we show you an example layered approach. The root file
7166 system is stored on <path>/dev/hda1</path> which represents the first partition
7167 on the first IDE disk in your system. The <path>/home</path> location is stored
7168 on a separate file system (which happens to be the same <e>kind</e> of file
7169 system: an ext3 one). This file system is stored on a <e>meta device</e> (a
7170 device that actually consists of multiple devices - in this case two
7171 partitions).
7172 </p>
7173
7174 <pre caption="Example layered approach for the Linux file system">
7175 +--------------------+----------------------------+
7176 | / (root) | /home (home directories) | <comment>&lt;- location</comment>
7177 +--------------------+----------------------------+
7178 | ext3 instance | ext3 instance | <comment>&lt;- file system</comment>
7179 +--------------------+--------------+-------------+
7180 | | /dev/md/0 |
7181 | /dev/hda1 +--------------+-------------+ <comment>&lt;- devices</comment>
7182 | | /dev/hdb1 | /dev/hdc1 |
7183 +--------------------+--------------+-------------+
7184 </pre>
7185
7186 </body>
7187 </subsection>
7188 </section>
7189 </sections>
7190
7191
7192
7193 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-intro-versions.xml
7194
7195 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-versions.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
7196 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-versions.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
7197
7198 Index: hb-intro-versions.xml
7199 ===================================================================
7200 <?xml version='1.0' encoding='UTF-8'?>
7201 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
7202
7203 <!-- The content of this document is licensed under the CC-BY-SA license -->
7204 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
7205
7206 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-intro-versions.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
7207
7208 <sections>
7209
7210 <version>0.0</version>
7211 <date>2005-06-19</date>
7212
7213 <section>
7214 <title>Versioning</title>
7215 <subsection>
7216 <title>The role of freedom</title>
7217 <body>
7218
7219 <p>
7220 When you are allowed to do anything you want, whenever you want and wherever you
7221 want, you will probably think total chaos is but a few inches away. Yet with
7222 Free Software we see that people work together closely, forming hierarchies
7223 built upon knowledge and expertise instead of popularity: most projects are
7224 governed as a <e>meritocracy</e> instead of a <e>democracy</e>.
7225 </p>
7226
7227 <p>
7228 In a meritocacry, the power goes to the people who have shown that they are
7229 superior in their field above most others. The hierarchies formed within a
7230 larger software project are chosen based on the abilities of the
7231 developers and not their charisma or any political decision.
7232 </p>
7233
7234 <p>
7235 In such projects, the lead developers decide when software is ready. There are
7236 generally five states where we can pin software on: in-development, tagged,
7237 development release, stable release and revised. We explain those states in the
7238 next few sections.
7239 </p>
7240
7241 </body>
7242 </subsection>
7243 <subsection>
7244 <title>State: in-development</title>
7245 <body>
7246
7247 <p>
7248 Software that is in-development is software where the developers work on
7249 constantly. When you have software installed on your system that is
7250 in-development, your software will already be outdated by the time you use it
7251 (unless the project isn't quite active of course).
7252 </p>
7253
7254 <p>
7255 Such software has the latest version of everything: every feature, every bug and
7256 every file that has been started is available in the software. Of course, this
7257 does mean that there is hardly any quality assurance on the software apart from
7258 the quality measures taken by the developers themselves.
7259 </p>
7260
7261 <p>
7262 Think as if you bought a painting where the painter was still busy painting: you
7263 will probably see it isn't finished yet.
7264 </p>
7265
7266 <p>
7267 If you are interested in such software, you might very well be a good candidate
7268 to become a developer for that software. In-development software is often
7269 referred to as the software available through the verioning system, such as CVS
7270 or SVN. Some distributions allow you to install such software despite it being
7271 unfinished. For instance, within Gentoo you can install <c>cinelerra-cvs</c>,
7272 the in-development version of the Cinelerra Video Editor. In this case, you will
7273 install the software that was in-development at the moment of installing. Every
7274 time you reinstall it, the latest in-development program code is used.
7275 </p>
7276
7277 <p>
7278 Most users however are not interested in the in-development version of any
7279 software. Distributions that allow installing such software therefore also
7280 protect their users by making sure the user knows what he is doing before he can
7281 install such software. In case of Gentoo, you must configure Portage to allow
7282 the installation of <e>untested</e> software.
7283 </p>
7284
7285 </body>
7286 </subsection>
7287 <subsection>
7288 <title>State: tagged and static</title>
7289 <body>
7290
7291 <p>
7292 When the developers know that the in-development software code works, or they
7293 want it as a reference for future development, they <e>tag</e> the software.
7294 Such tagged software is often called a <e>snapshot</e> of the in-development
7295 code and is given a specific name (most likely the date when the snapshot was
7296 taken).
7297 </p>
7298
7299 <p>
7300 This occurs often when the project does not allow outsiders to use the
7301 in-development code straight from the versioning system (for instance because
7302 the versioning system is not powerful enough to handle user requests or because
7303 they want a subproject to control the quality of the code before it is handed to
7304 contributors and interested parties).
7305 </p>
7306
7307 <p>
7308 Using such snapshots is often preferred to the in-development code because the
7309 distributions who use the software can ask the user who uses the snapshot which
7310 snapshot they took. Then the developers can install that specific snapshot
7311 themselves and see if they can reproduce the problem. When using in-development
7312 code, the developer would need to know exactly when the user has installed the
7313 in-development code.
7314 </p>
7315
7316 <p>
7317 Take Gentoo as an example: various (untested) packages are snapshots.
7318 <c>gentoo-syntax-20050325</c> is the snapshot taken on March 25th, 2005 of the
7319 <c>gentoo-syntax</c> package which provides syntax hilighting and indentation
7320 settings for <c>vim</c> (a popular command-line editor) for editing Gentoo
7321 related files.
7322 </p>
7323
7324 </body>
7325 </subsection>
7326 <subsection>
7327 <title>State: development release</title>
7328 <body>
7329
7330 <p>
7331 When the developers feel that the software is in a quite good shape, they will
7332 tag it again but instead of having it as a snapshot, they will make it a
7333 <e>development release</e>. In most cases, such a release is more than just a
7334 snapshot: it is made simultaneously with documentation updates, project web site
7335 updates and after meeting quality assurance. The project advises people who want
7336 to contribute to the development of the project to use at least the development
7337 release.
7338 </p>
7339
7340 <p>
7341 Because of this, such releases are given a specific version. Sometimes you can
7342 see that it is a development release by the name. For instance,
7343 <c>kdoc-2.0_alpha54</c> is a development release (because it contains the atom
7344 <c>alpha</c>) of <c>kdoc</c>, a KDE documentation processing/generation tool.
7345 </p>
7346
7347 <p>
7348 There are three atoms generally used to denote development releases:
7349 <c>alpha</c> (quite new, far from ready for production use), <c>beta</c> (should
7350 give a nice idea how the program will look and behave like when it is officially
7351 released to the public) and <c>rc</c> (<e>release candidate</e> - already
7352 contains all the features the final release will have, only bug fixes are
7353 accepted).
7354 </p>
7355
7356 <p>
7357 Previously, lots of projects made development releases. However, we notice that
7358 lately most projects have stepped down and only make official releases and
7359 in-development code. Distributions are now taking on the job of making snapshots
7360 and (although in lesser extend) development releases. Only when <e>major</e>
7361 releases are made projects make development releases to make sure the final
7362 release is really bugfree.
7363 </p>
7364
7365 </body>
7366 </subsection>
7367 <subsection>
7368 <title>State: stable release</title>
7369 <body>
7370
7371 <p>
7372 The real release is the stable release. Such releases are generally governed by
7373 a specific subproject of the software project and are made simultaneously with
7374 documentation updates, web site updates, and public release information.
7375 </p>
7376
7377 <p>
7378 If you are not interested in contributing to the project, you should use the
7379 stable releases of a project since these releases are very stable (they have
7380 undergone a lot of testing), have the most support (user and development
7381 community), documentation, etc.
7382 </p>
7383
7384 <p>
7385 For instance, <c>kde-meta-3.4.1</c> is an official release of the KDE project
7386 (version 3.4.1). You will find that the KDE project itself has written a <uri
7387 link="http://www.kde.org/announcements/announce-3.4.1.php">Press Release</uri>:
7388 this is an official statement by the project meant for various news sites,
7389 editors, distributions and interested users to inform them a new release is
7390 made. It contains pointers about the new features and enhancements that are put
7391 in the software and where you can download the software release.
7392 </p>
7393
7394 <p>
7395 The given example, <c>kde-meta-3.4.1</c>, is a great example for us to inform
7396 you about versioning numbers. The <c>3</c> is the <e>major version</e>. This
7397 number only changes when <e>very big changes</e> have happened since the
7398 previous release. The <c>4</c> is a <e>minor version</e>, informing people that
7399 the release has <e>big</e> updates but that they don't warrant a major version
7400 bump (a <e>bump</e> means to increase a number by one). The <c>1</c> is a
7401 <e>release revision</e> (although many people will also say it is a minor
7402 version). New releases that only differ in the revision number have small
7403 changes that improve stability, resolve security issues and bug fixes, but have
7404 relatively minor feature enhancements.
7405 </p>
7406
7407 </body>
7408 </subsection>
7409 <subsection>
7410 <title>State: revised</title>
7411 <body>
7412
7413 <p>
7414 While the official project makes stable releases, it is the distribution that
7415 makes sure that regular users can install the software on their system. Of
7416 course, you can install the software straight from the official project, but
7417 then you don't have the advantages that the distribution offers you with respect
7418 to software management.
7419 </p>
7420
7421 <p>
7422 The distribution takes the official release and makes some minor changes to it
7423 so that it installs flawlessly on your system. It might add in some eye-candy,
7424 add in some additional features that are highly asked upon by the community or
7425 change the location or names of some files to make the installation easier to
7426 manage.
7427 </p>
7428
7429 <p>
7430 Sometimes, the distribution finds a bug in the software (based on feedback it
7431 has received by users of the distribution or by the developers themselves).
7432 Quite often, the distribution will fix the issue for the users of the
7433 distribution and release it: in such cases, a <e>revision update</e> is made.
7434 </p>
7435
7436 <p>
7437 Take <c>gdm-2.6.0.9-r3</c> as an example. The official release is <c>2.6.0.9</c>
7438 (if you think this is a dull version, check out <c>binutils-2.15.94.0.2.2</c>)
7439 but Gentoo has made three revision releases since: the first revision
7440 (<c>-r1</c>) added Gentoo-specific PAM support. The second revision made the
7441 package stable for various architectures (different kind of systems). The third
7442 revision fixed some IPv6 issues.
7443 </p>
7444
7445 </body>
7446 </subsection>
7447 </section>
7448 <section>
7449 <title>Forks</title>
7450 <subsection>
7451 <title>Same software, different software</title>
7452 <body>
7453
7454 <p>
7455 We have touched the idea of a <e>fork</e> previously. A fork happens when one
7456 group of developers is not satisfied with another group of developers and start
7457 developing the same software, but differently. This occurs on occasion in the
7458 Free Software world.
7459 </p>
7460
7461 <p>
7462 For instance, one group of developers might not easily accept new features while
7463 there is a huge demand for it. This has happened with <c>blackbox</c>: its
7464 developers did not accept certain feature enhancements so a group of developers
7465 forked the code. They started <c>fluxbox</c> which was essentially the same as
7466 <c>blackbox</c> but its development was different as were the end goals. As of
7467 today, both projects still exist.
7468 </p>
7469
7470 </body>
7471 </subsection>
7472 </section>
7473 <section>
7474 <title>The role of distributions</title>
7475 <subsection>
7476 <title>Ease of use</title>
7477 <body>
7478
7479 <p>
7480 Whereas regular software releases can still be quite difficult a distribution
7481 makes it very easy to install software. When you want to install software as
7482 released by the projects, you still need to know <e>how</e> to install it and
7483 what options you need to enable. You need to know <e>what</e> you should have
7484 installed prior to installing the software (the dependencies).
7485 </p>
7486
7487 <p>
7488 When you install software using the distribution, the distribution does all this
7489 for you. It will automatically resolve dependencies and conflicts, use the
7490 correct installation options and merge the software on your system, registering
7491 every file it installs so that uninstallations are easy as cake.
7492 </p>
7493
7494 </body>
7495 </subsection>
7496 <subsection>
7497 <title>Protecting users from themselves</title>
7498 <body>
7499
7500 <p>
7501 Because projects have development releases and even snapshots and in-development
7502 code, distributions help their users by making sure novice users can not shoot
7503 themselves in the foot by installing such software while retaining the
7504 possibility of using such releases by more advanced users.
7505 </p>
7506
7507 <p>
7508 Distributions also register every file installation. If a user wants to install
7509 software that overwrites a file, the distribution will make sure this cannot
7510 happen or that the changes are reversible. A distribution will also make sure
7511 that two packages that interfere can not be both installed on the system.
7512 </p>
7513
7514 </body>
7515 </subsection>
7516 <subsection>
7517 <title>Feedback to upstream</title>
7518 <body>
7519
7520 <p>
7521 One of the most important roles of distributions is to provide feedback to the
7522 original software projects about how their software functions within the
7523 totality of a Linux system. The distributions inform the software projects about
7524 bugs that users reported to the distribution and they provide valuable
7525 enhancement requests <e>with</e> contributions based on the revision updates
7526 they have made themselves.
7527 </p>
7528
7529 <p>
7530 Quite often distributions have developers working for them who also work on the
7531 software projects. It goes without saying that this only improves the
7532 cooperation between the two projects.
7533 </p>
7534
7535 </body>
7536 </subsection>
7537 <subsection>
7538 <title>Taking care of updates</title>
7539 <body>
7540
7541 <p>
7542 A distribution also takes care of informing the user about updates. Updates can
7543 happen for various reasons. The most important ones are <e>security updates</e>.
7544 In this case, the distribution warns the user that he needs to update (or accept
7545 the pending updates) because there are security issues with his current system.
7546 </p>
7547
7548 <p>
7549 Other updates are mostly new versions (new features, lots of bug fixes) made by
7550 the software project itself (in other words, new releases) or
7551 distribution-specific updates (new revision releases by the distribution).
7552 </p>
7553
7554 </body>
7555 </subsection>
7556 </section>
7557 </sections>
7558
7559
7560
7561 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-io.xml
7562
7563 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-io.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
7564 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-io.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
7565
7566 Index: hb-tuning-io.xml
7567 ===================================================================
7568 <?xml version='1.0' encoding='UTF-8'?>
7569 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
7570
7571 <!-- The content of this document is licensed under the CC-BY-SA license -->
7572 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
7573
7574 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-io.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
7575
7576 <sections>
7577
7578 <version>0.0</version>
7579 <date>2005-06-19</date>
7580
7581 <section>
7582 <title>Know what to measure</title>
7583 <subsection>
7584 <title>Benchmarks</title>
7585 <body>
7586
7587 </body>
7588 </subsection>
7589 <subsection>
7590 <title>Usage sessions</title>
7591 <body>
7592
7593 </body>
7594 </subsection>
7595 <subsection>
7596 <title>Gut feeling</title>
7597 <body>
7598
7599 </body>
7600 </subsection>
7601 </section>
7602
7603 <section>
7604 <title>Understanding the chain</title>
7605 <subsection>
7606 <title>System calls</title>
7607 <body>
7608
7609 </body>
7610 </subsection>
7611 <subsection>
7612 <title>Kernel driver</title>
7613 <body>
7614
7615 </body>
7616 </subsection>
7617 <subsection>
7618 <title>Hardware</title>
7619 <body>
7620
7621 </body>
7622 </subsection>
7623 </section>
7624
7625 <section>
7626 <title>Tuning the system calls</title>
7627 </section>
7628
7629 <section>
7630 <title>Tuning the kernel drivers</title>
7631 </section>
7632
7633 <section>
7634 <title>Tuning the hardware</title>
7635 </section>
7636
7637 </sections>
7638
7639
7640
7641 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-network.xml
7642
7643 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-network.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
7644 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-network.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
7645
7646 Index: hb-tuning-network.xml
7647 ===================================================================
7648 <?xml version='1.0' encoding='UTF-8'?>
7649 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
7650
7651 <!-- The content of this document is licensed under the CC-BY-SA license -->
7652 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
7653
7654 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-network.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
7655
7656 <sections>
7657
7658 <version>0.0</version>
7659 <date>2005-06-19</date>
7660
7661 <section>
7662 <title>Network cards and drivers</title>
7663 </section>
7664
7665 <section>
7666 <title>Ethernet network</title>
7667 </section>
7668
7669 <section>
7670 <title>Connected Internet</title>
7671 </section>
7672
7673 <section>
7674 <title>Wireless networks</title>
7675 </section>
7676
7677 <section>
7678 <title>Virtual private networks</title>
7679 </section>
7680
7681 </sections>
7682
7683
7684
7685 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-profiling.xml
7686
7687 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-profiling.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
7688 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-profiling.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
7689
7690 Index: hb-tuning-profiling.xml
7691 ===================================================================
7692 <?xml version='1.0' encoding='UTF-8'?>
7693 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
7694
7695 <!-- The content of this document is licensed under the CC-BY-SA license -->
7696 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
7697
7698 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-profiling.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
7699
7700 <sections>
7701
7702 <version>0.0</version>
7703 <date>2005-06-19</date>
7704
7705 <section>
7706 <title>Execution profiling</title>
7707 </section>
7708
7709 <section>
7710 <title>Memory profiling</title>
7711 </section>
7712
7713 <section>
7714 <title>Benchmarking</title>
7715 </section>
7716
7717 </sections>
7718
7719
7720
7721 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-rendering.xml
7722
7723 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-rendering.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
7724 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-rendering.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
7725
7726 Index: hb-tuning-rendering.xml
7727 ===================================================================
7728 <?xml version='1.0' encoding='UTF-8'?>
7729 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
7730
7731 <!-- The content of this document is licensed under the CC-BY-SA license -->
7732 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
7733
7734 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-rendering.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
7735
7736 <sections>
7737
7738 <version>0.0</version>
7739 <date>2005-06-19</date>
7740
7741 <section>
7742 <title>All about drivers</title>
7743 </section>
7744
7745 <section>
7746 <title>nVidia-based graphical cards</title>
7747 </section>
7748
7749 <section>
7750 <title>ATI-based graphical cards</title>
7751 </section>
7752
7753 <section>
7754 <title>Render engines</title>
7755 </section>
7756
7757 </sections>
7758
7759
7760
7761 1.1 xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-userinput.xml
7762
7763 file : http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-userinput.xml?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=gentoo
7764 plain: http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-userinput.xml?rev=1.1&content-type=text/plain&cvsroot=gentoo
7765
7766 Index: hb-tuning-userinput.xml
7767 ===================================================================
7768 <?xml version='1.0' encoding='UTF-8'?>
7769 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
7770
7771 <!-- The content of this document is licensed under the CC-BY-SA license -->
7772 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
7773
7774 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/draft/complete/hb-tuning-userinput.xml,v 1.1 2006/01/06 20:05:07 swift Exp $ -->
7775
7776 <sections>
7777
7778 <version>0.0</version>
7779 <date>2005-06-19</date>
7780
7781 <section>
7782 <title>Latency</title>
7783 </section>
7784
7785 <section>
7786 <title>Parallel execution</title>
7787 </section>
7788
7789 <section>
7790 <title>Gradual detailing</title>
7791 </section>
7792
7793 </sections>
7794
7795
7796
7797 --
7798 gentoo-doc-cvs@g.o mailing list