Baixe o app para aproveitar ainda mais
Prévia do material em texto
HUNGER If Debian GNU/Linux can do it, you can do it too . . . Whether you’re a Linux newcomer looking for foolproof installation tips or a Debian GNU/ veteran who wants the scoop on the latest security enhancements, this authoritative guide delivers all the information you need to make the most of the Debian GNU/ “potato” release. From customizing a desktop system to troubleshooting a network or setting up an e-commerce server, it’s the only reference you’ll ever need to become a Debian GNU/Linux pro. Inside, you’ll find complete coverage of Debian GNU/Linux • Get crystal-clear instructions for fast, painless installation • Learn your way around the Linux shell, file system, and X Window System • Discover how easy it is to set up a LAN in Debian and connect to the Internet • Make the most of Linux desktop applications, games, and multimedia features • Master Linux administration, from automating system tasks to locking in security • Find guidance on how to keep Debian current and bug-free • Get the scoop on configuring servers, from Apache and FTP to NIS and Sendmail Shelving Category: Linux Reader Level: Beginning to Advanced System Requirements: Intel 386 or better; 150MB+ hard drive space; 16MB+ RAM; CD-ROM drive ISBN 0-7645-4710-0 $49.99 USA $74.99 Canada £39.99 UK incl. VAT D ebian G N U/Linux Master Linux system administration Discover the power of Debian’s package management system Build a network and set up Linux servers Steve Hunger Foreword by Ian Murdock, Founder of Debian and now Cofounder of Progeny Linux Systems “Steve Hunger’s book is the most comprehensive and up-to-date guide to Debian GNU/Linux in print.” —Branden Robinson, Debian Developer ,!7IA7G4-fehbac!:p;o;t;T;T*85555-ACJDHi Debian GNU/ Linux 2.2r2 on CD-ROM BONUS CD-ROM Debian GNU/Linux 2.2r2 100% C O M P R E H E N S I V E w w w . h u n g r y m i n d s . c o m 100% O N E H U N D R E D P E R C E N T C O M P R E H E N S I V E A U T H O R I T A T I V E W H A T Y O U N E E D O N E H U N D R E D P E R C E N T DebianGNU/Linux Bible Configure the Debian interface for your special requirements � � Monitor your Web server with Debian packages� Combine the simplicity of a window manager with up-to-date graphic controls DebianGNU/Linux D ebian G N U/Linux ® ® ®® Debian GNU/Linux 2.2r2 inside ®® ® ® 4710-0 Cover 3/30/01 11:56 AM Page 1 Debian GNU/Linux® Bible 4710-0 FM.F 4/10/01 3:38 PM Page i Debian GNU/Linux® Bible Steve Hunger Hungry Minds, Inc. Indianapolis, IN ✦ Cleveland, OH ✦ New York, NY 4710-0 FM.F 4/10/01 3:38 PM Page iii Debian GNU/Linux® Bible Published by Hungry Minds, Inc. 909 Third Avenue New York, NY 10022 www.hungryminds.com Copyright 2001 Hungry Minds, Inc. All rights reserved. No part of this book, including interior design, cover design, and icons, may be reproduced or transmitted in any form, by any means (electronic, photocopying, recording, or otherwise) without the prior written permission of the publisher. Library of Congress Catalog Card No.: 2001089113 ISBN: 0-7645-4710-0 Printed in the United States of America 10 9 8 7 6 5 4 3 2 1 1B/SW/QU/QR/IN Distributed in the United States by Hungry Minds, Inc. Distributed by CDG Books Canada Inc. for Canada; by Transworld Publishers Limited in the United Kingdom; by IDG Norge Books for Norway; by IDG Sweden Books for Sweden; by IDG Books Australia Publishing Corporation Pty. Ltd. for Australia and New Zealand; by TransQuest Publishers Pte Ltd. for Singapore, Malaysia, Thailand, Indonesia, and Hong Kong; by Gotop Information Inc. for Taiwan; by ICG Muse, Inc. for Japan; by Intersoft for South Africa; by Eyrolles for France; by International Thomson Publishing for Germany, Austria, and Switzerland; by Distribuidora Cuspide for Argentina; by LR International for Brazil; by Galileo Libros for Chile; by Ediciones ZETA S.C.R. Ltda. for Peru; by WS Computer Publishing Corporation, Inc., for the Philippines; by Contemporanea de Ediciones for Venezuela; by Express Computer Distributors for the Caribbean and West Indies; by Micronesia Media Distributor, Inc. for Micronesia; by Chips Computadoras S.A. de C.V. for Mexico; by Editorial Norma de Panama S.A. for Panama; by American Bookshops for Finland. For general information on Hungry Minds’ products and services please contact our Customer Care department within the U.S. at 800-762-2974, outside the U.S. at 317-572-3993 or fax 317-572-4002. For sales inquiries and reseller information, including discounts, premium and bulk quantity sales, and foreign-language translations, please contact our Customer Care department at 800-434-3422, fax 317-572-4002 or write to Hungry Minds, Inc., Attn: Customer Care Department, 10475 Crosspoint Boulevard, Indianapolis, IN 46256. For information on licensing foreign or domestic rights, please contact our Sub-Rights Customer Care department at 212-884-5000. For information on using Hungry Minds’ products and services in the classroom or for ordering examination copies, please contact our Educational Sales department at 800-434-2086 or fax 317-572-4005. For press review copies, author interviews, or other publicity information, please contact our Public Relations department at 650-653-7000 or fax 650-653-7500. For authorization to photocopy items for corporate, personal, or educational use, please contact Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, or fax 978-750-4470. LIMIT OF LIABILITY/DISCLAIMER OF WARRANTY: THE PUBLISHER AND AUTHOR HAVE USED THEIR BEST EFFORTS IN PREPARING THIS BOOK. THE PUBLISHER AND AUTHOR MAKE NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE ACCURACY OR COMPLETENESS OF THE CONTENTS OF THIS BOOK AND SPECIFICALLY DISCLAIM ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. THERE ARE NO WARRANTIES WHICH EXTEND BEYOND THE DESCRIPTIONS CONTAINED IN THIS PARAGRAPH. NO WARRANTY MAY BE CREATED OR EXTENDED BY SALES REPRESENTATIVES OR WRITTEN SALES MATERIALS. THE ACCURACY AND COMPLETENESS OF THE INFORMATION PROVIDED HEREIN AND THE OPINIONS STATED HEREIN ARE NOT GUARANTEED OR WARRANTED TO PRODUCE ANY PARTICULAR RESULTS, AND THE ADVICE AND STRATEGIES CONTAINED HEREIN MAY NOT BE SUITABLE FOR EVERY INDIVIDUAL. NEITHER THE PUBLISHER NOR AUTHOR SHALL BE LIABLE FOR ANY LOSS OF PROFIT OR ANY OTHER COMMERCIAL DAMAGES, INCLUDING BUT NOT LIMITED TO SPECIAL, INCIDENTAL, CONSEQUENTIAL, OR OTHER DAMAGES. Trademarks: All brand names and product names used in this book are trade names, service marks, trademarks, or registered trademarks of their respective owners. All other trademarks are the property of their respective owners. Hungry Minds, Inc., is not associated with any product or vendor mentioned in this book. is a trademark of Hungry Minds, Inc. 4710-0 FM.F 4/10/01 3:38 PM Page iv About the Author Steve Hunger has spent the last 10 years in the computer industry, the last four supporting and integrating multiple platforms for a Fortune 500 Company. Having been introduced to UNIX while attending Purdue University, he quickly latched onto Linux as the primary platform for his startup Web hosting and development busi- ness in 1996. He continues operating his Web business, consulting with local busi- nesses, and freelance writing. When not conquering the world with Linux, he has co-written and contributed to several books for Macmillan USA and Brady Games, including work on the line of Mandrake Linux products. His latest work has been for AOL Press called Powering Up the Internet. In his spare time he enjoys relaxing with his wife, riding bicycles, and tinkering with an R/C model that is evolving into something that looks amazing like a plane. He is also on the Board of Directors for the Central Indiana Linux Users Group (www.cinlug.org). Steve can be reached at steve@rhinoworld.com. 4710-0 FM.F 4/10/01 3:38 PM Page v Credits Acquisitions Editor Terri Varveris Project Editor Gus A. Miklos TechnicalEditor Steve Schafer Copy Editors Victoria Lee O’Malley Luann Rouff Project Coordinator Dale White Graphics and Production Specialists Amy Adrian Sean Decker Gabriele McCann Kendra Span Quality Control Technicians David Faust Susan Moritz Marianne Santy Charles Spencer Permissions Editor Laura Moss Media Development Specialist Travis Silvers Media Development Coordinator Marisa Pearman Proofreading and Indexing York Production Services, Inc. 4710-0 FM.F 4/10/01 3:38 PM Page vi This book is dedicated to my beloved wife, Sandy. Without her love, support, and encouragement to carry me on days I needed it, this book would not have been possible. And to my father, who also saw me through this book. 4710-0 FM.F 4/10/01 3:38 PM Page vii Foreword In January 1993, while browsing USENET news one evening after work, I ranacross a thread with a subject line that read, simply, “LINUX.” I’m not sure what it was about the word “LINUX” that made me hit Enter, but I did, and within a few minutes, it was clear to me that I had to have it. Unfortunately, that’s about where I hit a brick wall. I had just enough information about Linux to whet my appetite, but there was precious little more of it to be found. Over the course of the next few weeks, I hunted down and pieced together the rest of what I needed to know: where to find it, how to download it, how to install it, and what I could do with it once I had installed it. It was a tedious process, because only scraps of information were available, and those scraps were scattered about all over the place — a bit on a USENET group here, a bit more on an FTP site there. And even when found and pieced together, the scraps did not form a complete picture — I had to fill in large gaps for myself. All in all, it was a tremendous learning experience, but it was also a tremendously frus- trating and time-consuming experience, and if presented with the same obstacles today, I likely would not have had the time or the inclination to overcome them. Fortunately, becoming a Linux user is much easier today than it was in 1993. The software itself has come a long way, and a wide range of books on the subject are available, from installation and use to programming to administration and manage- ment. These days, the local bookstore has all the information you need to get started and become productive as a Linux user. One subject that has not been covered as extensively as others, a subject near and dear to my heart, is Debian, a project I founded not long after discovering Linux. Debian has much to offer the Linux user — a huge selection of software, an open development process that leads to rapid bug fixes and improvements, an unparal- leled software management facility that allows software to be installed easily and systems to be upgraded non-disruptively, and much more — but it has long remained a daunting prospect to piece together the information you need to get there. 4710-0 FM.F 4/10/01 3:38 PM Page ix x Debian GNU/Linux Bible And, so, I am extremely pleased to see books such as my friend Steve Hunger’s Debian GNU/Linux Bible. Debian GNU/Linux Bible contains all the information you need to know to get the most out of Debian, from installing it to using its powerful package management system to install software and upgrade your system to setting up a Web server and other advanced topics. With Debian GNU/Linux Bible by your side, you will be well prepared to join the large and growing group of users that call Debian home. I hope this book serves you well. Ian Murdock Founder of Debian and Co-founder of Progeny Linux Systems, Inc. 4710-0 FM.F 4/10/01 3:38 PM Page x Preface As Linux becomes more and more popular, resources to learn and use Linuxbecome more important. These resources help to guide, direct, and inform an individual to make the best use of the tools available, just as a stack of boards, nails, and a hammer don’t make a house — it takes the skilled craftsmanship of a carpenter to turn the parts into a whole house. Debian GNU/Linux Bible gives you the skilled guidance to help you turn the individual parts into a system. Whom This Book Is For This book covers the many aspects of the Debian GNU/Linux system, from the ini- tial install of this reputable operating system to the more advanced functions like Web servers or file servers. You do not need to have any special programming expe- rience to use this book. You may just want to learn how to use Debian as a work- station environment. This book does assume some level of general computer knowledge, even though not specifically related to Linux or UNIX. Many people get introduced to Linux after becoming familiar with another operating system. You may be someone who wants to learn something new, someone who wants to know what all the buzz is about Linux, or someone who just likes the idea that the software and upgrades are free. Whatever the reason you are reading this book, I’m sure that you will find assis- tance in the pages of this book. You will find everything from installation to admin- istration to server setup. This book will give you the boost needed to set up a home or office network and to maintain that network of computers. How This Book Is Organized This book is organized in a progression of skill as well as function. The beginning of the book starts out with an overview of Linux. It then progresses to the concepts needed for average use. Then, it concludes with the concepts needed for more intense use. For those who are fairly new to Linux, this book will help them get their feet wet. Some of the basic concepts, commands and tools are explained in the beginning chapters of this book. As you become more experienced with Linux and specifically 4710-0 FM.F 4/10/01 3:38 PM Page xi xii Debian GNU/Linux Bible Debian GNU/Linux, you move into the intermediate areas of the book, namely the middle sections. Lastly, the experienced administrator who will from time to time need instruction on specific services can find this information in “Part III: Administering Linux.” Now that you have an idea of the overall layout of the book, let’s look over the book chapter by chapter. The following will describe the contents of the book in slightly more detail. Part I: Getting Started Part I provides the basic introduction to Debian GNU/Linux. The chapters in this part start with background on Linux in general and the beginnings of the Debian distribution; walk you through the important steps on getting Debian GNU/Linux installed on your system; cover the essential base set of commands used to navi- gate through the newly installed system; cover the differences between desktop managers, desktop environments, and window managers; explain the requirements and configuration of setting up a network and describe tools used to test, diagnose, and evaluate the network once installed; and help you connect your system to the Internet and explain some of the applications you’ll need for such things as e-mail, news, and Web browsing. Part II: Working with Debian Chapters in Part II explain how to install additional applications on the system, cover the features and functions of the popular Office-like application suites avail- able to Linux, describe the intermediate commands found on the system (useful to those interested in going on to the next step), provide examples of applications that appeal to the senses — sight and sound alike, and list the multitude of games avail- able for Linux (no computer user is complete with out at least trying some of the games). Part III: Administering Linux The chapters in Part II cover the concerns that administrators face when managing one system or many, deal with the programming environment found with Linux (including the most common environments, like Perl, Tk/Tcl, and C), explain the most amazing environment that makes Linux so powerful and how to mixthe envi- ronment with the programming of scripts, detail the core part of the Linux system — the kernel, and explain how to modify and create new versions of the kernel specifically designed for your needs. 4710-0 FM.F 4/10/01 3:38 PM Page xii xiiiPreface Part IV: Maintenance and Upgrade Chapters in this part direct you on keeping the system updated and current to pre- vent problems from creeping in, describe some of the hardware and how to make changes to the system to accommodate additions, and explain why backups are important. Part V: Linux Server In Part V, chapters detail how to lock down the security of a Linux system to pre- vent intrusion; cover how Debian can be used as the first line of defense to protect a home or office network; show you how to publish Web pages on the network or Internet; explain how to set up a server to allow the transfer of files from any num- ber of clients using the File Transfer Protocol; provide information on setting up a central Network Information Server to manage a medium-sized to large network or account; describe how to create a central point from which to share, store, and archive files in one place; and list the servers used to handle electronic mail, one of the most-used forms of communication among most medium-sized to large companies. Appendixes The book concludes with three appendixes. ✦ Appendix A, “What’s On the CD-ROM,” provides you with information on the contents of the CD-ROM that accompanies this book. ✦ Appendix B, “Linux Commands,” covers many of the commands found in the common areas on the Linux filesystem. ✦ Appendix C, “Debian Packages,” presents a list of commonly used Debian packages with a short description of each. System Requirements Nearly all software has some level of requirements when referring to hardware that it is run on. Debian GNU/Linux is no different. Even though Debian is available for different platforms, the one used in this book is the i386-based platform. This includes processors ranging from the Intel series (386, 486, Pentium class, and other variations), AMD, and any of the other “Intel clone” processors. Other proces- sor platforms will operate similarly, so this book can still operate as a reference even though they may not be specifically referred to. 4710-0 FM.F 4/10/01 3:38 PM Page xiii xiv Debian GNU/Linux Bible Beyond the core processor, the other components will be supported to varying lev- els. For each of those, I will redirect you back to the manufacturers or to one of the many Web site where the information about using hardware with Linux is available. One such site is www.linuxdoc.com. At the minimum, your systems should include at least a i486 class processor with 8MB of RAM, a 500MB hard disk and either a bootable floppy drive with CD-ROM drive or a bootable CD-ROM drive. However, this distribution of Debian GNU/Linux will work on systems with less. If you intend on using the i486 class processor as a workstation, I recommend a higher standard for better response. Conventions There are several conventions used within this book that will help you to get more out of it. The first is the use of special fonts or font styles to emphasize a special kind of text; the second is the use of icons to emphasize special information. ✦ There are some situations when I’ll ask you to type something. This informa- tion always appears in bold type like this: Type Hello World. ✦ Code normally appears on separate lines from the rest of the text. However, there are some special situations when small amounts of code appear right in the paragraph for explanation purposes. This code will appear in a monospaced font like this: Some Special Code. URLs for Web sites are also presented in monospaced font like this: http://www.microsoft.com. ✦ Definitions are always handy to have. I use italics to differentiate definitions from the rest of the text like this: A CPU is the central processing unit for your machine. ✦ In some code examples, I won’t have an exact value to provide so I’ll give you an idea of what you should type by using italics and monospaced font like this: Provide a Machine Name value for the Name field. The following icons identify useful and important asides from the main text. Notes help you to understand some principle or provide amplifying information. In many cases, a Note is used to emphasize a piece of critical information that you need. Any time that you see a Caution, make sure that you take special care to read it. This information is vital. I always uses the Caution to designate information that will help you to avoid damage to your application, data, machine, or self. Never skip the Cautions in a chapter and always follow their advice. Caution Note 4710-0 FM.F 4/10/01 3:38 PM Page xiv xvPreface All of us like to know special bits of information that will make our job easier, more fun, or faster to perform. Tips help you to get the job done faster and more safely. In many cases, the information found in a Tip is drawn from experience, rather than from experimentation or from the documentation. There are times when information in another area of the book will help you to bet- ter understand the current discussion. I always include the Cross-Reference icon to indicate additional material that you might need. Cross- Reference Tip 4710-0 FM.F 4/10/01 3:38 PM Page xv Acknowledgments Iwould first like to thank the Debian development community. Without their hardwork, high standards, and volunteer efforts, this Linux distribution would not have the reputation it does today. So these thanks goes out to the hundreds of those volunteers. I would also like to thanks the two contributors to this book, John Goerzen and Shawn Voss. John wrote the chapter on the available programming environments in Debian. Shawn wrote the chapter on the shell environments and shell scripts. I would also like to thank everyone who has worked to produce this book — specifically, Terri Varveris for her efforts in planning, scheduling, and the other details involved with getting a book like this to the shelves and Gus Miklos for all his work making sure that what I wrote down could actually be read and under- stood by others. I’d also like to thank Steve Schafer for his efforts editing the technical aspects of the book content. And a thanks go out to all the other involved at differing levels on this book. Thanks to all those who has had to listen to me get on my soap box about Linux over the years — especially my wife for her patience while I spent the hours chained to the computer working on some project or other. 4710-0 FM.F 4/10/01 3:38 PM Page xvi Contents at a Glance Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi Part I: Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Chapter 1: Introduction to Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Chapter 2: Installing Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Chapter 3: First Steps as a Linux User . . . . . . . . . . . . . . . . . . . . . . . . . 41 Chapter 4: Choosing a GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Chapter 5: Networking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Chapter 6: Setting Up for the Internet . . . . . . . . . . . . . . . . . . . . . . . . . 113 Part II: Working with Debian . . . . . . . . . . . . . . . . . . . . . . . 131 Chapter 7: Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Chapter 8: Productivity Applications . . . . . . . . . . . . . . . . . . . . . . . . . 157 Chapter 9: Essential Tools . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 179 Chapter 10: Multimedia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 Chapter 11: Games . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Part III: Administering Linux . . . . . . . . . . . . . . . . . . . . . . . . 235 Chapter 12: System Administration . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Chapter 13: Scripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Chapter 14: Shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 Chapter 15: Linux Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 Part IV: Maintenance and Upgrade . . . . . . . . . . . . . . . . . . . . 335 Chapter 16: Finding Updated Files . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 Chapter 17: Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 Chapter 18: Backups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 4710-0 FM.F 4/10/01 3:38 PM Page xvii xviii Debian GNU/Linux Bible Part V: Linux Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 Chapter 19: Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 Chapter 20: Firewall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 Chapter 21: Web Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431 Chapter 22: FTP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 Chapter 23: Network Information System . . . . . . . . . . . . . . . . . . . . . . 485 Chapter 24: File Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 Chapter 25: Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 Appendix A: What’s On the CD-ROM . . . . . . . . . . . . . . . . . . . . . . . . . 539 Appendix B: Linux Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 Appendix C: Debian Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625 GNU General Public License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659 CD-ROM Installation Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . 664 4710-0 FM.F 4/10/01 3:38 PM Page xviii Contents Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi Part I: Getting Started 1 Chapter 1: Introduction to Linux . . . . . . . . . . . . . . . . . . . . . . . 3 Understanding the Role of the Operating System . . . . . . . . . . . . . . . . 3 History of GNU/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Linux versus Other Operating Systems . . . . . . . . . . . . . . . . . . . . . . 6 The Word on Free Software and Open Source . . . . . . . . . . . . . . . . . . 8 What’s So Special about GNU/Linux? . . . . . . . . . . . . . . . . . . . . . . . 8 Understanding the Debian Distribution . . . . . . . . . . . . . . . . . . . . . 10 Chapter 2: Installing Debian . . . . . . . . . . . . . . . . . . . . . . . . 13 Preparing Your System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Basic Debian Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Booting off the CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 The main menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Configuring the keyboard . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Partitioning a hard disk . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Initializing and activating a swap partition . . . . . . . . . . . . . . . . 18 Initializing a Linux partition . . . . . . . . . . . . . . . . . . . . . . . . 18 Initializing the operating system kernel and modules . . . . . . . . . 19 Configuring device driver modules . . . . . . . . . . . . . . . . . . . . 20 Configuring the network . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Installing the base system . . . . . . . . . . . . . . . . . . . . . . . . . 22 Configuring the base system . . . . . . . . . . . . . . . . . . . . . . . . 23 Booting Linux directly from the hard drive . . . . . . . . . . . . . . . 24 Making a boot floppy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Rebooting the system . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4710-0 FM.F 4/10/01 3:38 PM Page xix xx Debian GNU/Linux Bible Configuring the Debian system . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Apt configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Using the Debian Package-Management System . . . . . . . . . . . . . . . . 31 What are deb packages? . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Adding deb packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Changing the package archive source . . . . . . . . . . . . . . . . . . 35 Gnome-apt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Installing Non-Debian Software . . . . . . . . . . . . . . . . . . . . . . . . . . 37 RPM packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 tar packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Chapter 3: First Steps as a Linux User . . . . . . . . . . . . . . . . . . . 41 Logging In and Out of Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Basic Navigation with Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Finding special file locations . . . . . . . . . . . . . . . . . . . . . . . . 43 Finding ready-reference documentation . . . . . . . . . . . . . . . . . 45 Maneuvering through the files . . . . . . . . . . . . . . . . . . . . . . . 48 Stopping the System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Using the reboot, halt, and poweroff commands . . . . . . . . . . . . 56 Using the shutdown command . . . . . . . . . . . . . . . . . . . . . . . 57 Working with the Filesystem and Related Commands . . . . . . . . . . . . . 58 Mounting drives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Chapter 4: Choosing a GUI . . . . . . . . . . . . . . . . . . . . . . . . . 63 Linux’s Graphical User Interface . . . . . . . . . . . . . . . . . . . . . . . . . 63 Deciding on a Graphical Interface . . . . . . . . . . . . . . . . . . . . . . . . 65 Installing and Configuring the X Environment . . . . . . . . . . . . . . . . . 66 X system requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Installing fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Installing the Display Manager . . . . . . . . . . . . . . . . . . . . . . . 69 XF86Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Starting the X server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Starting X remotely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Managing the X server . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Installing and Using Window Managers . . . . . . . . . . . . . . . . . . . . . 79 FVWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Enlightenment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Window Maker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4710-0 FM.F 4/10/01 3:38 PM Page xx xxiContents Installing and Using Desktop Environments . . . . . . . . . . . . . . . . . . 84 GNOME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 KDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Troubleshooting Your New Components. . . . . . . . . . . . . . . . . . . . 88 Chapter 5: Networking . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Components of the Linux Network . . . . . . . . . . . . . . . . . . . . . . . . 91 TCP/IP Network Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 IP addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Network classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Ports and services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Netmasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Understanding Host Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Understanding Domain Names and the DNS . . . . . . . . . . . . . . . . . . 97 Setting Up the Physical Network . . . . . . . . . . . . . . . . . . . . . . . . 100 Ethernet cards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Hubs and switches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Cables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Setting Up the Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Making Changes to the Network . . . . . . . . . . . . . . . . . . . . . . . . 104 Making manual changes . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Adding IP addresses to one Ethernet card . . . . . . . . . . . . . . . 105 Troubleshooting the Network . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Using dmesg to troubleshoot . . . . . . . . . . . . . . . . . . . . . . . 106 Using ifconfig to troubleshoot . . . . . . . . . . . . . . . . . . . . . . 106 Using ping to troubleshoot . . . . . . . . . . . . . . . . . . . . . . . . 108 Using traceroute to troubleshoot . . . . . . . . . . . . . . . . . . . . 109 Using route to troubleshoot . . . . . . . . . . . . . . . . . . . . . . . 110 Chapter 6: Setting Up for the Internet . . . . . . . . . . . . . . . . . . 113 Connecting to an ISP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Using wvdial to connect . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Using diald to connect . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Web Browsers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 E-Mail Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Balsa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Netscape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 mutt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 4710-0 FM.F 4/10/01 3:38 PM Page xxi xxii Debian GNU/Linux Bible mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Mail utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 News Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 PAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Netscape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 tin newsreader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 FTP Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Dial-in PPP Server Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Part II: Working with Debian 131 Chapter 7: Applications . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Installing Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Using the Windows Application with Linux . . . . . . . . . . . . . . . . . . 134 DOSEMU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Wine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 VMware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Plex86 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Graphics Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Gimp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 ImageMagick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Browsers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Lynx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Mozilla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Opera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Netscape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Chapter 8: Productivity Applications . . . . . . . . . . . . . . . . . . . 157 StarOffice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 The StarOffice desktop . . . . . . . . . . . . . . . . . . . . . . . . . . 160 Applixware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Navigating Applixware . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 4710-0 FM.F 4/10/01 3:38 PM Page xxii xxiiiContents Alternatives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Gnome Office . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Publishing documents with text files . . . . . . . . . . . . . . . . . . 174 TeX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Groff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 File Converters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Chapter 9: Essential Tools . . . . . . . . . . . . . . . . . . . . . . . . . 179 Using Text Editors in Debian GNU . . . . . . . . . . . . . . . . . . . . . . . 179 Learning to use vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 Learning to use Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 Using Commands and Programs . . . . . . . . . . . . . . . . . . . . . . . . 188 alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 locate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 cat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 The more program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 The less program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Automating Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 The at command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 The batch command . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 The cron command . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 The anacron command . . . . . . . . . . . . . . . . . . . . . . . . . . 200 Chapter 10: Multimedia . . . . . . . . . . . . . . . . . . . . . . . . . . 203 Listening to Audio Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 Audio file formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Audio CDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 MP3 on Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Recording CDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Streaming audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 212 Watching Videos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 MPEG videos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 DVD videos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Using Live Voice Chat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 4710-0 FM.F 4/10/01 3:38 PM Page xxiii xxiv Debian GNU/Linux Bible Chapter 11: Games . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 System Considerations for Gaming . . . . . . . . . . . . . . . . . . . . . . . 217 Graphical interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Sound system requirements . . . . . . . . . . . . . . . . . . . . . . . 218 Other system demands . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Playing Debian-Packaged Games . . . . . . . . . . . . . . . . . . . . . . . . 219 Adventure games . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 Arcade games . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 Board games . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 Card games . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Simulation games . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 Strategy games . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 Multi-player games . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 GNOME games . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 Playing Commercial Games . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 SimCity 3000 Unlimited . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Unreal Tournament . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 Part III: Administering Linux 235 Chapter 12: System Administration . . . . . . . . . . . . . . . . . . . 237 The Roles of the System Administrator . . . . . . . . . . . . . . . . . . . . 237 The System Administrator and the Root Account . . . . . . . . . . . . . . 239 Using the su command . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Using the sudo command . . . . . . . . . . . . . . . . . . . . . . . . . 241 Administering and Setting up Accounts . . . . . . . . . . . . . . . . . . . . 242 The passwd file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 The purpose of shadow passwords . . . . . . . . . . . . . . . . . . . 243 The group file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 Employing adduser to add a user account . . . . . . . . . . . . . . . 244 The new user template — skel . . . . . . . . . . . . . . . . . . . . . . 245 Using userdel to remove a user . . . . . . . . . . . . . . . . . . . . . . 246 Restricting access to the root account . . . . . . . . . . . . . . . . . 246 Setting File and Directory Permissions . . . . . . . . . . . . . . . . . . . . . 246 Access with chmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 Changing user ownership with chown . . . . . . . . . . . . . . . . . . 249 Changing group membership with chgrp . . . . . . . . . . . . . . . . 250 4710-0 FM.F 4/10/01 3:38 PM Page xxiv xxvContents Using Quotas for Accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 Installing quotas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 Using edquota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Quota reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 Using System Monitoring Tools . . . . . . . . . . . . . . . . . . . . . . . . . 255 Monitoring system log files . . . . . . . . . . . . . . . . . . . . . . . . 255 Disk monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 User monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 Automated monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . 263 Chapter 13: Scripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Working with Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Finding documentation for Perl . . . . . . . . . . . . . . . . . . . . . 265 Using modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 Using Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 Using Kaffe and the Sun JDK . . . . . . . . . . . . . . . . . . . . . . . 273 Using gcj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 Finding documentation for Java . . . . . . . . . . . . . . . . . . . . . 274 Using Java libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 Using Tcl/Tk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 Finding documentation for Tcl/Tk . . . . . . . . . . . . . . . . . . . . 277 Adding Tcl/Tk libraries . . . . . . . . . . . . . . . . . . . . . . . . . . 277 Programming With Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 Finding documentation for Python . . . . . . . . . . . . . . . . . . . . 278 Installing Python libraries . . . . . . . . . . . . . . . . . . . . . . . . . 279 Using C/C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 Finding C/C++ documentation . . . . . . . . . . . . . . . . . . . . . . 284 Using C/C++ tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 Using C/C++ libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 Chapter 14: Shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 What Is a Shell? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 Using the shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 The Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 Standard input and output . . . . . . . . . . . . . . . . . . . . . . . . 295 Command substitution . . . . . . . . . . . . . . . . . . . . . . . . . . 298 4710-0 FM.F 4/10/01 3:38 PM Page xxv xxvi Debian GNU/Linux Bible Jobs and job control . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 Escaping — special characters . . . . . . . . . . . . . . . . . . . . . . 303 Shell variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 The Shell Variants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 Bourne shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 C shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 Korn shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 Special shell characters . . . . . . . . . . . . . . . . . . . . . . . . . . 310 Shell Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 Chapter 15: Linux Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . 313 Configuring the Linux Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . 313 Kernel code and versions . . . . . . . . . . . . . . . . . . . . . . . . . 315 Kernel modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 Adding modules on the fly . . . . . . . . . . . . . . . . . . . . . . . . 317 Upgrading and updating the kernel . . . . . . . . . . . . . . . . . . . 318 Making changes to the kernel . . . . . . . . . . . . . . . . . . . . . . . 319 Compiling and installing a new kernel . . . . . . . . . . . . . . . . . . 322 Using the Linux Boot Loader . . . . . . . . . . . . . . . . . . . . . . . . . . 324 Configuring LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 Adding the new kernel to LILO . . . . . . . . . . . . . . . . . . . . . . 326 Booting to other operating systems . . . . . . . . . . . . . . . . . . . 327 Testing and installing a new LILO configuration . . . . . . . . . . . . 327 System Initialization . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 328 Run levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 Initialization scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 Adding and removing daemon programs . . . . . . . . . . . . . . . . 334 Part IV: Maintenance and Upgrade 335 Chapter 16: Finding Updated Files . . . . . . . . . . . . . . . . . . . . 337 Defining System Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 Bugless software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 Stable versus secure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 Bugs versus features . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 Getting help and reporting bugs . . . . . . . . . . . . . . . . . . . . . 340 Patches that fix bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 4710-0 FM.F 4/10/01 3:38 PM Page xxvi xxviiContents Updating Debian Files with the Package-Management System . . . . . . . 341 Upgrading from an older Debian version . . . . . . . . . . . . . . . . 343 Upgrading over the Internet . . . . . . . . . . . . . . . . . . . . . . . 343 Upgrading from installation CD-ROMs . . . . . . . . . . . . . . . . . . 345 Chapter 17: Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 Finding Linux-Compatible Hardware . . . . . . . . . . . . . . . . . . . . . . 347 Finding Linux-Compatible Laptops . . . . . . . . . . . . . . . . . . . . . . . 353 Adding Hardware to Your Linux System . . . . . . . . . . . . . . . . . . . . 356 Hard drives and CD-ROM drives . . . . . . . . . . . . . . . . . . . . . 357 Changing video cards . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 Adding and changing network cards . . . . . . . . . . . . . . . . . . . 359 Adding Peripheral Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 Iomega drives (Zip, Jaz, and so on) . . . . . . . . . . . . . . . . . . . 361 Scanners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 Printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 Offline printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 Setting up printer queues . . . . . . . . . . . . . . . . . . . . . . . . . 367 Apsfilter configuration tool . . . . . . . . . . . . . . . . . . . . . . . . 368 Chapter 18: Backups . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 Planning for Failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 Choosing a Backup Technique . . . . . . . . . . . . . . . . . . . . . . . . . 372 Knowing what to back up . . . . . . . . . . . . . . . . . . . . . . . . . 373 Knowing what to back up with caution . . . . . . . . . . . . . . . . . 374 Choosing adequate media . . . . . . . . . . . . . . . . . . . . . . . . . 375 Choosing a backup method . . . . . . . . . . . . . . . . . . . . . . . . 377 Selecting Your Backup and Restore Tools . . . . . . . . . . . . . . . . . . . 378 amanda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 dump/restore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 KBackup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 mirrordir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 Taper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 Creating a backup using a CD-ROM . . . . . . . . . . . . . . . . . . . 390 4710-0 FM.F 4/10/01 3:38 PM Page xxvii xxviii Debian GNU/Linux Bible Recovering from a Crashed System . . . . . . . . . . . . . . . . . . . . . . 392 Rescue disk boot options . . . . . . . . . . . . . . . . . . . . . . . . . 393 Fixing disk problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 Part V: Linux Server 395 Chapter 19: Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 Understanding the Need for Security . . . . . . . . . . . . . . . . . . . . . . 397 Avoiding crackers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 Tools of the Trade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 Authentication tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 Network monitoring tools . . . . . . . . . . . . . . . . . . . . . . . . . 401 Service and integrity tools . . . . . . . . . . . . . . . . . . . . . . . . 402 Diagnostic tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 Other helpful tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 Limiting the Available Services . . . . . . . . . . . . . . . . . . . . . . . . . 405 Viruses, worms, and other creepy things . . . . . . . . . . . . . . . . 407 Setting secure permissions . . . . . . . . . . . . . . . . . . . . . . . . 407 A word about passwords . . . . . . . . . . . . . . . . . . . . . . . . . 408 Tips for Securing Your System . . . . . . . . . . . . . . . . . . . . . . . . . 409 The compromised system . . . . . . . . . . . . . . . . . . . . . . . . . 412 Sources for additional information . . . . . . . . . . . . . . . . . . . . 413 Chapter 20: Firewall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 Protecting a Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 Hardware Requirements and Preparations . . . . . . . . . . . . . . . . . . 416 Adding a Second Network Card . . . . . . . . . . . . . . . . . . . . . . . . . 417 Using ipchains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 Masquerading a Private Network . . . . . . . . . . . . . . . . . . . . . . . . 422 Configuring a Firewall with PMFirewall . . . . . . . . . . . . . . . . . . . . 423 Locking Down the Firewall . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 Squid Proxy Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 Accessing the Internet through a Firewall/Proxy . . . . . . . . . . . . . . . 428 4710-0 FM.F 4/10/01 3:38 PM Page xxviii xxixContents Chapter 21: Web Server . . . . . . . . . . . . . . . . . . . . . . . . . . 431 Introduction to Apache Web Server . . . . . . . . . . . . . . . . . . . . . . 431 Installing the Apache Server . . . . . . . . . . . . . . . . . . . . . . . . . . . 432 Configuration files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 The httpd.conf configuration file . . . . . . . . . . . . . . . . . . . . . 434 The srm.conf configuration file . . . . . . . . . . . . . . . . . . . . . . 444 The access.conf configuration file . . . . . . . . . . . . . . . . . . . . 453 Controlling the daemon . . . . . . . . . . . . . . . . . . . . . . . . . . 456 Monitoring the Web server . . . . . . . . . . . . . . . . . . . . . . . . 456 Setting Controls for Web Pages . . . . . . . . . . . . . . . . . . . . . . . . . 457 .htaccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458 htpasswd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 Enabling Virtual Hosting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 Chapter 22: FTP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 All About FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 Anonymous FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 Installing and Configuring an FTP Server . . . . . . . . . . . . . . . . . . . 465 The ftpd server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 The wu-ftpd server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 The proftpd server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 Administering an FTP Server . . . . . . . . . . . . . . . . . . . . . . . . . . 475 Using FTP Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 The ftp client . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 The ncftp client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 The xftp client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 gftp clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 Browsers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 Chapter 23: Network Information System . . . . . . . . . . . . . . . 485 The Network Information System . . . . . . . . . . . . . . . . . . . . . . . . 485 An overview of NIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 Configuring a Master NIS Server . . . . . . . . . . . . . . . . . . . . . . . . 487 Configuring a NIS Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 Configuring a NIS Slave Server . . . . . . . . . . . . . . . . . . . . . . . . . 490 Using NIS Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 Administering NIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492 4710-0 FM.F 4/10/01 3:38 PM Page xxix xxx Debian GNU/Linux Bible Chapter 24: File Server . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 Using the Network File System . . . . . . . . . . . . . . . . . . . . . . . . . 496 Installing and running NFS . . . . . . . . . . . . . . . . . . . . . . . . 496 Setting up the NFS shares in /etc/exports . . . . . . . . . . . . . . . . 497 Mounting an NFS share automatically . . . . . . . . . . . . . . . . . . 499 Mounting an NFS file system manually . . . . . . . . . . . . . . . . . 501 Unmounting an NFS filesystem . . . . . . . . . . . . . . . . . . . . . . 502 Sharing Files Using Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 Installing Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 Configuring Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 Testing the Samba server . . . . . . . . . . . . . . . . . . . . . . . . . 511 Configuring Samba with SWAT . . . . . . . . . . . . . . . . . . . . . . 512 Configuring Samba with gnosamba . . . . . . . . . . . . . . . . . . . 513 Checking the network with smb-nat . . . . . . . . . . . . . . . . . . . 514 Connecting to a Samba server from Linux . . . . . . . . . . . . . . . 514 Connecting to a Samba server from Windows . . . . . . . . . . . . . 515 Sharing files between Linux and Windows machines . . . . . . . . . 515 Chapter 25: Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 Understanding Internet E-Mail Protocols and Standards . . . . . . . . . . 517 exim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 Using Sendmail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 Questions during installation . . . . . . . . . . . . . . . . . . . . . . . 525 Alternatively configuring sendmail . . . . . . . . . . . . . . . . . . . 528 Testing and using sendmail . . . . . . . . . . . . . . . . . . . . . . . . 529 General Mail Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . 530 E-mail aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530 Forwarding your mail . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 Virtual mail server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 DNS and Internet mail . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 Using mailing lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 Setting Up POP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 Installing and configuring POP . . . . . . . . . . . . . . . . . . . . . . 534 Testing POP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 Setting Up IMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 Installation and configuration . . . . . . . . . . . . . . . . . . . . . . 536 Testing IMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 4710-0 FM.F 4/10/01 3:38 PM Page xxx xxxiContents Appendix A: What’s On the CD-ROM . . . . . . . . . . . . . . . . . . . 539 Using the CD with Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 What’s On the CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 Source code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 Appendix B: Linux Commands . . . . . . . . . . . . . . . . . . . . . . 543 Linux Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 bin commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 sbin commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 usr commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547 Appendix C: Debian Packages . . . . . . . . . . . . . . . . . . . . . . . 557 Administration utilities . . . . . . . . . . . . . . . . . . . . . . . . . . 557 Base utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 Communication programs . . . . . . . . . . . . . . . . . . . . . . . . 565 Editors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571 Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582 Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588 Newsgroups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 Other OS’s and file systems . . . . . . . . . . . . . . . . . . . . . . . . 600 Shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 Sound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 Utilities for I/O and storage . . . . . . . . . . . . . . . . . . . . . . . . 609 Web software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625 GNU General Public License. . . . . . . . . . . . . . . . . . . . . . . . . . 659 CD-ROM Installation Instructions . . . . . . . . . . . . . . . . . . . . . . . 664 4710-0 FM.F 4/10/01 3:38 PM Page xxxi Getting Started ✦ ✦ ✦ ✦ In This Part Chapter 1 Introduction to Linux Chapter 2 Installing Debian Chapter 3 First Steps as a Linux User Chapter 4 Choosing a GUI Chapter 5 Networking Chapter 6 Setting Up for the Internet ✦ ✦ ✦ ✦ P A R T II 4710-0 pt1.F 4/10/01 11:19 AM Page 1 Introduction to Linux Welcome to the Debian GNU/Linux Bible where youcan find hints, tips, and helpful instructions on most areas of this robust operating system. As you begin to learn more about this distribution of the Linux operating system, I’m sure you will find that you have made an excellent choice. Debian GNU/Linux is one of the best-kept secrets from the general public. In case you were wondering, GNU stands for GNU’s Not UNIX, which still doesn’t answer the question of the defini- tion of GNU. That’s the best I can come up with. This chapter covers the background of Linux, what makes it special, and how Debian compares to other operating sys- tems. You will discover the true meaning behind free software and why it is so important to Debian. Before you begin to read about the origins of this great operat- ing system, I open with a definition of the operating system. This helps to define how you look at the accomplishments described later. Understanding the Role of the Operating System The operating system controls the interaction between hard- ware and thesoftware applications. The hardware consists of the processor, hard drives, video cards, sound cards, and more. Each processor has built into it a language that only it under- stands, plus each manufacturer creates a different language for its processor. For instance, an Intel x86 processor uses a differ- ent internal language than, say, a Motorola 68000 processor. Therefore, any software must be complied (converted into the Note 11C H A P T E R ✦ ✦ ✦ ✦ In This Chapter Understanding the role of the operating system Understanding the history of Linux Considering the story behind Open Source Comparing Linux to other operating systems Using the Debian Distribution ✦ ✦ ✦ ✦ 4710-0 ch01.F 4/10/01 11:20 AM Page 3 4 Part I ✦ Getting Started processor language) or customized for the processor (often referred to as the com- puter platform). Some of the platforms include: ✦ x86 (Intel [386, 486, Pentium, Pentium II, Pentium III, Celeron], AMD [K6-2, Athlon, or others equivalent to the Intel line]) ✦ Alpha (Was DEC, Now Compaq) ✦ Power PC, also known as PPC (Motorola/IBM Power PC) ✦ M68k (Motorola 68000 series) ✦ Sparc (Sun Microsystems’s SPARCstation) The core component to the operating system is called the kernel in UNIX and UNIX- like operating systems. The kernel communicates with the basic computer hard- ware like the microprocessor, memory, and device controllers. All interaction between the hardware and any programs must be negotiated through the kernel. The kernel takes care of translating the requests into the form the particular device speaks. This includes everything from drawing a picture to saving a file to a floppy to printing a document. In addition to the kernel, the user interface, device drivers, file system, and system services complete the whole operating system and make it functional for someone to use. ✦ The user interface makes it possible for the individual to interact with the computer to issue commands, launch programs, and generally control the computer. This usually starts as a command-line interface and later becomes some kind of graphical interface. One example of the interface is the shell which allows commands to be typed in and the output gets displayed to the screen in text form. Chapters 4 and 14 cover the graphical interface and shell interface respectively. ✦ The device drivers allow the kernel to talk to the various devices, such as hard drives and modems, which are connected to the computer. Each hard- ware device speaks its own language, and the operating system must be capa- ble of interacting with it. In order for a specific piece of hardware to be used, like the mouse, hard drive or sound card, the corresponding driver must be installed for it to get used. See Chapter 17 for more information about hard- ware or Chapter 15 for the kernel details. ✦ The information for the operating system — such as programs, data, and such — gets stored to a disk. The filesystem sets the method that the informa- tion gets stored. Different operating systems use different methods of storing their data. For instance Windows 3.1 uses File Allocation Tables (FAT) fir its filesystem. Newer versions of Windows like 95 and 98 use a more advanced version called FAT32. And Windows NT uses NTFS for its filesystem. Not all of these filesystems are compatible with all operating systems, even among the Windows family. Windows NT can read FAT and NTFS, but not FAT32. Like wise, Windows 95 and 98 can read FAT and FAT32, but not NTFS. Linux uses EXT2, but can read FAT and FAT32 using the VFAT driver. You can learn more about this scattered through the book. 4710-0 ch01.F 4/10/01 11:20 AM Page 4 5Chapter 1 ✦ Introduction to Linux ✦ When the computer starts up, some functions, features, or services start to manage the system. For instance, when Linux first starts, it loads the filesys- tems, network interfaces, and any background services known as daemons. When the filesystem loads, it assigns what drives get used. The network inter- face gets initialized and configured to communicate on the network. A daemon is a program that runs in the background without anyone being aware of it until it is needed. (This is referred to as services in the Windows NT world.) For instance, a Web server (Chapter 21) runs in the background because it was designed to work with out human intervention. Now that you have a better understanding of what an operating system is, you can move on to see what Linux is all about. History of GNU/Linux Free operating systems are not a new concept in the computer world,. (The aca- demic versions of UNIX, Slackware, and FreeBSD come to mind.) Then a student of the University of Helsinki, Linus Torvalds announced in 1991 that he had created a very experimental operating system core called a kernel, based on a clone of UNIX called Minux. This new operating system kernel later became known as Linux. Torvolds chose this UNIX variant because of the well-respected stability, design and functionality of the UNIX operating system developed by Bell Laboratories. This new operating system kernel was refined for maximum performance on the Intel 386 microprocessor, which made this new Linux kernel platform specific. This gener- ated criticism from some corners of the UNIX software world. Traditionally, UNIX was independent of platform, meaning that you could use the softeware with different computer processors without much trouble. This didn’t stop Torvalds from continu- ing to develop his kernel. His efforts eventually led him to the free software commu- nity where programmers got behind his efforts and contributed to the new kernel. However, long before Torvalds started work on his Linux kernel, Richard M. Stallman left his job at the MIT Artificial Intelligence Lab to develop a UNIX-like operating system. He formed the Free Software Foundation and developed the GNU General Public License (GPL). Stallman began working on various software pro- grams for his GNU operating system project. (By the way, GNU is pronounced with a hard G, ga-nu) By 1991, he had most of the software pieces of the GNU operating system complete with the exception of the kernel. In 1990, he started working on the kernel and named it HURD (Hird of UNIX-Replacing Daemons). Hird stands for Hurd of Interfaces Representing Depth. According to an interview with Stallman, people interested in the GNU project began to put Torvald’s Linux kernel with Stallman’s GNU operating system to form the GNU/Linux operating system. The HURD project is a rewrite of the UNIX kernel. The difference between this ker- nel and others is that it has an object-oriented structure that enables you to change, add, or remove components without major rewrites of the entire kernel. Currently, HURD only works with the Intel i386 and the last official release was Note Note 4710-0 ch01.F 4/10/01 11:20 AM Page 5 6 Part I ✦ Getting Started back in 1997. However, it remains an active project. Had the Linux kernel been available in 1990, Stallman says they would not have started their own. In truth, from its adoption as an operating system, the rightful name of Linux is really GNU/Linux. Linux is really only the kernel (the core component) and GNU contains the supporting applications around the kernel that make it functional. These supporting applications include the user interface and all other applications (editors, Most refer to GNU/Linux as simply Linux, which you may even see in this book from time to time for the sake of brevity. Please understand I mean no disre- spect to the developers. Linux versus Other Operating Systems When Bill Gates, founder of Microsoft, made his deal with IBM to include his disk oper- ating system (DOS) with IBM personal computers, his goal was to put a computer in every home. Today many homes do have personal computers (PCs), and most use some type of Microsoft operating system. Until recently, a Microsoft operating systemwas your only preinstalled choice when purchasing a new personal computer. Now, many name brand PC manufacturers — such as Dell, Compaq, and others — offer other operating systems. Table 1-1 shows a list of many of the operating systems. Table 1-1 Popular PC operating systems and platforms Operating System Platform Linux (Debian) Intel x86, PowerPC, M68k, Alpha, Sparc, ARM Windows 95/98 Intel x86 Windows NT/2000 Intel x86, PPC MacOS PPC Be OS Intel x86 OS/2 Warp Intel x86, Alpha Solaris Sparc, Intel x86 As you can see from Table 1-1, no other operating system can be used with nearly as many platforms as Linux can. Plans are in the works by Linux developers to include others, such as sparc64, MIPS, and PS-RISK. Development teams of program- mers from all around the world are credited for this outstanding growth. Even though the Windows 95/98 operating system gained vast popularity due to its professed user friendliness, GNU/Linux has made steady improvements to reach the same level of user friendliness. In 1999, the growth rate seen by Linux exceeded Note 4710-0 ch01.F 4/10/01 11:20 AM Page 6 7Chapter 1 ✦ Introduction to Linux the growth of Windows NT. Despite the strong marketing power, available resources, and influence of the big boys, the cheap (by price only) operating sys- tem called Linux is taking the world by storm. Table 1-2 lists some significant differences between Linux and the other operating systems: Table 1-2 Benefits of Linux Benefit Description Costs nothing Linux is the only operating system that costs nothing. All others listed have some purchasing fee ranging from just under $100 to several hundred dollars. For a business with several servers and workstations, this can add up fast. Downloadable With a fast Internet connection, you can have your operating system available in a short period of time. No need to order it, have it shipped, or visit a local computer dealer to get the copies you need. Freely distributed Make as many copies of Debian GNU/Linux as you want or need. There is no copyright with GPL software except that the source code must be included. Other operating systems require a purchased license for each installation. Built by volunteers Other operating systems are company creations in which all the work is either contracted or programmed in-house. Volunteers make up the primary programming body of Linux. Some companies contribute to the cause for the benefit of the whole. This volunteer principle contributes to its overall stability. Source code available When you buy an operating system off the shelf, you only get the compiled version ready to run straight out of the box. If there is a problem or a minor change you want to make, you have no chance to make it because of no available source code. Linux encourages individual adjustments, modifications, and fixes because the source is always available. As a result of the available source code, fixes to problems can take place literally overnight. Reliable Though this may not be unique to Linux, it is important nonetheless. Linux is very stable as are some of the other operating systems. I have known Linux servers to run without needing to be restarted for months at a time (and then only for hardware maintenance). In contrast, some Windows NT servers need to be restarted every day to ensure their reliability. Flexible With the vast numbers of programs available for Linux, its uses can range from a single task as a monitor, to uses as a workstation for calculating advanced mathematical formulas or graphics. You can use Linux as an Internet router, firewall, proxy, Web server, or mail server that is as powerful as any on the open market. 4710-0 ch01.F 4/10/01 11:20 AM Page 7 8 Part I ✦ Getting Started The Word on Free Software and Open Source The Free Software Foundation believes, of course, that software should be free. This includes the source code for the executable programs. When they say free, they mean it. The foundation, which developed the GNU General Public License (GPL), promotes sharing of free software (including the source code). The purpose of this is to allow the programming community to make changes to the code. According to the GPL, no software that claims this license can be distributed without the source code. When source code is included, the programming community can respond to defects, bugs, and cracks faster. A fix for a commercial operating system can take up to six months to be released, compared to a few days in the Linux world. Just because software is free and the source gets included doesn’t mean that it’s a free-for-all on the program. Once a developer releases GPL software, any licensing changes made to that software must be made with the consent of the author. However, you can freely distribute, modify, and use it. Although most software released with Debian uses the GPL and is free, some software discussed in this book and found elsewhere is not free as it is sold commercially. However, most soft- ware for Linux is free. The Open Source community differs slightly from the Free Software movement, although both desire to see freely available software. The Open Source movement is less concerned with whether anyone makes a profit along the way, but more con- cerned with the distribution of free software. Eric Raymond cofounded the Open Source Software Group out of a concern that businesses weren’t getting the word. As a result of his efforts, some companies have adopted the Open Source philosophy. One such company, Cygnus Solutions, produced the GNUPro Developers Kit as an Open Source product. Red Hat acquired this product, which is now called GNUPro ETS. Having corporations involved in the development and promotion of Linux helps everyone. Companies bring training, certification, and support to an otherwise hobby operating system. Without this kind of support, many people (and companies) stay away from a product to avoid its potential failure of an unknown future. As more companies get behind a system — for better or worse — it gains more credibility in the minds of businesses. Therefore, having companies involved in the development of Linux is a good thing. What’s So Special about GNU/Linux? Stallman’s dream of having an operating system free from commercial purse strings came true with the completion of the kernel by Torvalds. As the community of pro- grammers grew, so did the draw to GNU/Linux. The metamorphosis of the operating system grew to gain the attention of the world. 4710-0 ch01.F 4/10/01 11:20 AM Page 8 9Chapter 1 ✦ Introduction to Linux More and more people started joining the Linux movement by adopting GNU/Linux as their operating system of choice. Many migrated to it looking for a stable envi- ronment from which to create programs, while others sought something that wouldn’t crash when performing simple daily tasks like word processing. Both groups of users were pleasantly surprised with GNU/Linux. With the popularity of GNU/Linux increasing, some programmers created special distributions of the operating systems by adding in their own special programs as enhancements. You can easily obtain some of these systems, while others encour- age the purchase of their packages. Still others include software at a price, which dilutes the openness of the source. Table 1-3 lists some of the more popular Linux distributions. All can be purchased from store (except Debian) or downloaded from a site like www.linuxiso.org where all you have to do is burn the distribution image to a CD for you own copy. Table 1-3 Linux distributions and Web sites Distribution Web Site Debian GNU/Linux www.debian.org Red Hat www.redhat.com SuSE www.suse.org Caldera OpenLinux www.caldera.com Slackware Linux www.slackware.com Linux-Mandrake www.mandrake.com Corel Linux linux.corel.com Storm Linux www.stormix.com Turbo Linux www.turbolinux.com Some of these distributions listed
Compartilhar