[PDF] GNU/Linux: Instalaci´on y Primeros Pasos - TLDP - Free Download PDF (2024)

Download GNU/Linux: Instalaci´on y Primeros Pasos - TLDP...

GNU/Linux: ´ y Primeros Pasos Instalacion 1992–1998

Matt Welsh Phil Hughes David Bandel Boris Beletsky Sean Dreilinger Robert Kiesling Evan Liebovitch Henry Pierce

´ 2.0, 16 julio 2002. Version ´ Este libro esta´ dirigido tanto a principiantes como a gurus ´ de UNIX. Contiene informacion ´ sobre como obtener e instalar GNU/Linux, un tutorial para nuevos usuarios de GNU/Linux y una ´ a la administracion ´ de sistemas. Intenta ser suficientemente generico, ´ introduccion para que pueda ´ ´ de GNU/Linux. ser valido con cualquier distribucion Puede, bajo determinadas condiciones, copiar, compartir y redistribuir libremente este libro. Por ´ ´ favor, lea el copyright y los terminos de distribucion.

Los nombres de los productos citados se usan en este libro exclusivamente a efectos de identificaci´on de los mismos, y son marcas registradas de sus respectivos propietarios. Specialized System Consultants, Inc. (SSC), no reclama ni la propiedad ni la asociaci´on empresarial con los productos o con las compa˜n´ıas propietarias de e´ stos. c Copyright 1992-1996 Matt Welsh c Copyright 1998 Specialized Systems Consultants, Inc (SSC) P.O. Box 55549 Seattle, WA 98155-0549 USA Tel´efono: +1-206-782-7733 Fax: +1-206-782-7191 Correo electr´onico: [emailprotected] URL: http://www.ssc.com/ Linux: Instalaci´on y Primeros Pasos es un documento libre; puede reproducirlo o modificarlo bajo los t´erminos de la versi´on 2 (o posteriores, si lo prefiere) de la GNU General Public License (Licencia P´ublica general de la GNU, GNU GPL), tal y como ha sido publicada por la Free Software Foundation (FSF). Este libro se distribuye esperando que sea u´ til, pero SIN GARANTIA ALGUNA; e incluso sin la garant´ıa impl´ıcita de SER COMERCIALIZABLE o de VALIDEZ PARA UN PROPOSITO CONCRETO. V´ease para m´as detalles la GNU GPL en el Ap´endice E 1 Los autores animan a la difusi´on m´as amplia posible de este libro, tanto para uso personal como comercial, siempre que la nota de Copyright anteriormente expuesta se mantenga intacta y que el m´etodo de distribuci´on est´e de acuerdo con las cl´ausulas de la GNU GPL (v´ease Ap´endice E). En resumen, puede copiar y compartir este libro sin cargo alguno o a cambio de un beneficio econ´omico. No se requiere permiso expl´ıcito del autor para la reproducci´on de este libro por el medio que sea, tanto f´ısico como electr´onico. N´otese que las obras derivadas de e´ sta, y las traducciones de este documento, obligatoriamente deben acogerse a la GNU GPL, y que la nota original de Copyright debe permanecer intacta. Si ha contribuido con nuevo material para este libro, debe permitir que el c´odigo fuente de esas modificaciones (por ej., fuentes en LATEX ) est´e disponible para posteriores revisiones. Por favor, haga que las revisiones y actualizaciones est´en directamente a disposici´on de los mantenedores del documento, SSC. Esto permitir´a el ensamblado de las actualizaciones y proporcionar´a a la comunidad Linux revisiones coherentes de la obra. Si tiene la intenci´on de publicar y distribuir comercialmente este libro, entonces cualquier donaci´on, derechos de autor o copias impresas ser´an muy agradecidas por parte de los autores y el Linux Documentation Project (Proyecto de Documentaci´on de Linux, LDP). Si tiene alguna duda o pregunta, por favor contacte con SSC.

1 N.

del T.: Para evitar ambig¨uedades en la interpretaci´on de la GNU GPL, incluso se ha dejado en su idioma original.

´ Indice general Pr´ologo a la Traducci´on al Castellano Pr´ologo Sugerencias para principiantes en UNIX Sugerencias para gur´us de UNIX . . . . Destinatarios . . . . . . . . . . . . . . Organizaci´on. . . . . . . . . . . . . . . Agradecimientos . . . . . . . . . . . . Cr´editos y t´erminos legales. . . . . . . . Convenios en este documento . . . . . .

VII IX

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

1. Introducci´on a GNU/Linux 1.1. Acerca de este libro . . . . . . . . . . . . . . . . . . . . . . . 1.2. Breve historia de GNU/Linux . . . . . . . . . . . . . . . . . . 1.3. Caracter´ısticas del sistema . . . . . . . . . . . . . . . . . . . 1.4. Programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1. Formateado y procesado de textos . . . . . . . . . . . 1.4.2. Lenguajes y utilidades de programaci´on . . . . . . . . 1.4.3. Introducci´on al sistema X-Window . . . . . . . . . . 1.4.4. Introducci´on a las redes . . . . . . . . . . . . . . . . 1.4.5. Telecomunicaciones y software para BBS . . . . . . . 1.4.6. World Wide Web . . . . . . . . . . . . . . . . . . . . 1.4.7. Interacci´on con MS-DOS . . . . . . . . . . . . . . . . 1.4.8. Otras aplicaciones . . . . . . . . . . . . . . . . . . . 1.5. Acerca del Copyright . . . . . . . . . . . . . . . . . . . . . . 1.6. Dise˜no y filosof´ıa de GNU/Linux . . . . . . . . . . . . . . . . 1.7. Diferencias entre GNU/Linux y otros sistemas operativos . . . 1.7.1. ¿Por qu´e usar GNU/Linux? . . . . . . . . . . . . . . . 1.7.2. GNU/Linux frente a MS-DOS . . . . . . . . . . . . . 1.7.3. GNU/Linux frente a otros sistemas operativos . . . . . 1.7.4. GNU/Linux frente a otras implementaciones de UNIX 1.8. Requerimientos de hardware . . . . . . . . . . . . . . . . . . 1.8.1. Requisitos de Placa Base y de CPU . . . . . . . . . . 1.8.2. Requisitos de memoria . . . . . . . . . . . . . . . . . 1.8.3. Requisitos de la controladora de disco duro . . . . . . 1.8.4. Requisitos de espacio en disco . . . . . . . . . . . . . 1.8.5. Requisitos de monitor y adaptador de v´ıdeo . . . . . . 1.8.6. Hardware diverso . . . . . . . . . . . . . . . . . . . . 1.8.7. Tarjetas Ethernet . . . . . . . . . . . . . . . . . . . . 1.9. Fuentes de informaci´on sobre GNU/Linux . . . . . . . . . . . 1.9.1. Documentaci´on en-l´ınea . . . . . . . . . . . . . . . . 1.9.2. GNU/Linux en el WWW . . . . . . . . . . . . . . . . I

. . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .

XIV

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1 1 2 3 5 5 8 8 9 10 11 11 12 13 13 15 15 15 16 16 17 18 18 19 19 19 20 20 21 21 21

X X XI XI XII XII

1.9.3. Libros y otras publicaciones . 1.9.4. Grupos de Noticias USENET 1.9.5. Listas de correo en Internet . . 1.10. C´omo obtener ayuda . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

21 22 23 24

2. Obtenci´on e Instalaci´on de GNU/Linux 2.1. Instalaci´on gen´erica . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1. Principales distribuciones de GNU/Linux . . . . . . . . . . . 2.1.2. Preocupaciones comunes . . . . . . . . . . . . . . . . . . . . 2.1.3. Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.4. Planificaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.5. Hoja de trabajo de la planificaci´on del sistema . . . . . . . . . 2.1.6. Rat´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.7. Considerar discos duros y CD-ROMs . . . . . . . . . . . . . 2.1.8. Unidades de discos bajo GNU/Linux . . . . . . . . . . . . . 2.1.9. Instalando el sistema de ventanas X-Window . . . . . . . . . 2.1.10. Hardware de sistema de redes . . . . . . . . . . . . . . . . . 2.1.11. Planificaci´on 2a Parte . . . . . . . . . . . . . . . . . . . . . . 2.1.12. Estrategias de particionado . . . . . . . . . . . . . . . . . . . 2.1.13. La partici´on de intercambio . . . . . . . . . . . . . . . . . . 2.1.14. Reparticionando . . . . . . . . . . . . . . . . . . . . . . . . 2.1.15. Haciendo copia de seguridad de su sistema antiguo . . . . . . 2.1.16. FIPS.EXE . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.17. Prepar´andose para iniciar GNU/Linux . . . . . . . . . . . . . 2.1.18. Creando un disquete de arranque de GNU/Linux bajo DOS . . 2.1.19. Creando un disquete de arranque bajo GNU/Linux . . . . . . 2.1.20. Particionando el disco duro: fdisk y cfdisk . . . . . . . . 2.2. Distribuciones de GNU/Linux . . . . . . . . . . . . . . . . . . . . . 2.3. Debian GNU/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1. Debian GNU/Linux: instalaci´on y caracter´ısticas . . . . . . . 2.3.2. Conseguir las im´agenes de disquete . . . . . . . . . . . . . . 2.3.3. La descarga de paquetes . . . . . . . . . . . . . . . . . . . . 2.3.4. Arrancar con los disquetes e instalar Debian GNU/Linux . . . 2.3.5. Usando Debian GNU/Linux . . . . . . . . . . . . . . . . . . 2.3.6. dselect . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.7. dpkg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.8. Acerca de Debian GNU/Linux . . . . . . . . . . . . . . . . . 2.3.9. Listas de correo . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.10. Sistema de b´usqueda de errores . . . . . . . . . . . . . . . . 2.3.11. Muestras de agradecimiento de Debian . . . . . . . . . . . . ´ 2.3.12. Ultima nota . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4. Red Hat LinuxTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1. Caracter´ısticas de la instalaci´on de Linux Red HatTM . . . . . 2.4.2. El sistema RPM de administraci´on de paquetes . . . . . . . . 2.4.3. Algunos comentarios sobre la actualizaci´on de Linux Red Hat 2.4.4. Creando los disquetes de instalaci´on . . . . . . . . . . . . . . 2.4.5. Medios de instalaci´on . . . . . . . . . . . . . . . . . . . . . 2.4.6. Personalizando la instalaci´on por NFS o por disco duro . . . . 2.4.7. Instalaci´on m´ınima recomendada . . . . . . . . . . . . . . . 2.4.8. ¿Cu´anto espacio se necesita realmente? . . . . . . . . . . . . 2.4.9. Instalaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.10. Acerca del medio de instalaci´on otra vez . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27 27 27 28 28 29 29 30 30 31 31 31 32 32 34 34 35 35 36 36 36 37 38 39 39 39 40 40 46 48 49 51 51 52 52 52 52 52 53 54 54 54 56 57 58 58 58

2.5.

2.6.

2.7.

2.8. 2.9.

2.4.11. El resto de la instalaci´on . . . . . . . . . . . . . . 2.4.12. Despu´es de la instalaci´on . . . . . . . . . . . . . . Caldera OpenLinuxTM . . . . . . . . . . . . . . . . . . . . 2.5.1. Obtener Caldera OpenLinuxTM . . . . . . . . . . . 2.5.2. Prepar´andose para instalar Caldera OpenLinuxTM . 2.5.3. Creaci´on de los disquetes de arranque/m´odulos . . 2.5.4. Preparar el disco duro . . . . . . . . . . . . . . . SlackwareTM . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.1. Slackware no es para ti. (O quiz´a si) . . . . . . . . 2.6.2. Una breve historia . . . . . . . . . . . . . . . . . 2.6.3. ¿Por qu´e, entonces? . . . . . . . . . . . . . . . . . 2.6.4. ¿Actualizar? ¡Pi´ensalo dos veces! . . . . . . . . . 2.6.5. Seleccionar un m´etodo de instalaci´on . . . . . . . 2.6.6. Discos de arranque: siempre cosa buena . . . . . . 2.6.7. Hoja de trabajo para la instalaci´on de SlackwareTM 2.6.8. Haciendo funcionar Slackware . . . . . . . . . . . 2.6.9. Crear algunos discos de arranque. . . . . . . . . . 2.6.10. Arranque en acci´on . . . . . . . . . . . . . . . . . 2.6.11. El programa ‘‘setup’’ de SlackwareTM . . . . . 2.6.12. ¿Eso es todo? . . . . . . . . . . . . . . . . . . . . 2.6.13. Solucionando algunos problemillas . . . . . . . . 2.6.14. Disfrutando del momento despu´es . . . . . . . . . 2.6.15. ¡Considere reinstalar! . . . . . . . . . . . . . . . . 2.6.16. Asegurar el sistema. . . . . . . . . . . . . . . . . S.u.S.E.TM . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7.1. Comenzando la instalaci´on . . . . . . . . . . . . . 2.7.2. Post-instalaci´on de S.u.S.ETM . . . . . . . . . . . . 2.7.3. Configurando las X . . . . . . . . . . . . . . . . . ´ 2.7.4. Ultimas actualizaciones . . . . . . . . . . . . . . Procedimientos post-instalaci´on . . . . . . . . . . . . . . Cuando se tienen problemas . . . . . . . . . . . . . . . . 2.9.1. Problemas arrancando el medio de instalaci´on . . . 2.9.2. Problemas con el hardware . . . . . . . . . . . . . 2.9.3. Problemas instalando el software . . . . . . . . . . 2.9.4. Problemas despu´es de instalar GNU/Linux . . . .

3. Tutorial de GNU/Linux 3.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . 3.2. Conceptos b´asicos de GNU/Linux . . . . . . . . . . 3.2.1. Creaci´on de una cuenta . . . . . . . . . . . . 3.2.2. Registrarse en el sistema . . . . . . . . . . . 3.2.3. Consolas Virtuales . . . . . . . . . . . . . . 3.2.4. Int´erpretes de o´ rdenes y o´ rdenes . . . . . . . 3.2.5. Salida del sistema . . . . . . . . . . . . . . . 3.2.6. Cambiar la contrase˜na . . . . . . . . . . . . 3.2.7. Ficheros y directorios . . . . . . . . . . . . . 3.2.8. El a´ rbol de directorios . . . . . . . . . . . . 3.2.9. Directorio de trabajo actual . . . . . . . . . . 3.2.10. Refiri´endose al directorio inicial . . . . . . . 3.3. Primeros Pasos en GNU/Linux . . . . . . . . . . . . 3.3.1. Movi´endonos por la estructura de directorios. 3.3.2. Mirando el contenido de los directorios . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

60 61 62 63 63 63 63 64 64 64 65 65 66 67 67 74 75 75 77 78 78 79 79 80 81 81 82 83 83 83 84 84 86 89 91

. . . . . . . . . . . . . . .

95 95 95 96 96 96 96 97 98 98 98 99 100 100 100 101

3.3.3. Creaci´on de directorios nuevos . . . . . . . . . 3.3.4. Copiando ficheros . . . . . . . . . . . . . . . 3.3.5. Moviendo ficheros . . . . . . . . . . . . . . . 3.3.6. Borrando ficheros y directorios . . . . . . . . . 3.3.7. Mirando en los ficheros . . . . . . . . . . . . . 3.3.8. Obteniendo ayuda en l´ınea . . . . . . . . . . . 3.4. Acceder a los ficheros MS-DOSTM . . . . . . . . . . . 3.5. Sumario de o´ rdenes b´asicas . . . . . . . . . . . . . . . 3.6. Explorando el sistema de ficheros . . . . . . . . . . . 3.7. Tipos de int´erpretes de o´ rdenes . . . . . . . . . . . . . 3.8. Caracteres comod´ın . . . . . . . . . . . . . . . . . . . 3.9. Fontaner´ıa GNU/Linux . . . . . . . . . . . . . . . . . 3.9.1. Entrada y salida est´andar. . . . . . . . . . . . . 3.9.2. Redireci´on de la entrada y la salida . . . . . . 3.9.3. Uso de tuber´ıas . . . . . . . . . . . . . . . . . 3.9.4. Redirecci´on no destructiva de la salida . . . . . 3.10. Permisos de fichero . . . . . . . . . . . . . . . . . . . 3.10.1. Conceptos de permisos de fichero . . . . . . . 3.10.2. Interpretando los permisos de fichero . . . . . 3.10.3. Dependencias . . . . . . . . . . . . . . . . . . 3.10.4. Cambio de permisos . . . . . . . . . . . . . . 3.11. Gesti´on de enlaces a ficheros . . . . . . . . . . . . . . 3.11.1. Enlaces r´ıgidos . . . . . . . . . . . . . . . . . 3.11.2. Enlaces simb´olicos. . . . . . . . . . . . . . . . 3.12. Control de tareas. . . . . . . . . . . . . . . . . . . . . 3.12.1. Tareas y procesos. . . . . . . . . . . . . . . . 3.12.2. Primer plano y segundo plano. . . . . . . . . . 3.12.3. Parando y relanzando tareas . . . . . . . . . . 3.13. Uso del editor vi . . . . . . . . . . . . . . . . . . . . 3.13.1. Conceptos . . . . . . . . . . . . . . . . . . . . 3.13.2. Comenzando con vi . . . . . . . . . . . . . . 3.13.3. Insertando texto . . . . . . . . . . . . . . . . . 3.13.4. Borrando texto . . . . . . . . . . . . . . . . . 3.13.5. Cambiando texto . . . . . . . . . . . . . . . . ´ 3.13.6. Ordenes para mover el cursor . . . . . . . . . 3.13.7. Guardandando ficheros y saliendo de vi . . . 3.13.8. Edici´on de otro fichero . . . . . . . . . . . . . 3.13.9. Inclusi´on de otros ficheros . . . . . . . . . . . 3.13.10.Ejecuci´on de o´ rdenes del int´erprete . . . . . . 3.13.11.Obtenci´on de ayuda . . . . . . . . . . . . . . . 3.14. Personalizando su entorno . . . . . . . . . . . . . . . 3.14.1. Guiones del int´erprete de o´ rdenes . . . . . . . 3.14.2. Variables del int´erprete de o´ rdenes y el entorno 3.14.3. Guiones de inicializaci´on del int´erprete . . . . 3.15. ¿Quiere seguir por su cuenta? . . . . . . . . . . . . . . 4. Administraci´on del Sistema 4.1. La cuenta root . . . . . . . . . . . . . . . 4.2. Iniciando el Sistema . . . . . . . . . . . . . 4.2.1. Utilizando un disquete de arranque . 4.2.2. Utilizando LILO . . . . . . . . . . 4.3. Parada del sistema . . . . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

102 102 103 103 103 104 104 105 107 110 111 113 113 113 114 115 116 116 116 117 117 118 118 119 119 119 120 122 123 123 124 124 125 126 126 127 127 128 128 128 128 129 129 131 132

. . . . .

133 133 134 134 134 136

4.3.1. El fichero /etc/inittab . . . . . . . . . . . . . . 4.4. Gestionando sistemas de ficheros . . . . . . . . . . . . . . . . 4.4.1. Montando sistemas de ficheros . . . . . . . . . . . . . 4.4.2. Nombres de controladores de dispositivos . . . . . . . 4.4.3. Comprobando sistemas de ficheros . . . . . . . . . . . 4.5. Usando un fichero de intercambio . . . . . . . . . . . . . . . 4.6. Gesti´on de Usuarios . . . . . . . . . . . . . . . . . . . . . . . 4.6.1. Conceptos de gesti´on de usuarios . . . . . . . . . . . 4.6.2. A˜nadir usuarios . . . . . . . . . . . . . . . . . . . . . 4.6.3. Borrando usuarios . . . . . . . . . . . . . . . . . . . 4.6.4. Poniendo atributos de usuario . . . . . . . . . . . . . 4.6.5. Grupos . . . . . . . . . . . . . . . . . . . . . . . . . 4.6.6. Responsabilidades de la Administraci´on del Sistema . 4.6.7. C´omo proceder con los usuarios . . . . . . . . . . . . 4.6.8. Fijando las reglas . . . . . . . . . . . . . . . . . . . . 4.6.9. Lo que todo esto significa . . . . . . . . . . . . . . . 4.7. Almacenamiento y compresi´on de ficheros . . . . . . . . . . . 4.7.1. Usando tar . . . . . . . . . . . . . . . . . . . . . . 4.7.2. gzip y compress . . . . . . . . . . . . . . . . . . 4.7.3. Aplic´andolos en conjunto . . . . . . . . . . . . . . . 4.8. Usando Disquetes y Haciendo Copias de Seguridad . . . . . . 4.8.1. Utilizando disquetes para copias de seguridad . . . . . 4.8.2. Copias de seguridad con unidades Zip . . . . . . . . . 4.8.3. Hacer copias de seguridad a dispositivos de cinta . . . 4.8.4. Utilizando disquetes como sistemas de ficheros . . . . 4.9. Actualizando e instalando software nuevo . . . . . . . . . . . 4.9.1. Actualizando el n´ucleo . . . . . . . . . . . . . . . . . 4.9.2. Agregando un controlador de dispositivo al n´ucleo . . 4.9.3. Instalando controladores en m´odulos . . . . . . . . . . 4.9.4. Actualizando las bibliotecas . . . . . . . . . . . . . . 4.9.5. Actualizando el gcc . . . . . . . . . . . . . . . . . . 4.9.6. Actualizando otro software . . . . . . . . . . . . . . . 4.10. Tareas diversas . . . . . . . . . . . . . . . . . . . . . . . . . 4.10.1. Ficheros de inicio del sistema . . . . . . . . . . . . . 4.10.2. Estableciendo el nombre del anfitri´on . . . . . . . . . 4.11. Qu´e hacer en caso de emergencia . . . . . . . . . . . . . . . . 4.11.1. Recuperaci´on utilizando un disquete de mantenimiento 4.11.2. Arreglando la clave de root . . . . . . . . . . . . . . . 4.11.3. Arreglando sistemas de ficheros corrompidos . . . . . 4.11.4. Recuperando ficheros perdidos . . . . . . . . . . . . . 4.11.5. Arreglando bibliotecas corrompidas . . . . . . . . . . 5. El Sistema X-Window 5.1. Requerimientos hardware de X-Window . . . . . . . . 5.1.1. Gr´aficos . . . . . . . . . . . . . . . . . . . . . 5.1.2. Memoria, CPU y espacio en disco . . . . . . . 5.2. Instalaci´on de XFree86 . . . . . . . . . . . . . . . . . 5.3. Examinando la configuraci´on hardware . . . . . . . . 5.4. Generar de forma autom´atica el fichero XF86Config 5.5. Configurar XFree86 . . . . . . . . . . . . . . . . . . . 5.6. Rellenando la informaci´on de la tarjeta de v´ıdeo . . . . 5.7. Ejecutar XFree86. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

136 139 139 140 141 141 142 142 143 145 145 145 146 146 147 147 147 147 148 149 149 150 150 151 152 153 153 154 156 157 158 158 159 159 159 160 160 161 161 161 162

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

163 163 163 165 165 168 168 168 174 176

5.8. Si se l´ıa demasiado el asunto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 6. Redes 6.1. Redes TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.1. Configuraci´on de TCP/IP en su sistema . . . . . . . . . . . . . . . 6.1.2. Configuraci´on de SLIP . . . . . . . . . . . . . . . . . . . . . . . . 6.2. Redes de Conexi´on Telef´onicas y PPP . . . . . . . . . . . . . . . . . . . . 6.2.1. Qu´e se necesita para empezar . . . . . . . . . . . . . . . . . . . . 6.2.2. Una visi´on de los pasos involucrados . . . . . . . . . . . . . . . . 6.2.3. Creando los guiones de conexi´on . . . . . . . . . . . . . . . . . . 6.2.4. Editando los guiones de inicio de PPP suministrados . . . . . . . . 6.2.5. Iniciando PPP en el servidor . . . . . . . . . . . . . . . . . . . . . 6.2.6. Si el servidor usa PAP . . . . . . . . . . . . . . . . . . . . . . . . 6.2.7. Desconexi´on del enlace PPP . . . . . . . . . . . . . . . . . . . . . 6.2.8. Resolviendo problemas comunes una vez que la conexi´on funciona 6.3. Red con UUCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4. Redes con sistemas Microsoft . . . . . . . . . . . . . . . . . . . . . . . . 6.5. Correo electr´onico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6. Noticias y Usenet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

179 179 180 185 189 189 190 197 199 201 202 206 206 208 208 208 208

A. Fuentes de informaci´on sobre GNU/Linux en ingl´es

211

B. El Proyecto de Documentaci´on de Linux en castellano

221

C. Tutorial FTP y lista de sitios de r´eplica

225

D. Obtener una distribuci´on por correo postal

231

E. The GNU General Public License

233

Pr´ologo a la Traducci´on al Castellano GNU/Linux: Instalaci´on y Primeros Pasos (LIPP) es la traducci´on al castellano que ha realizado el Proyecto de Documentaci´on de Linux. Se ha intentado traducir tan fielmente como hemos podido la gu´ıa original elaborada por Matt Welsh. Sin embargo, debido a la antig¨uedad del documento original, se han a˜nadido algunos comentarios explicando algunos detalles que a d´ıa de hoy podr´ıan llevar a los lectores hispanos a la confusi´on y se ha modificado ligeramente el texto referente a ciertas partes obsoletas de GNU/Linux (por ejemplo, se han retirado de las tablas los dispositivos /dev/cua que son obsoletos a d´ıa de hoy). Del mismo modo se han a˜nadido referencias espec´ıficas al entorno hispanohablante, como distribuciones dedicadas espec´ıficamente al mercado hispano, documentaci´on y libros en castellano, ya sean traducciones de otra lengua o publicaciones originales en castellano. Esta es la versi´on 2.0 de la LIPP y se corresponde directamente con la versi´on 3.2 de Linux Installation and Getting Started Guide Esta gu´ıa Linux: Instalaci´on y Primeros Pasos (LIPP 2.0) y su original est´an ambos bajo la licencia GPL del proyecto GNU como el sistema operativo que describen. Esta traducci´on se realiz´o con el esfuerzo cooperativo de muchas personas. Si usted desea obtener otras traducciones, en la p´agina siguiente http://www.es.tldp.org encontrar´a m´as informaci´on. Si usted ve alg´un error en la traducci´on, como dos interrogantes seguidos (??), o un p´arrafo sin traducir, una referencia perdida, o un fragmento mal traducido puede notificarlo al coordinador de la LIPP en la siguiente direcci´on: [emailprotected]

VII

VIII

Pr´ologo a la Traducci´on al Castellano

Pr´ologo Linux: Installation and Getting Started (LIGS) ha sido la gu´ıa de trabajo para incontables usuarios noveles del sistema operativo GNU/Linux. GNU/Linux contin´ua evolucionando y por eso, tambi´en, debe hacerlo esta gu´ıa. El autor original, Matt Welsh, ha puesto este libro bajo el cuidado y gesti´on de Specialized Systems Consultants, Inc. (SSC), editores de Linux Journal, libros de inform´atica y de referencia. Linux: Installation and Getting Started est´a tambi´en bajo la licencia GPL del proyecto GNU (y todav´ıa es redisribuible libremente), como el sistema operativo que describe. Esta nueva versi´on se hizo con el esfuerzo cooperativo de individuos separados geogr´aficamente pero reunidos a trav´es de Internet, al igual que GNU/Linux. Si usted cree que puede ampliar o actualizar un cap´ıtulo de Linux: Installation And Getting Started o tiene algo nuevo o maravilloso que a˜nadir, por favor env´ıe un correo electr´onico a [emailprotected] y d´ıganos c´omo quiere contribuir. Para esta edici´on hemos a˜nadido instrucciones espec´ıficas para obtener e instalar las distribuciones S.u.S.E. LinuxTM , Debian GNU/LinuxTM , Linux SlackwareTM , Caldera OpenLinuxTM , y Red Hat LinuxTM . Por favor lea completamente los reconocimientos y si usted se encuentra a alguno de los nombrados, en l´ınea o en persona, d´ele las gracias por la ayuda. Specialized Systems Consultants, Inc. (SSC) Febrero 1998

Pr´ologo a la edici´on anterior “You are in a maze of twisty little passages, all alike.” Surge ante usted uno de los sistemas m´as complejos y profundamente intimidadores que jam´as se ha escrito: GNU/Linux, el cl´onico libre de UNIX para el ordenador personal (PC), elaborado por un revoltijo de hackers, gur´us de UNIX y alg´un que otro lun´atico. El propio sistema refleja esta compleja herencia, y a pesar de que el desarrollo de GNU/Linux puede parecer un esfuerzo voluntario desorganizado, el sistema es potente, r´apido y libre. Es un verdadero sistema operativo de 32-bits 2 . Mis propias experiencias con GNU/Linux comenzaron hace a˜nos, cuando me sent´e a resolver como instalar la u´ nica “distribuci´on” disponible en aquel momento, un par de disquetes que me hizo llegar H.J. Lu. Descargu´e una pila de ficheros y le´ı p´agina tras p´agina unas notas de instalaci´on apenas hilvanadas. De alg´un modo, consegu´ı instalar este sistema b´asico y hacer que todo funcionase. Esto fue mucho antes de que se pudiera comprar a distribuidores mundiales el software de GNU/Linux en CD-ROM; y de hecho, fue antes de que GNU/Linux pudiera acceder a una unidad de CD-ROM. Esto fue antes de XFree86, de GNU Emacs, antes del soporte de programas comerciales, y antes de que GNU/Linux se volviera un verdadero rival de MS-DOS, Microsoft Windows, y OS/2 en el mercado de los ordenadores personales. Sostiene en sus manos un mapa y una gu´ıa hacia el mundo de GNU/Linux. Espero que este libro le ayude a enrollarse con el que considero que es el sistema operativo m´as r´apido y poderoso que existe para ordenadores personales. Configurar su propio sistema GNU/Linux puede ser muy divertido, as´ı que coja una taza de caf´e, si´entese c´omodamente, y siga leyendo. Matt Welsh Enero de 1994 2 N.

del T.: En la actualidad ya existen versiones de 64-bits para algunas otras plataformas hardware distintas del PC IX

Pr´ologo

X

Sugerencias para principiantes en UNIX Los primeros pasos con su sistema GNU/Linux no exigen de un gran bagaje de conocimientos de UNIX. Muchos principiantes en UNIX han logrado instalar con e´ xito GNU/Linux en sus ordenadores. Es una experiencia que vale la pena por lo que se aprende con ella, pero tenga muy en cuenta que tambi´en puede ser frustrante. Es m´as, en el momento en que est´e listo para profundizar en tareas m´as complejas de la ejecuci´on de GNU/Linux (instalar programas nuevos, recompilar el n´ucleo, y as´ı sucesivamente) necesitar´a tener un buen fondo de conocimientos de UNIX. Sin embargo, solamente con poner en funcionamiento su propio sistema GNU/Linux aprender´a lo esencial de UNIX. Este libro le ayudar´a a empezar; el Cap´ıtulo 3 es un tutorial que cubre los fundamentos de UNIX. En el Cap´ıtulo 4 tiene informaci´on sobre la administraci´on de un sistema GNU/Linux. Debe leer completamente estos cap´ıtulos antes de intentar instalar GNU/Linux; le ser´an de gran ayuda si se mete en l´ıos. Nadie puede esperar pasar de ser un principiante de UNIX a ser un administrador de sistema UNIX de la noche a la ma˜nana. Tampoco espera nadie que una implementaci´on de UNIX est´e libre de mantenimiento. Debe prepararse para la traves´ıa que le queda por delante. De lo contrario, si es nuevo en UNIX, se frustrar´a f´acilmente con el sistema.

´ de UNIX Sugerencias para gurus Alguien con a˜nos de experiencia en la programaci´on y administraci´on de sistemas UNIX puede necesitar colaboraci´on antes de poder obtener e instalar GNU/Linux. Los magos de UNIX deberian familiarizarse con ciertos aspectos del sistema antes de sumergirse en e´ l. GNU/Linux no es ningun sistema UNIX comercial, ni intenta apoyar los mismos est´andares. A pesar de que la estabilidad es un factor importante en el desarrollo de GNU/Linux, no es el u´ nico. Quiz´as m´as importante sea la funcionalidad. En muchos casos, el nuevo c´odigo se vuelve parte del n´ucleo est´andar mientras todav´ıa tiene errores y no est´a funcionando completamente. El modelo de desarrollo de GNU/Linux asume que es m´as importante liberar el c´odigo para que los usuarios lo usen y lo prueben, que retrasar su publicaci´on hasta que est´e completo. WINE (el Emulador de Microsoft Windows para GNU/Linux) fue publicado en versi´on alfa antes de estar totalmente probado. As´ı la comunidad GNU/Linux tiene una oportunidad para trabajar con el c´odigo, y aqu´ellos que encuentren el c´odigo alfa lo bastante bueno para sus necesidades podran usarlo. Los vendedores de UNIX comerciales pocas veces, m´as bien nunca, publican programas de esta forma. Si ha sido un administrador de sistemas UNIX durante m´as de una d´ecada, y ha usado todos los sistemas UNIX comerciales bajo el Sol (pretendido juego de palabras)3 , podr´a acostumbrarse a GNU/Linux. El sistema es muy moderno y din´amico. Cada pocas semanas se libera un nuevo n´ucleo. Constantemente se est´an liberando nuevos programas. Un d´ıa, su sistema puede ser completamente moderno, y al d´ıa sigiente puede estar en la Edad de Piedra. Con toda esta actividad ¿C´omo se mantiene uno al ritmo, siempre cambiante, del mundo GNU/Linux? Para la mayor´ıa, es mejor actualizar s´olo las partes del sistema que se necesiten actualizar, y s´olo cuando piense que es necesario. Por ejemplo, si nunca usa GNU Emacs, hay pocas raz´ones para instalar continuamente nuevas versiones de GNU Emacs en su sistema. Es m´as, aun cuando sea un voraz usuario de GNU Emacs, no hay, normalmente, ninguna raz´on para actualizar, a menos que necesite una caracteristica que s´olo est´a presente en la pr´oxima versi´on. Hay pocas o casi ninguna raz´on para estar siempre a la ultima en lo que respecta a las versiones de los programas. Esperamos que GNU/Linux sea apropiado o exceda las expectativas para un sistema UNIX casero. En el coraz´on de GNU/Linux esta el verdadero esp´ıritu del software libre, del desarrollo y el progreso constante. La comunidad de GNU/Linux favorece la expansi´on sobre la estabilidad, lo cual es dif´ıcil de aceptar, especialmente despu´es de estar impregnado en el mundo del UNIX comercial. Esperar que GNU/Linux sea perfecto es poco realista; nada en el mundo del software libre lo es alguna vez. Nosotros creemos, sin embargo, que GNU/Linux es tan u´ til y completo como cualquier otra implementaci´on de UNIX. 3 N.

del T.: Sun, con may´uscula en el original.

XI

Destinatarios Este libro esta destinado a usuarios de ordenadores personales que deseen instalar GNU/Linux. Se da por supuesto que el usuario tiene un conocimiento b´asico de ordenadores y sistemas operativos como MS-DOS, pero no un conocimiento previo de GNU/Linux o UNIX. A pesar de ello, insistimos en sugerir a los principiantes en UNIX que consigan un buen manual de UNIX, de buena calidad y traducidos al castellano, de los varios disponibles. Esto es asi porque aun es necesario el conocimiento del UNIX para instalar y mantener en marcha un sistema completo. No hay distribuci´on de GNU/Linux que est´e completamente libre de errores. Quiz´a tenga que corregir peque˜nos errores a mano. Hacer funcionar un sistema UNIX no es tarea sencilla, incluso trabajando con versiones comerciales de UNIX. Si pretende tomarse GNU/Linux en serio, tenga en cuenta que mantener el sistema funcionando requiere un esfuerzo y atenci´on considerable. Esto as´ı para cualquier sistema UNIX. Debido a la variedad de la comunidad GNU/Linux y de las muchas necesidades que el software intenta satisfacer, no se pueden tener resueltas todas las necesidades, para todos, durante todo el tiempo.

Organizaci´on. Este libro est´a compuesto por los cap´ıtulos siguientes: El Cap´ıtulo 1, Introducci´on a GNU/Linux, es una introducci´on general a GNU/Linux, a sus capacidades y a los requerimientos necesarios para ejecutarlo en su m´aquina. Este cap´ıtulo tambi´en le dara pistas sobre como obtener ayuda y reducir su nivel de estr´es. El Cap´ıtulo 2, Conseguir e instalar GNU/Linux, explica c´omo conseguir e instalar GNU/Linux y sus programas, empezando por los particionadores de disco, la creaci´on de un sistema de ficheros y la instalaci´on de paquetes de software. En dicho Cap´ıtulo se especifican unas instrucciones que se pretende que sean v´alidas para cualquier distribuci´on de GNU/Linux, mientras que las particularidades de cada distribuci´on se conf´ıan a la documentaci´on que viene con esa versi´on en concreto. En el Cap´ıtulo 3, Tutorial de GNU/Linux es una introducci´on completa para quien empieza con UNIX. Si ya tiene experiencia previa en UNIX, la mayor parte de este material le resultar´a familiar. En el Cap´ıtulo 4, Administraci´on del sistema, se presentan conceptos importantes para la administraci´on del sistema bajo GNU/Linux. Resultar´a interesante para administradores de sistemas UNIX que quieran aprender las caracter´ısticas espec´ıficas de GNU/Linux a la hora de mantener un sistema. Los Cap´ıtulos 5 y 6, X-Window y Redes, presentan una serie de opciones avanzadas que proporciona GNU/Linux, como el sistema de ventanas X-Window y el protocolo de redes TCP/IP. Tambi´en facilitamos una completa gu´ıa para la configuraci´on de XFree86-3.1. El Ap´endice A, Fuentes de informaci´on sobre GNU/Linux, es un listado de otras fuentes de documentaci´on, como los grupos de noticias, las listas de correo, los documentos en l´ınea y los libros. El Ap´endice B, Fuentes de informaci´on sobre GNU/Linux en castellano, es un compendio de d´onde puede encontrar informaci´on en castellano sobre GNU/Linux.4 El Ap´endice C, Un tutorial de FTP y una lista de sitios, es un tutorial para transferir ficheros desde Internet con el protocolo FTP. Este Ap´endice tambi´en contiene listas de sitios FTP que alojan software para GNU/Linux. El Ap´endice D, D´onde conseguir una distribuci´on contiene un compendio de distribuidores de GNU/Linux donde se puede o bien descargar una distribuci´on completa, o encargarla para que se la env´ıen por correo.5 El Ap´endice E, La licencia p´ublica general GNU, es el acuerdo de licencia bajo el cual se distribuye GNU/Linux. Es importante que los usuarios de GNU/Linux comprendan la GPL. Han surgido muchos desacuerdos acerca de los t´erminos en los que se formula. 4 N. 5 N.

del T.: S´olo en la traducci´on al castellano del T.: S´olo en la traducci´on al castellano

Pr´ologo

XII

Agradecimientos Esta edici´on se realiza gracias al trabajo de los que estuvieron antes, mencionados m´as atr´as en el agradecimiento original de Matt Welsh. Adem´as de ellos, por nuestra parte (SSC) tenemos que dar gracias a Larry Ayers, Boris Beletsky, Sean Dreilinger, Evan Leibovitch, y Henry Pierce por contribuir con la informaci´on que se encuentra en el cap´ıtulo 2 acerca de S.u.S.E. LinuxTM , Debian GNU/LinuxTM , Linux SlackwareTM , Caldera OpenLinuxTM , y Red Hat LinuxTM , respectivamente. David Bandel ha actualizado el Cap´ıtulo 2 y ha a˜nadido una secci´on que describe los pasos gen´ericos de una instalaci´on de GNU/Linux. Vernard Martin ha actualizado y a˜nadido material al Cap´ıtulo 5. Asimismo hay que dar gracias a Belinda Frazier por su edici´on y a Jay Painter por su actualizaci´on del cap´ıtulo 6 sobre administraci´on de sistemas.

Agradecimientos de la anterior edici´on Este libro ha estado realiz´andose durante mucho tiempo, y en e´ l han contribuido muchas personas. Quiero dar las gracias particularmente a Larry Greenfield y a Karl Fogel por su trabajo en la primera versi´on del Cap´ıtulo 3, y a Lars Wirzenius por su trabajo en el Cap´ıtulo 4. Gracias a Michael K. Johnson por su asistencia con el LDP y las convenciones LATEX que se han utilizado en este manual, y a Ed Chi, que me envi´o una copia impresa del libro. Gracias a Melinda A. McBride de SSC, Inc., que hizo un excelente trabajo completando el ´ındice de los Cap´ıtulos 3, 4, y 5. Tambi´en quisiera agradecer a Andy Oram, Lar Kaufman, y Bill Hahn de O’Reilly y Asociados su apoyo al LDP. Gracias a Linux Systems LabsTM , Morse TelecommunicationsTM e Yggdrasil ComputingTM , por su apoyo al LDP mediante las ventas de este libro y otros trabajos. Muchas gracias a los numerosos activistas de GNU/Linux, entre ellos (sin seguir un orden concreto) Linus Torvalds, Donald Becker, Alan Cox, Remy Card, Ted T’so, H. J. Lu, Ross Biro, Drew Eckhardt, Ed Carp, Eric Youngdale, Fred van Kempen, y Steven Tweedie, por dedicarle tanto tiempo y energ´ıa a a este proyecto. Sin ellos no habr´ıa nada sobre lo que escribir en un libro como e´ ste. Para terminar, damos las gracias a los innumerables lectores que nos han hecho llegar sus correcciones y comentarios, y que son demasiados para enumerarlos aqu´ı.

Cr´editos y t´erminos legales El Proyecto de Documentaci´on de Linux (LDP) est´a compuesto por un equipo distribuido de escritores, correctores, traductores y editores que trabajan en un conjunto de manuales de calidad sobre GNU/Linux. ´ Este es uno de los varios manuales que distribuye el LDP. Otros manuales incluyen La Gu´ıa del usuario de Linux, Gu´ıa del Administrador de Linux, Gu´ıa del Administrador de Redes bajo GNU/Linux, y la Gu´ıa del N´ucleo para el Hacker . Estos manuales se hallan disponibles, como minimo, en forma de c´odigo fuente en LATEX y en formato de impresi´on PostScript, pudi´endose acceder a ellos por FTP an´onimo en http://sunsite.unc.edu, en el directorio /pub/Linux/docs/LDP y, traducidos al espa˜nol, en http://www.es.tldp.org.

Cr´editos a la traducci´on al castellano La traducci´on de este documento al espa˜nol ha sido posible gracias al trabajo gratuito de muchos voluntarios. Para dirigir cualquier comentario acerca de esta traducci´on al espa˜nol, contacte con el coordinador de la de la traducci´on, Antonio Rueda, en la direcci´on [emailprotected] Han contribuido en esta traducci´on: Alberto Molina Sebasti´an Gurin J.Jos´e Amor

XIII

Seraf´ın Ag´oiz Jos´e Mar´ıa Fern´andez Jos´e Manuel Fern´andez Navarro Francisco J. Fern´andez Serrador

Encargado de calidad: Francisco J. Fern´andez. Si alguna de las personas que ha contribuido en la traduccion de este documento no apareciera aqu´ı, contactar con Fco. Javier Fern´andez en [emailprotected] para a˜nadir su nombre a la lista.

Pr´ologo

XIV

Notaci´on usada en este documento Hemos intentado usar la siguiente notaci´on en esta gu´ıa: Negrita

Usado para resaltar conceptos nuevos, AVISOS, y palabras clave de un lenguaje.

It´alica

Usada para enfatizar el texto, y ocasionalmente para citas o presentaciones al comienzo de una seccion.

Sesgado

Usado para marcar meta variables en el texto, especialmente en l´ıneas de o´ rdenes. Por ejemplo, en: ls -l foo foo representa un nombre de fichero, como /bin/cp.

Escritura de m´ aquina Usado para representar interacci´on con la pantalla, como en: $ ls --l /bin/cp -rwxr-xr-x

1 root

wheel

12104 Sep 25 15:53 /bin/cp

Tambi´en usada para ejemplos de c´odigo, ya sea codigo C, guiones del interprete de ordenes, o para mostrar ficheros, tales como ficheros de configuraci´on. Cuando sea necesario, y para una mejor claridad, estos ejemplos o figuras se incluiran en cajas. Tecla

Representa una tecla a pulsar, como en este ejemplo: Pulse return para continuar.

Un diamante en el margen, como un diamante negro en una pista de esqu´ı, se˜nala “peligro” o “precauci´on”. Lea detenidamente los p´arrafos marcados de esta forma.

Cap´ıtulo 1

Introducci´on a GNU/Linux Muy posiblemente GNU/Linux sea el logro m´as importante del Software Libre desde el Space War original, o m´as recientemente, GNU/Emacs. GNU/Linux se ha convertido en un sistema operativo para las empresas, la educaci´on y la productividad personal. GNU/Linux ya ha dejado de ser s´olo para aquellos expertos de Unix que se sientan durante horas ante una consola parpadeante, si bien podemos asegurarle de buena tinta que muchos usuarios entran dentro de tal categor´ıa. Este libro le ayudar´a a sacarle el mayor partido a su GNU/Linux. GNU/Linux (pronunciado con una i breve como en L´ınux) es un sistema operativo, cl´onico de Unix, que se ejecuta en varias plataformas, principalmente en PCs (computadoras personales) con un procesador Intel 80386 o superior. Soporta una amplia variedad de programas, desde el sistema de procesado de documentos TEXhasta el sistema X-Window, pasando por gcc (compilador GNU de C/C++) y TCP/IP. Es una implementaci´on de Unix vers´atil y bona fide, libremente redistribuible en los t´erminos de la Licencia P´ublica General GPL (v´ease Ap´endice E) GNU/Linux puede convertir un computador personal 80386 o superior en una estaci´on de trabajo que pone al alcance de su mano toda la potencia de Unix. Las empresas instalan GNU/Linux en redes enteras de m´aquinas, y utilizan este sistema operativo para gestionar registros financieros y hospitalarios, entornos inform´aticos distribuidos y telecomunicaciones. Las Universidades del mundo entero usan GNU/Linux para impartir cursos de programaci´on y dise˜no de sistemas operativos. Los aficionados a la inform´atica de todo el mundo usan GNU/Linux en su casa para programar, para productividad personal y para el hackeo sano en general. El que sea una implementaci´on libre de Unix es lo que hace a GNU/Linux tan diferente. Se desarroll´o y sigue desarroll´andose de forma cooperativa, principalmente a trav´es de Internet, por parte de un grupo de voluntarios que intercambian c´odigo fuente, informan de los errores y solucionan los problemas en un entorno abierto. Cualquiera es bienvenido a sumarse al esfuerzo de desarrollar GNU/Linux. Todo lo que se necesita es inter´es en hackear un cl´onico libre de Unix, y ciertos conocimientos de programaci´on. El libro que tiene en las manos es una gu´ıa para ese viaje.

1.1. Acerca de este libro Este libro es una gu´ıa para la instalaci´on y el manejo b´asico de GNU/Linux. Su finalidad es conseguir que los nuevos usuarios se pongan en marcha reuniendo la mayor cantidad posible de contenido relevante en un s´olo libro. En lugar de cubrir f´utiles detalles t´ecnicos que tienden a cambiar debido al r´apido desarrollo de GNU/Linux, le damos unos conocimientos de base claros y simples, que le permitan seguir avanzando por s´ı mismo. Instalar y utilizar GNU/Linux no es dif´ıcil. Sin embargo, al igual que con cualquier otra implementaci´on de Unix, para ponerlo todo a funcionar a menudo hace falta algo de mano izquierda. Esperamos que este libro le suba al tren de GNU/Linux y le muestre lo grande que puede llegar a ser un sistema operativo. En este libro cubrimos los siguientes asuntos: ¿Qu´e es GNU/Linux? El dise˜no y filosof´ıa de este sistema operativo u´ nico, y lo que GNU/Linux puede 1

2

Introducci´on a GNU/Linux

hacer por usted. Detalles sobre c´omo ejecutar GNU/Linux, adem´as de sugerencias sobre la configuraci´on de hardware recomendada. Instrucciones espec´ıficas para instalar diversas distribuciones de GNU/Linux, incluyendo Debian, Red Hat y Slackware. Un breve tutorial de introducci´on a Unix para usuarios sin experiencia previa en Unix. Este tutorial proporciona suficiente material a los novatos como para que puedan moverse solos por el sistema. Una introducci´on a la administraci´on del sistema bajo GNU/Linux. Se cubren las tareas m´as importantes que los admistradores de GNU/Linux necesitan llevar a cabo como la creaci´on de cuentas de usuario o el manejo de los ficheros del sistema. Informaci´on sobre la configuraci´on de las caracter´ısticas avanzadas de GNU/Linux, como el sistema X-Window, la red TCP/IP, las noticias o el correo electr´onico. Este libro est´a dirigido al usuario de ordenadores personales que desee empezar con GNU/Linux. No damos por sentado que se tenga experiencia previa con Unix pero s´ı esperamos que, durante su aprendizaje, el principiante se remita a otras fuentes de informaci´on. Proporcionamos una lista de referencias u´ tiles en el Ap´endice A para quienes no est´en familiarizados con Unix. En general, se supone que este libro ha de leerse junto con otro libro de conceptos b´asicos de Unix.

1.2.

Breve historia de GNU/Linux

UNIX es uno de los sistemas operativos mundialmente m´as famosos a causa de su amplia distribuici´on y base soportada. Se desarroll´o originalmente en la AT&T como sistema multitarea para miniordenadores y mainframes en la d´ecada de los 70, pero desde entonces ha crecido hasta convertirse en uno de los sistemas m´as ampliamente usados por doquier, a pesar de su interfaz, a veces confuso, y de su falta de estandarizaci´on por parte de una entidad centralizadora. Muchos hackers sienten que Unix es Lo Que Vale la Pena, el u´ nico sistema operativo de verdad. De ah´ı proviene el desarrollo de GNU/Linux por parte de un grupo, siempre en aumento, de hackers del Unix que quieren “curr´arselo” con un sistema que puedan llamar propio. Existen versiones de Unix para muchos sistemas, desde ordenadores personales hasta superordenadores como el Cray Y-MP. La mayor parte de las versiones de Unix para ordenadores personales son caras y dif´ıciles. Al escribir esto, una versi´on de UNIX System V para una sola m´aquina 386 cuesta unos 1500 $ USA. GNU/Linux es una versi´on libre de Unix desarrollada originalmente por Linus Torvalds en la Universidad de Helsinki en Finlandia, con la ayuda, a trav´es de Internet, de numerosos programadores y expertos de Unix. Cualquiera que tenga el instinto y los conocimientos suficientes puede desarrollar y modificar el sistema. El n´ucleo de GNU/Linux no utiliza c´odigo de AT&T o de cualquier otra fuente propietaria, y gran parte del software disponible para GNU/Linux ha sido desarrollado por el proyecto GNU de la Free Software Foundation en Cambridge, Massachusetts (EEUU) No obstante, tambi´en programadores de todo el mundo contribuyen a que aumente cada vez m´as el software disponible para GNU/Linux. Linux, el n´ucleo o kernel de GNU/Linux, se desarroll´o originalmente como un proyecto que Linus Torvalds emprendi´o en su tiempo libre. Se inspir´o en Minix, un sistema Unix b´asico desarrollado por Andy Tanenbaum. Las primeras discusiones acerca del n´ucleo Linux tuvieron lugar en el grupo de noticias de Usenet comp.os.minix. Estas discusiones se centraban sobre todo en el desarrollo de un sistema peque˜no y acad´emico de Unix para usuarios de Minix que quer´ıan algo m´as. El primitivo desarrollo del n´ucleo Linux se centr´o en las caracter´ısticas multitarea del interfaz en modo protegido del 80386, escrito en c´odigo ensamblador. Linus escribe: “Despu´es de todo, ha sido una navegaci´on tranquila; el c´odigo era tremendo, pero ten´ıa algunos dispositivos, y la depuraci´on fue m´as f´acil. En esta etapa comenc´e a usar C, y ciertamente

1.3. Caracter´ısticas del sistema

3

acelera el desarrollo. Tambi´en fue entonces cuando me empec´e a poner serio en mi megaloman´ıaca idea de hacer ‘un Minix mejor que Minix’. Esperaba poder recompilar gcc bajo el n´ucleo Linux alg´un d´ıa. . . ”. “Dos meses para la configuraci´on b´asica, pero luego s´olo un poco m´as hasta que tuve un controlador de disco (gravemente plagado de errores, pero result´o que funcionaba en mi ordenador) y un peque˜no sistema de ficheros. Fue por aquel entonces cuando dej´e disponible la versi´on 0.01 (m´as o menos a finales de agosto de 1991): no era bonito, no ten´ıa controlador de disquetera, y no pod´ıa hacer mucho en ning´un sentido. No creo siquiera que nadie compilara jam´as esa versi´on. Pero para entonces ya estaba enganchado, y no quer´ıa parar hasta conseguir dejar fuera a Minix”. Nunca se hizo un anuncio de la versi´on 0.01. Las fuentes del 0.01 ni siquiera eran ejecutables. Conten´ıan s´olo los rudimentos b´asicos de las fuentes del n´ucleo y daban por supuesto que se ten´ıa acceso a una m´aquina con Minix para compilarlas y experimentar con ellas. El 5 de octubre de 1991 Linus anunci´o la primera versi´on “oficial” del n´ucleo Linux, la versi´on 0.02. En este punto, Linus pod´ıa ejecutar bash (el GNU Bourne Again Shell) y gcc (el compilador C GNU) pero no mucho m´as. De nuevo, estaba pensado como un sistema para hackers. La orientaci´on principal fue el desarrollo del n´ucleo; el soporte de usuarios, la documentaci´on y la distribuci´on todav´ıa no hab´ıan sido atendidos. A´un hoy, la comunidad GNU/Linux parece que a´un trata estas cosas como secundarias frente a la “programaci´on de verdad” (el desarrollo del n´ucleo). Seg´un escribi´o Linus en comp.os.minix, “¿Suspiras por los fabulosos d´ıas de Minix-1.1, cuando los hombres eran hombres y escrib´ıan sus propios controladores de dispositivo? ¿Te encuentras sin un buen proyecto y te mueres por hincar los dientes a un sistema operativo que puedas intentar modificar para tus necesidades? Encuentras frustrante que todo en Minix funcione? ¿Se acabaron las amanecidas para conseguir que funcione ese programa ca˜nero? Entonces este mensaje puede que sea para ti. “Tal y como mencion´e hace un mes, estoy trabajando en una versi´on libre de una especie de Minix para ordenadores AT-386. Por fin ha alcanzado el estado en el que incluso se puede usar (aunque a lo mejor no se puede, depende de para qu´e lo quieras), y deseo dejar el c´odigo fuente libre para que alcance mayor distribuci´on. S´olo es la versi´on 0.02. . . , pero ya he ejecutado con e´ xito bash, gcc, gnu-make, gnu-sed, compress, etc´etera, bajo este sistema”. Despu´es de la versi´on 0.03 Linus dio el salto a la versi´on 0.10, seg´un empez´o a trabajar m´as gente en el sistema. Despu´es de varias revisiones posteriores, Linus increment´o el n´umero de versi´on a la 0.95 en marzo de 1992 para reflejar su impresi´on de que el sistema estaba preparado para un inminente lanzamiento “oficial”. (Generalmente a un programas no se le numera con la versi´on 1.0 hasta que no est´a en teor´ıa completo, o libre de errores). Casi a˜no y medio despu´es, a finales de diciembre de 1993, el n´ucleo de GNU/Linux estaba todav´ıa en la versi´on 0.99.p114, acerc´andose asint´oticamente a la versi´on 1.0. En el momento de escribir esto, la versi´on estable actual es la 2.2.10 y est´a en desarrollo la versi´on 2.3. Casi todos los paquetes de programas UNIX importantes libremente redistribuibles han sido portados a GNU/Linux, y tambi´en hay abundante software comercial. La lista de hardware soportado es mayor que la del n´ucleo original. Mucha gente ha ejecutado benchmarks (pruebas de rendimiento) en sistemas Linux 80486 y han encontrado que es comparable a estaciones de trabajo de Sun Microsystems y Digital Equipment Corporation. ¿Qui´en hubiera adivinado que este “peque˜no” cl´onico de UNIX iba a crecer tanto como para dominar el mundo de la computaci´on personal en su totalidad?

1.3. Caracter´ısticas del sistema GNU/Linux soporta caracter´ısticas que tambi´en se encuentran en otras implementaciones de UNIX, y otras muchas que no se encuentran en ninguna otra. En esta secci´on, daremos un r´apido paseo por las caracter´ısticas del n´ucleo de GNU/Linux. GNU/Linux es un sistema operativo de multitarea real y multiusuario, como lo son todas las otras versiones de UNIX. Esto significa que muchos usuarios pueden autentificarse en el sistema y ejecutar programas, y hacerlo de forma simult´anea.

4

Introducci´on a GNU/Linux

El sistema GNU/Linux es en su mayor´ıa compatible con varios est´andares de UNIX (hasta donde pueda tener est´andares el UNIX) en lo que respecta al c´odigo fuente de los programas, entre ellos los est´andares POSIX.1, UNIX System V, and Berkely System Distribution UNIX. GNU/Linux se ha desarrollado con la idea de que el c´odigo fuente sea portable de un sistema a otro, y as´ı es f´acil encontrar caracter´ısticas de uso general que son compartidas por m´as de una plataforma. Gran parte del software para UNIX disponible en Internet y en otros lugares compila para GNU/Linux sin hacer modificaciones. Adem´as, es libremente redistribuible todo el c´odigo fuente del sistema GNU/Linux, a saber, el n´ucleo, los controladores de dispositivo, las bibliotecas, los programas de usuario y las herramientas de desarrollo. Otros rasgos internos espec´ıficos de GNU/Linux incluyen control de tareas POSIX (que utilizan int´erpretes de o´ rdenes como chs y bash, pseudoterminales (dispositivos tty), y soporte para teclados nacionales o personalizados que se cargan din´amicamente. GNU/Linux soporta consolas virtuales que le permiten cambiar entre sesiones de login en una u´ nica consola del sistema. Los usuarios del programa screen encontrar´an familiar la implementaci´on de la consola virtual de GNU/Linux. El kernel puede emular instrucciones del coprocesador 387; los sistemas sin un coprocesador matem´atico pueden ejecutar programas que requieren capacidades matem´aticas de coma flotante. El sistema operativo soporta varios sistemas de ficheros para almacenar los datos, como el sistema de ficheros ext2, dise˜nado espec´ıficamente para GNU/Linux. Hay soporte para los sistemas de ficheros de Xenix y UNIX System V, as´ı como los sistemas de ficheros de MS-DOS y el VFAT de Windows 98, en disco duro y en disquete. El sistema de ficheros de CD-ROM ISO 9660 tambi´en est´a soportado. Hablaremos m´as acerca de los sistemas de ficheros en los cap´ıtulos 2 y 4. GNU/Linux proporciona una implementaci´on completa del software de redes TCP/IP. Incluidos controladores de dispositivo para muchas tarjetas Ethernet habituales, y tambi´en SLIP (Serial Line Internet Protocol) y PPP (Point-to-Point Protocol), que proporcionan acceso a una red TCP/IP a trav´es de una conexi´on serie, PLIP (Parallel Line Internet Protocol), y NFS (Network File System - Sistema de Ficheros de Red). Tambi´en est´a soportada toda la gama de clientes y servicios TCP/IP, lo que incluye FTP, telnet, NNTP y SMTP. Hablaremos m´as acerca del trabajo en red en el cap´ıtulo 6. El n´ucleo de GNU/Linux se ha desarrollado para utilizar las caracter´ısticas del modo protegido del procesador 80386 o superior. En particular, GNU/Linux usa el paradigma de manejo de la memoria basado en descriptores y en modo protegido. Cualquiera que est´e familiarizado con el modo protegido del 386 sabe que fue dise˜nado para sistemas multitarea como el Unix. GNU/Linux explota esta funcionalidad. El n´ucleo soporta ejecutables con paginaci´on por demanda: s´olo aquellos segmentos de un programa que realmente se utilizan se pasan a la memoria desde el disco. Igualmente, se comparten las p´aginas de memoria de los ejecutables mediante la t´ecnica copy-on-write. Si varias copias de un programa se est´an ejecutando a la vez, comparten la memoria f´ısica, lo cual reduce su uso global. Para conseguir aumentar la cantidad total de memoria disponible, GNU/Linux implementa tambi´en la paginaci´on de disco. Puede reservarse en el disco hasta un Gigabyte de espacio de intercambio1 en hasta 8 particiones de 128 megas cada una). Cuando el sistema requiere m´as memoria f´ısica, manda al fichero de intercambio las aplicaciones inactivas, permiti´endole ejecutar aplicaciones m´as grandes y dar servicio a otros usuarios. Aun as´ı, el intercambio de p´aginas al disco no sustituye a la memoria RAM, que es mucho m´as r´apida. El n´ucleo de GNU/Linux implementa tambi´en una unificaci´on de la memoria f´ısica y de la memoria de intercambio en el disco. Toda la memoria que quede libre es usada para intercambio, y se reduce al ejecutar programas grandes. Los ejecutables usan bibliotecas compartidas; esto significa que los ejecutables comparten el c´odigo com´un de las bibliotecas en un u´ nico fichero, como sucede en SunOS. Los ficheros ejecutables ocupan menos espacio en disco, especialmente cuando usan funciones de muchas bibliotecas distintas. Tambi´en existen bibliotecas enlazadas est´aticamente para el depurado de objetos y para mantener ficheros ejecutables “completos” cuando las bibliotecas din´amicas no est´an instaladas. Las bibliotecas se enlazan din´amicamente en tiempo de ejecuci´on, y el programador puede usar sus propias rutinas en lugar de las rutinas de la biblioteca 1 El espacio de intercambio no tendr´ıa que llamarse as´ı; no se mandan al espacio de intercambio procesos enteros, sino m´ as bien determinadas p´aginas. Claro est´a que en la mayor´ıa de los casos ir´an al fichero de intercambio procesos enteros, pero esto no siempre es cierto

1.4. Programas

5

est´andar. Para facilitar la depuraci´on de programas, el n´ucleo genera volcados de memoria core dump para el an´alisis post-mortem cuando una aplicaci´on falla. Mediante los core dump y un ejecutable enlazado con soporte de depuraci´on, los programadores pueden determinar la causa de que el programa haya fallado.

1.4. Programas Pr´acticamente ha sido portada a GNU/Linux cualquier utilidad que pudiera encontrarse en un sistema UNIX est´andar, entre ellas las o´ rdenes b´asicas como ls, awk, tr, sed, bc y more. El entorno de trabajo familiar en otros sistemas UNIX se ha replicado en GNU/Linux. Se incluyen todas las o´ rdenes y utilidades (Los nuevos usuarios de UNIX o GNU/Linux deben ver el Cap´ıtulo 3 para una introducci´on a las o´ rdenes b´asicas de UNIX) Est´an disponibles muchos editores de texto, entre ellos vi, ex, pico, jove y GNU Emacs, y variantes como Lucid emacs, que incorpora extensiones para el sistema X-Window, y joe. Es muy posible que el editor de texto al que este acostumbrado haya sido portado a GNU/Linux. Es interesante la cuesti´on de elegir un editor de texto. Muchos usuarios de UNIX prefieren editores “sencillos” como vi; el autor original escribi´o este libro con vi. Pero vi tiene muchas limitaciones debido a su antig¨uedad, y los modernos editores como emacs han ganado popularidad. GNU Emacs soporta un completo lenguaje e int´erprete de macros basado en Lisp, una potente sintaxis de o´ rdenes y otras extensiones. Hay paquetes de macros para emacs que te permiten leer correo electr´onico y noticias, editar el contenido de directorios, e incluso atreverse con sesiones de psicoterapia de inteligencia artificial. (indispensables para hackers del GNU/Linux muy estresados). Muchas de las utilidades b´asicas de GNU/Linux son software GNU. Las utilidades GNU soportan caracter´ısticas avanzadas que no se encuentran en las versiones est´andar de los programas de BSD y System V. Por ejemplo el clon GNU de vi, llamado elvis, incluye un lenguaje estructurado de macros que difiere de la interpretaci´on original. Sin embargo, se pretende que las utilidades GNU permanezcan compatibles con sus hom´ologos de BSD y System V. Mucha gente considera que las versiones GNU son superiores a los originales. Una shell o int´erprete de o´ rdenes es un programa que lee y ejecuta o´ rdenes del usuario. Adem´as muchas shells proporcionan caracter´ısticas como el control de tareas, manejo de varias tareas a la vez, redirecci´on de las entradas y salidas, y un lenguaje de o´ rdenes para escribir shell scripts, un gui´on de o´ rdenes. Un gui´on de o´ rdenes es un programa escrito en el lenguaje de o´ rdenes de la shell, an´alogo a un fichero .bat del DOS. Est´an disponibles para GNU/Linux muchos tipos de shells. La diferencia m´as importante entre las shells es el lenguaje de o´ rdenes. Por ejemplo, el C SHell (csh) utiliza un lenguaje de o´ rdenes similar al lenguaje de programaci´on C. El cl´asico Bourne SHell sh usa un lenguaje de o´ rdenes diferente. La elecci´on de una shell se basa a menudo en el lenguaje de o´ rdenes que proporciona, y determina en gran medida la calidad de tu entorno de trabajo en GNU/Linux. La Bourne Again Shell GNU (bash) es una variante de la Bourne Shell que incluye muchas caracter´ısticas avanzadas como el control de tareas, el historial de o´ rdenes, conclusi´on de o´ rdenes y nombres de ficheros, un interface tipo emacs para editar l´ıneas de o´ rdenes y otras poderosas extensiones al lenguaje est´andar de la shell Bourne est´andard. Otra shell popular es tcsh, una versi´on de la C Shell con funciones avanzadas similares a las que encontramos en bash. Otras shells son zsh, una shell peque˜na similar a la Bourne shell; Korn Shel; la ash del BSD y rc Shell de Plan 9. Si es la u´ nica persona que va a usar el sistema y planea usar s´olo vi y bash como editor y shell, respectivamente, no hay raz´on para instalar otros editores o shells. Esta actitud de “h´agalo usted mismo” es la t´onica general entre los usuarios y hackers de GNU/Linux.

1.4.1.

Formateado y procesado de textos

Pr´acticamente todos los usuarios de ordenadores necesitan de un sistema para preparar documentos. En el mundo de los ordenadores personales, el procesamiento de textos es lo m´as habitual: Se trata de editar y manipular textos en un entorno de tipo “lo que ves es lo que obtienes”, obteniendo copias impresas del

6

Introducci´on a GNU/Linux

documento completo con sus gr´aficos, tablas y adornos. Existen procesadores de textos comerciales para el mundo UNIX producidos por Corel, Star Division y Applix, pero es m´as com´un el formateo de textos, que es conceptualmente diferente. En los sistemas de formateo de documentos, el texto es introducido en un lenguaje de descripci´on de p´aginas que describe la forma en que ha de darse formato al texto. En lugar de introducir el texto en un entorno de procesador de textos, se puede modificar el texto con cualquier editor, como vi o GNU Emacs. Una vez hemos acabado con la introducci´on del texto fuente (en el lenguaje de formateo de texto) un programa aparte convierte el texto fuente en un formato adecuado para su impresi´on. Es un proceso an´alogo al de programar en un lenguaje, como el C, y “compilar” el documento en un formato imprimible. En GNU/Linux hay disponibles muchos sistemas de formateo de documentos. Uno de ellos es groff, la versi´on GNU del formateador de documentos troff, un cl´asico desarrollado originalmente en los laboratorios Bell y que a´un se usa en muchos sistemas UNIX de todo el mundo. Otro sistema moderno es TEX, desarrollado por Donald Knuth, famoso en la ciencia de la computaci´on. Tambi´en pueden obtenerse dialectos de TEX, como LATEX. Los formateadores como groff y TEX se diferencian sobre todo en la sintaxis de su lenguaje de formateo. Elegir un sistema concreto en vez de otro es una decisi´on que se toma bas´andose en las utilidades disponibles que satisfa*gan nuestras necesidades, y en el gusto personal. Muchos consideran que el lenguaje de formateo de groff es un poco oscuro y encuentran que TEX es m´as legible. Sin embargo, groff, produce salida ASCII, que puede leerse en un terminal, mientras que TEX est´a pensado sobre todo para que la salida sea por un dispositivo de impresi´on. Hay que disponer de algunos programas adicionales para conseguir salida ASCII a partir de textos formateados en TEX y para convertir un texto introducido en TEX al formato de groff. Otro programa es texinfo, una extensi´on de TEX utilizada para la documentaci´on de los programas llevada a cabo por la Free Software Foundation. Texinfo puede producir salida de impresora o un hypertexto navegable en l´ınea de tipo “Info”, y todo ello a partir de un s´olo fichero de texto fuente. Los ficheros “info” son la principal fuente de documentaci´on de los programas GNU, como por ejemplo GNU Emacs. En la comunidad inform´atica se usan extensamente los formateadores de documentos para producir comunicaciones, tesis, art´ıculos para revistas y libros. (Este libro ha sido generado con LATEX). La capacidad de manejar como un fichero de texto el documento fuente escrito en lenguaje de formateo abre la puerta a muchas posibilidades de extensi´on del sistema mismo de formateado. Gracias a que el documento fuente no se almacena en un oscuro formato que s´olo puede leer un procesador de textos determinado, los programadores pueden escribir analizadores y traductores para el lenguaje de formateo, ampliando as´ı el sistema. ¿A qu´e se parece un sistema de formateo? En general el fichero de texto fuente formateado est´a compuesto en su mayor parte por el texto en s´ı, adem´as de unos c´odigos de control para producir efectos como cambios de tipo de letra y m´argenes, creaci´on de listas, etc´etera. Examina el siguiente texto: Sr. Torvalds: Andamos bastante mosqueados con sus planes de implementar sugesti´on post-hipn´otica en el c´odigo del controlador del terminal de GNU/Linux. Nos sentimos as´ı por tres razones: 1.

Mostrar mensajes subliminales en el controlador del terminal no s´olo es inmoral, sino adem´as una p´erdida de tiempo.

2.

Se ha demostrado que las “sugestiones post-hipn´oticas” carecen de efecto cuando se usan contra incautos hackers de UNIX;

3.

Ya hemos implementado descargas el´ectricas de alto voltaje en el c´odigo del login de GNU/Linux, como medida de seguridad.

Esperamos que lo reconsidere. Este texto deberia aparecer en el lenguaje de formateo LATEX como lo siguiente: \begin{quote}

Programas

7

Sr. Torvalds: Andamos bastante mosqueados con sus planes de implementar {\em sugesti´ on post-hipn´ otica\/} en el c´ odigo del controlador del terminal de {\bf {\linux}}. Nos sentimos as´ ı por tres razones: \begin{enumerate} \item Mostrar mensajes subliminales en el controlador del terminal no s´ olo es inmoral, sino adem´ as una p´ erdida de tiempo. \item Se ha demostrado que las ‘‘sugestiones post-hipn´ oticas’’ carecen de efecto cuando se usan contra incautos hackers de UNIX; \item Ya hemos implementado descargas el´ ectricas de alto voltaje en el c´ odigo del {\tt login} de {\linux}, como medida de seguridad. \end{enumerate} Esperamos que lo reconsidere. \end{quote} El autor introduce el texto utilizando un editor de texto cualquiera y genera una salida formateada tras procesar el texto fuente con LATEX. A primera vista, el sistema de formateo puede parecer arcano, pero en realidad es bastante sencillo de entender. Utilizar un sistema de formateo de documentos obliga a usar est´andares tipogr´aficos al escribir. Todas las listas numeradas dentro del documento tendr´an el mismo aspecto, a menos que su autor modifique la definici´on de lista numerada. El objetivo es permitir al autor concentrarse en el texto, no en las convenciones tipogr´aficas. Cuando se escribe con un editor de textos, generalmente no se piensa en el aspecto que tendr´a el texto impreso. El autor se acostumbra a imaginar la apariencia que tendr´a el texto gracias a las o´ rdenes de formateo en el fichero fuente. Los procesadores de textos tipo “Lo que ves es lo que obtienes” (en ingl´es WYSIWYG) son atractivos por muchos conceptos. Proporcionan un interfaz visual f´acil de usar para la edici´on de documentos. Pero este interfaz est´a limitado a los aspectos de la disposici´on del texto que son accesibles para el usuario. Por ejemplo, muchos procesadores de textos proporcionan todav´ıa un lenguaje especial de formateo para producir expresiones complicadas, como las f´ormulas matem´aticas. Esto u´ ltimo constituye formateo de documentos, aunque en una escala mucho m´as modesta. Un beneficio no tan sutil del formateo de documentos es que se puede especificar exactamente el formato que se necesita. En muchos casos, el sistema de procesado de documentos requiere de una especificaci´on de formato. Los sistemas de formateo de documentos permiten adem´as editar el texto con cualquier editor de texto, en lugar de basarse en c´odigos de formato que queden escondidos detr´as del opaco interfaz de usuario de un procesador de textos. El precio a pagar por esta potencia y flexibilidad es la falta de un interfaz de tipo “lo que ves es lo que obtienes”. Existes programas que te dejan visualizar el documento formateado en un dispositivo de pantalla gr´afica antes de imprimirlo. El programa xdvi muestra bajo el entorno X-Window un fichero “independiente del dispositivo”, generado por el sistema TEX. Aplicaciones del tipo de xfig y gimp proporcionan interfaces gr´aficos para dibujar figuras y diagramas, que se convierten posteriormente al sistema de formateo de texto para poder incluirlos en tus documentos. Los formateadores de texto como troff ya estaban ah´ı mucho antes de que hubiera a disposici´on del p´ublico ning´un procesador de textos. Muchos prefieren a´un hoy su versatilildad y su independiencia del entorno gr´afico. Existen muchas utilidades relacionadas con el formateo de texto. El poderoso sistema METAFONT, que se usa para dise˜nar fuentes de TEX, viene incluido con la versi´on de TEX que se ha portado a GNU/Linux. Otros programas son ispell, un corrector ortogr´afico; makeindex genera ´ındices para los documentos en LATEX; hay muchos otros paquetes basados en groff y TEX que son capaces de formatear diversos tipos

8

Introducci´on a GNU/Linux

de textos t´ecnicos y matem´aticos. Tambi´en existen programas que transforman el texto en TEX o groff a una infinidad de formatos, y viceversa. Un lenguaje nuevo en la escena es YODL, escrito por Karel Kubat. Se trata de un lenguaje f´acil de aprender, y que incorpora filtros para producir salidas en diversos formatos, como LATEX, SGML y HTML.

1.4.2.

Lenguajes y utilidades de programaci´on

GNU/Linux proporciona un completo entorno de programaci´on UNIX que incluye todas las bibliotecas est´andar, herramientas de programaci´on, compiladores y depuradores que podr´ıan esperarse en otro sistema UNIX. Est´an soportados los est´andares, como POSIX.1, lo que permite que los programas escritos en GNU/Linux puedan portarse f´acilmente a otros sistemas. Los programadores UNIX profesionales y los administradores de sistemas usan GNU/Linux para desarrollar programas en casa, luego trasladan los programas a sus sistemas UNIX en el trabajo. Ello no s´olo les ahorra gran cantidad de tiempo y dinero, sino que adem´as les permite trabajar en la comodidad de su propia casa. (Uno de los autores de este libro usa su sistema para desarrollar y probar aplicaciones para el sistema X-Window en casa, y que pueden compilarse directamente en estaciones de trabajo en otro lugar). Los estudiantes de ingenier´ıa inform´atica aprenden programaci´on UNIX y exploran otros aspectos del sistema, como la arquitectura del n´ucleo. Con GNU/Linux tienes acceso a un completo juego de bibliotecas y utilidades de programaci´on, adem´as del n´ucleo completo y el c´odigo fuente de las bibliotecas. Dentro del mundo de los programas UNIX, los sistemas operativos y las aplicaciones normalmente est´an programados en C o en C++. El compilador est´andar de C y C++ para GNU/Linux es el compilador GNU gcc; se trata de un compilador avanzado y moderno que soporta C++ con las caracter´ısticas de AT&T 3.0, adem´as de Objective C, otro dialecto de C orientado a objetos. Adem´as de C y C++, se han portado a GNU/Linux otros lenguajes de programaci´on interpretados o compilados, por ejemplo Smalltalk, FORTRAN, Java, Pascal, LISP, Scheme y Ada (si es tan masoquista como para programar en Ada, pues adelante, no le detendremos). Tambi´en existen varios ensambladores para escribir c´odigo en el modo protegido del 80386, as´ı como los favoritos para el hacking del UNIX como Perl (el lenguaje de guiones que acabar´ıa con todos los de su especie), el Tcl/Tk (un procesador de o´ rdenes al estilo del int´erprete que incluye soporte para desarrollar peque˜nas aplicaciones bajo el sistema X-Window). El depurador avanzado gdb permite examinar un programa de l´ınea de c´odigo en l´ınea de c´odigo, o bien examinar la causa del “cuelgue” de una aplicaci´on examinando un volcado del sistema (core dump). La utilidad gprof para perfilado permite obtener estad´ısiticas sobre las prestaciones de su programa, indic´andole en qu´e puntos el programa pasa la mayor parte de su tiempo de ejecuci´on. Como ya se ha mencionado antes, el editor de texto GNU Emacs proporciona edici´on interactiva y entornos de compilaci´on para varios lenguajes de programaci´on. Otras herramientas son el GNU make e imake que controlan la compilaci´on de grandes aplicaciones, y RCS un sistema para el bloqueo de c´odigo fuente y el control de revisiones. Finalmente, GNU/Linux soporta bibliotecas compartidas enlazadas din´amicamente (DLLs, bibliotecas de enlace din´amico). El c´odigo com´un a muchas subrutinas se enlaza en tiempo de ejecuci´on. Estas bibliotecas (DLLs) le permiten sobreescribir las funciones por defecto con su propio c´odigo. Pongamos que quiere escribir su propia versi´on de la rutina malloc(), entonces el enlazador usar´a su nueva rutina en lugar de la que hay en las bibliotecas.

1.4.3.

Introducci´on al sistema X-Window

El sistema X-Window (atenci´on al singular: X-Window) o simplemente “las X”, es un interfaz gr´afico de usuario est´andar en las m´aquinas UNIX; se trata de un potente entorno que soporta todo tipo de aplicaciones. Dentro del sistema de ventanas X-Window, puede tener a la vez varias terminales en la pantalla, cada una con su sesi´on propia. A menudo se usa un dispositivo se˜nalador, como un rat´on, aunque en teor´ıa se puede trabajar sin e´ l. Se han escrito espec´ıficamente para las X muchas aplicaciones, entre ellas juegos, utilidades para gr´aficos y para programaci´on. GNU/Linux y las X hacen de su sistema una estaci´on de trabajo de toda confianza. Con una red TCP/IP, su m´aquina GNU/Linux puede visualizar aplicaciones que se est´en ejecutando en otra

Programas

9

m´aquina. El sistema de ventanas X-Window se desarroll´o originariamente en el Massachussets Institute of Technology (MIT) y es de libre distribuci´on. Muchas empresas, por su parte, han distribuido ampliaciones propietarias al sistema X-Window. La versi´on de las X para GNU/Linux es XFree86, una versi´on libremente distribuible de X11R6. XFree86 soporta una amplia variedad de tarjetas de v´ıdeo VGA, S´uper VGA, y tarjetas aceleradoras y 3D. XFree86 es una distribuci´on completa del software X-Window, y contiene lo que en terminolog´ıa de las X se llama el servidor, adem´as de muchas aplicaciones, utilidades, bibliotecas para el programador y documentaci´on. Entre las aplicaciones X est´andar se incluye xterm, un emulador de terminal que se usa para la mayor parte de aplicaciones basadas en texto que se ejecutan dentro de una ventana, xdm, que gestiona las sesiones (los ’logins’), xclock, que muestra un reloj sencillo, xman, un lector de p´aginas de manual basado en las X, y xless. Las aplicaciones GNU/Linux para X-Window son muchas; tantas, de hecho, que son demasiadas para nombrarlas aqu´ı, pero entre ellas se cuentan hojas de c´alculo, procesadores de texto, aplicaciones para gr´aficos y navegadores de internet como el Netscape Navigator. Muchas otras aplicaciones se pueden conseguir aparte. En teor´ıa, cualquier aplicaci´on escrita para las X compila sin problemas bajo GNU/Linux. El interfaz del sistema X-Window est´a controlado en gran medida por el gestor de ventanas. Este amigable programa se encarga de situar las ventanas y el interfaz de usuario que las mueve y las cambia de tama˜no, minimiza las ventanas en iconos, y controla la apariencia de los marcos de las ventanas, entre otras tareas. XFree86 incluye twm, el cl´asico gestor de ventanas del MIT, pero tambi´en gestores avanzados como el Open Look Virtual Window Manager (olvwm). Es popular entre los usuarios de UNIX el fvwm, un gestor de ventanas compacto que requiere menos de la mitad de memoria que el twm. Proporciona apariencia tridimensional para las ventanas y un escritorio virtual. El usuario mueve el rat´on hasta el borde de la ventana, y el escritorio se desplaza como si fuera mucho m´as grande de lo que en realidad es. Fvwm es muy configurable y permite acceso a sus funciones tanto desde el teclado como desde el rat´on. Muchas distribuciones de GNU/Linux han usado fvwm como su gestor de ventanas est´andar. Una versi´on de fvwm llamada fvwm95-2 ofrece el aspecto del sistema de ventanas Microsoft Windows. La distribuci´on de XFree86 incluye bibliotecas de programaci´on para h´abiles programadores que deseen desarrollar aplicaciones X. Los conjuntos de controles Athena, Open Look y Xaw3D est´an soportados. Se incluyen todas las fuentes est´andar, los mapas de bits y las p´aginas de manual. Est´a soportado tambi´en PEX (un interfaz de programaci´on para gr´aficos tridimiensionales). Muchos programadores en X usan el conjunto de controles Motif para sus desarrollos. Varias empresas venden licencias mono o multiusuario para las versiones compiladas de Motif. Puesto que Motif como tal es relativamente caro, no hay demasiados usuarios de GNU/Linux que lo tengan. No obstante, pueden redistribuirse librementes los binarios con Motif vinculado est´aticamente. Si usas Motif para escribir un programa, puedes producir un binario para que los usuarios que no tengan Motif puedan usarlo. Una advertendia importante para usar el sistema X-Window es la cuesti´on del hardware necesario. Un 386 con 4 megabytes de RAM puede ejecutar las X, pero se necesitan 16 megas o m´aas de memoria RAM para usarlas con comodidad. Es ideal tener tambi´en un procesador m´as r´apido, pero es mucho m´as importante disponer de memoria f´ısica suficiente. Adem´as de esto si quiere adquirir un rendimiento de v´ıdeo c´omodo, recomendamos utilizar una tarjeta de v´ıdeo aceleradora, en una ranura AGP o en una PCI. En los tests de rendimiento se han conseguido resultados que exceden de los 300.000 xstones2 . Con el hardware adecuado, hallar´a que su m´aquina GNU/Linux ejecutando las X es tan r´apida o m´as que ejecutar las X en otras estaciones de trabajo UNIX. En el Cap´ıtulo 5 trataremos de la instalaci´on y uso de las X en su sistema.

1.4.4.

Introducci´on a las redes

¿Desea comunicarse con el mundo? GNU/Linux soporta dos protocolos b´asicos en UNIX: TCP/IP y UUCP. El protocolo TCP/IP (Transmission Control Protocol/Internet Protocol) es el paradigma de redes que permite a los sistemas de todo el mundo intercomunicarse mediante una sola red, Internet. Con GNU/Linux, 2 N.

del T.: Ver http://www.rarcoa.com/ thebard/X11-performance.html

10

Introducci´on a GNU/Linux

TCP/IP y una conexi´on a Internet 3 , puedes comunicarte con usuarios y ordenadores a trav´es del correo electr´onico, noticias, y transferencia de ficheros por FTP. La mayor parte de las redes TCP/IP utilizan Ethernet como transporte f´ısico de la red. GNU/Linux soporta las tarjetas de red Ethernet m´as usuales y los interfazs para ordenadores personales, como los adaptadores pocket Ethernet y PCMCIA. Sin embargo, y debido a que no todo el mundo tiene una conexi´on Ethernet en casa, GNU/Linux soporta tambi´en SLIP (Serial Line Internet Protocol, protocolo de Internet por l´ınea serie) y PPP (Point-to-Point Protocol, protocolo de punto a punto), que proporcionan el acceso a Internet a trav´es de un m´odem. Muchos negocios y universidades disponen de servidores PPP a los que conectarse. De hecho, si su sistema GNU/Linux dispone de una conexi´on Ethernet y un m´odem, puede convertirse en un servidor SLIP o PPP para otros ordenadores. NFS (Network File System, sistema de ficheros de red) le permite compartir ficheros con otras m´aquinas de la red de forma transparente. FTP (File Transfer Protocol, protocolo de transferencia de ficheros) le permite transferir ficheros desde y hacia otro ordenador. Sendmail env´ıa y recibe correo electr´onico a trav´es del protocolo SMTP. C-News e INN son sistemas de noticias basados en el protocolo NNTP; y telnet, rlogin, rsh y ssh le permiten autentificarse y ejecutar o´ rdenes en otras m´aquinas de la red. Con finger podra obtener informaci´on sobre otros usuarios de Internet. GNU/Linux tambi´en soporta la conectividad con Microsoft Windows gracias a Samba4 y conectividad con Macintosh a trav´es de AppleTalk y LocalTalk. Tambi´en se incluye el soporte para el protocolo IPX de Novell. GNU/Linux tiene disponible una bater´ıa completa de lectores de correo y noticias, entre ellos elm, pine, mutt, rn, nn, y tin. Cualquiera que sea su preferencia, puede configurar el sistema GNU/Linux para que env´ıe y reciba noticias y correo electr´onico desde todo el mundo. El sistema proporciona un interfaz est´andar de programaci´on de sockets UNIX. Se puede migrar a GNU/Linux pr´acticamente cualquier programa que use TCP/IP. El servidor de las X para GNU/Linux tambi´en soporta TCP/IP, y las aplicaciones que se ejecutan en otros sistemas pueden usar la pantalla de su sistema local para visualizarse. En el Cap´ıtulo 6 trataremos de la instalaci´on del software TCP/IP, y con e´ l SLIP y PPP. UUCP (UNIX-to-UNIX Copy, copia de UNIX a UNIX) es un mecanismo ya bastante antiguo para transferir correo electr´onico y noticias entre m´aquinas UNIX. Hist´oricamente, las m´aquinas UUCP estaban conectadas por l´ıneas telef´onicas a trav´es de un m´odem, pero UUCP es capaz igualmente de transferir datos a trav´es de una red TCP/IP. Si no dispone de acceso a una red TCP/IP (acceso f´acil de obtener en Espa˜na con el acceso gratuito a Internet), puede configurar su sistema para enviar ficheros y correo electr´onico utilizando UUCP. Para m´as informaci´on, v´ease el cap´ıtulo 6.

1.4.5.

Telecomunicaciones y software para BBS

Si dispone de un M´odem, podr´a comunicarse con otras m´aquinas gracias a los paquetes de telecomunicaciones que proporciona Linux. Mucha gente usa sus programas de telecomunicaciones para acceder a sistemas de BBS (Bulletin Board System, Sistema de tabl´on de anuncios electr´onico), y a proveedores de servicios en l´ınea como Prodigy, Compuserve America Online. La gente utiliza el m´odem para conectarse a los sistemas UNIX del trabajo o el centro educativo. Con el m´odem se pueden enviar y recibir faxes. Un conocido paquete de comunicaciones para Linux es seyon, que nos proporciona un interfaz de usuario c´omodo y configurable bajo X Window, y que lleva incluido el soporte para los protocolos de transferencia de ficheros Kermit y Z-Modem. Otros programas de telecomunicaciones son C-Kermit, pcomm y minicom. Son parecidos a los programas de telecomunicaciones disponibles para otros sistemas operativos, y resultan bastante f´aciles de utilizar. Si no tiene acceso a un servidor SLIP o PPP (v´ease la secci´on anterior) puede utilizar term para multiplexar su l´ınea serie. El programa term le hace posible abrir m´as de una sesi´on de login sobre una conexi´on por m´odem. Le permite redirigir conexiones de un cliente X a su servidor X local a trav´es de una l´ınea serie. 3 N.

del T.: Que en Espa˜na han bajado mucho de precio o son gratuitas Samba: Integrating UNIX and Windows, Copyright 1998 Specializad System Consultants.

4 V´ ease

Programas

11

Otro paquete de software, KA9Q, implementa un interfaz parecido, estilo SLIP. Ser un SySop de una BBS fue en tiempos una afici´on predilecta y una forma de obtener ingresos para mucha gente. GNU/Linux soporta una amplia gama de software para BBS, que en general es mucho m´as potente que el disponible para otros sistemas operativos. Con una l´ınea telef´onica, un m´odem y GNU/Linux, puedes transformar tu sistema en una BSS y proporcionar acceso a los usuarios de todo el mundo. Entre los programas de BBS para linux est´an XBBS y UniBoard BBS. La mayor´ıa de programas de BBS constri˜nen al usuario a un sistema de men´us en el que s´olo est´an disponibles determinadas funciones y aplicaciones. Una alternativa al acceso por BBS es el acceso UNIX completo, que permite al usuario llamar a tu sistema y autentificarse normalmente. Esto u´ ltimo requiere de una nada despreciable tarea de administraci´on por parte del administrador, pero no es dif´ıcil proporcionar acceso p´ublico a UNIX. Adem´as de la red TCP/IP, puede hacer posible el acceso al correo y las noticias en su sistema. Si no dispone de acceso a una red TCP/IP o de una pasarela UUCP, GNU/Linux le permite todav´ıa comunicarse con redes de BBS como Fidonet, que le permiten intercambiar correo y noticias a trav´es de una l´ınea telef´onica. Para m´as informaci´on sobre telecomunicaciones y software de BBS bajo GNU/Linux, v´ease el Cap´ıtulo 6.

1.4.6.

World Wide Web

Es necesario apuntar aqu´ı que GNU/Linux lleva incluido el software de servidor web y tamb´ıen navegadores web. Miles de sistemas Linux ejecutan Apache en internet hoy en dia, entre ellos la sede de recursos de Linux www.linuxresources.com. En las distribuciones de GNU/Linux se incluyen diferentes navegadores web, adem´as de otros que pueden bajarse de internet. Entre los navegadores disponibles se cuentan Mosaic, Netscape, Arena, Amaya y Mozilla. Linux proporciona soporte completo para Java, applets CGI y Perl, la herramienta est´andar en el entorno de programaci´on GNU/Linux.

1.4.7.

Interacci´on con MS-DOS

Diferentes utilidades existen como una interfaz con MS-DOS. La m´as conocida es el emulador de MSDOS de GNU/Linux, que permite ejecutar aplicaciones de MS-DOS directamente desde GNU/Linux. Aunque GNU/Linux y MS-DOS son sistemas operativos totalmente diferentes, el entorno en modo protegido 80386 le permite a las aplicaciones MS-DOS comportarse como si estuviesen en su entorno original 8086. El emulador de MS-DOS est´a desarroll´andose, pero muchas aplicaciones se ejecutan ya bajo e´ l. Evidentemente, las aplicaciones de MS-DOS que usen extra˜nas o esot´ericas caracter´ısticas del sistema, nunca podr´an soportarse, debido a las limitaciones inherentes de cualquier emulador. Por ejemplo, no espere ejecutar programas que usen el modo protegido 80386, como Microsoft Windows (es decir, en modo 386 mejorado). Comandos est´andar de MS-DOS y utlidades como PKZIP.EXE funcionan con los emuladores, al igual que 4DOS, un sustituto de COMMAND.COM, FoxPro 2.0, Harvard Graphics, MathCad, Stacker 3.1, Turbo Assembler, Turbo C/C++, Turbo Pascal, Microsoft Windows 3.0 (en modo real) y WordPerfect 5.1. El emulador de MS-DOS viene a ser como una soluci´on ad-hoc para aquellos que necesitan MS-DOS s´olo para algunas aplicaciones y usan GNU/Linux para todo lo dem´as. Esto no quiere decir que sea una completa implementaci´on de MS-DOS. Por supuesto que si el emulador de MS-DOS no satisface sus necesidades, siempre puede utilizar alternativamente MS-DOS y GNU/Linux en el mismo sistema. Utilizando el “LILO boot loader”, puede especificar en el inicio qu´e sistema operativo debe arrancar. GNU/Linux adem´as puede coexistir con otros sistemas operativos, como OS/2. GNU/Linux proporciona una interfaz sin fisuras para transferir ficheros entre GNU/Linux y MS-DOS. Puede montar una partici´on MS-DOS o un floppy bajo GNU/Linux y acceder directamente a los ficheros de MS-DOS que desee. Actualmente se est´a desarrollando WINE—un emulador de Microsoft Windows para el sistema XWindow bajo GNU/Linux. Una vez que WINE est´e completado, los usuarios podr´an ejecutar aplicaciones para MS-Windows directamente desde GNU/Linux. Esto es parecido a la aplicaci´on comercial “WABI Windows emulator” de Sun Microsystems, tambi´en disponible para GNU/Linux.

12

Introducci´on a GNU/Linux

En el Cap´ıtulo 3 y en el Cap´ıtulo 6, hablaremos acerca de las utilidades de MS-DOS disponibles para GNU/Linux.

1.4.8.

Otras aplicaciones

Existen para GNU/Linux multitud de aplicaciones y utilidades de todo tipo, como cabe esperar de un sistema tan variado. El principal objetivo de GNU/Linux es la inform´atica personal con UNIX, pero no es e´ ste el u´ nico campo en donde sobresale. El cat´alogo de programas cient´ıficos y para empresas, sigue creciendo y los desarrolladores de software comercial hace tiempo que han comenzado a contribuir al creciente fondo de aplicaciones para GNU/Linux. Hay disponibles en GNU/Linux varias bases de datos relacionales, por ejemplo Postgres, Ingres, Mbase, Oracle, Ibm DB2, Interbase, Sybase y ADABAS. Se trata de aplicaciones de bases datos profesionales, con todo tipo de caracter´ısticas avanzadas, y de arquitectura cliente/servidor, semejantes a las que se encuentran en otras plataformas UNIX. Existen igualmente otros sistemas comerciales de bases de datos para GNU/Linux. Entre las aplicaciones cient´ıficas se cuentan FELT (finite element analysis, an´alisis de elementos finitos); gnuplot (representaci´on y an´alisis de datos); Octave (un paquete de matem´atica simb´olica similar a MATLAB); xspread (calculadora y hoja de c´alculo); xfractint (una adaptaci´on a X Window del conocido generador de fractales Fractint) y xlispstat (para estad´ısticas). Otras aplicaciones: SPICE (dise˜no y an´alisis de circuitos) y Khoros (dise˜no y visualizaci´on de im´agenes y se˜nales digitales). Tambi´en existen aplicaciones comerciales como Maple y Matlab. Se han adaptado a GNU/Linux muchas m´as aplicaciones, y u´ ltimamente el n´umero crece vertiginosamente. Si de ninguna manera encuentra lo que busca, siempre puede intentar migrar usted mismo la aplicaci´on desde otra plataforma. Migrar aplicaciones UNIX, del campo que sea, a GNU/Linux no suele presentar problemas. El completo entorno de programaci´on UNIX del que dispone GNU/Linux sirve de base para cualquier aplicaci´on cient´ıfica. GNU/Linux cuenta tambi´en con un creciente n´umero de juegos. Existen los cl´asicos juegos de dragones y mazmorras basados en texto, como Nethack y Moria; luego est´an los MUDs (multi-user dungeons, dragones y mazmorras multiusuario) que permiten que muchos usuarios interact´uen en una aventura basada en texto, como DikuMUD y TinyMUD; y una pl´eyade de juegos para las X Window, como xtetris, netrek, y xboard, la versi´on X11 de gnuchess. El popular juego de disparar a todo lo que se mueva, Doom, y los ´ arcades que lo continuaron, Quake, Quake II y Quake III, han sido portados a GNU/Linux. Este u´ ltimo ha salido para GNU/Linux antes que para algunas plataformas mayoritarias, Para los mel´omanos, GNU/Linux soporta gran variedad de tarjetas de sonido y programas asociados, como CDplayer, que convierte su unidad de CD-Rom en un reproductor de CD’s, secuenciadores y editores MIDI, que permiten componer m´usica para su reproducci´on en un sintetizador u otro instrumento controlado por MIDI, editores de sonido para sonidos digitalizados, y codificadores y reproductores de ficheros en formato MP35 . ¿No encuentra la aplicaci´on que busca? El Mapa de Software GNU/Linux, que se describe en el Ap´endice A, enumera los paquetes de software que se han escrito o migrado a GNU/Linux. Otra manera de encontrar aplicaciones para GNU/Linux es buscar en los ficheros INDEX que se encuentran en los sitios FTP con programas para GNU/Linux, en el caso de que tenga acceso a Internet. La mayor parte del software libremente redistribuible disponible para UNIX compila sin problemas en GNU/Linux, o al menos con poca dificultad. Pero si todo lo dem´as fallara, siempre puede programarse usted mismo la aplicaci´on. Si anda buscado una aplicaci´on comercial, puede existir un cl´onico libre. Incluso puede considerar la posibilidad de animar a su compa˜n´ıa proveedora de software a que lance una versi´on de su programa para GNU/Linux. Muchos individuos y organizaciones han contactado ya con compa˜n´ıas de software y les han pedido que porten sus aplicaciones a GNU/Linux, con diferentes grados de e´ xito. 5 N.

del T.: Durante la traducci´on de este documento, el formato libre Ogg Vorbis ha alcanzado la versi´on 1.0

1.5. Acerca del Copyright

13

1.5. Acerca del Copyright Linux est´a regido por lo que se conoce como la Licencia P´ublica General de GNU, o GPL, General Public License. La GPL fue desarrollada para el proyecto GNU por la Free Software Foundation, que podemos traducir como “Fundaci´on por el Software Libre”. La licencia hace una serie de previsiones sobre la distribuci´on y modificaci´on del “software libre”. “Free” en este sentido se refiere a libertad, y no necesariamente al coste. La GPL puede ser interpretada de distintas formas, y esperamos que este resumen le ayude a entenderla y c´omo afecta a Linux. Se incluye una copia completa de la Licencia al final del libro, en el Ap´endice E. Originalmente, Linus Torvalds lanz´o Linux bajo una licencia m´as restrictiva que la GPL, que permit´ıa que el software fuera libremente distribuido y modificado, pero prohib´ıa su uso para ganar dinero. Sin embargo, la GPL autoriza que la gente venda su software, aunque no le permite restringir el derecho que su comprador tiene a copiarlo y venderlo a su vez. En primer lugar, hay que aclarar que el “software libre” de la GPL no es software de dominio p´ublico. El software de dominio p´ublico carece de copyright y pertenece literalmente al p´ublico. El software regido por la GPL s´ı tiene el copyright de su autor o autores. Esto significa que est´a protegido por las leyes internacionales del copyright y que el autor del software est´a declarado legalmente. No solo porque un programa sea de libre distribuci´on puede consider´arsele del dominio p´ublico. El software regido por la GPL tampoco es “shareware”. Por lo general, el “shareware” es propiedad del autor, y exige a los usuarios que le paguen cierta cantidad por utilizarlo despu´es de la distribuci´on. Sin embargo, el software que se rige por la GPL puede ser distribuido y usado sin pagar a nadie. La GPL permite a los usuarios modificar el software y redistribuirlo. Sin embargo, cualquier trabajo derivado de un programa GPL se regir´a tambi´en por la GPL. En otras palabras, una compa˜n´ıa nunca puede tomar GNU/Linux, modificarlo y venderlo bajo una licencia restringida. Si un software se deriva de GNU/Linux, e´ ste deber´a regirse por la GPL tambi´en. La GPL permite distribuir y usar el software sin cargo alguno. Sin embargo, tambi´en permite que una persona u organizaci´on gane dinero distribuyendo el software. Sin embargo, cuando se venden programas GPL, el distribuidor no puede poner ninguna restricci´on a la redistribuci´on. Esto es, si usted compra un programa GPL, puede a su vez redistribuirlo gratis o cobrando una cantidad. Esto puede parecer contradictorio. ¿Por qu´e vender software cuando la GPL especifica que puede obtenerse gratis? Por ejemplo, supongamos que una empresa decide reunir una gran cantidad de software GPL en un CD-ROM y venderlo. La empresa necesitar´a cobrar por el hecho de haber producido el CD, y as´ımismo querr´a ganar dinero. Esto est´a permitido por la GPL. Las organizaciones que vendan el software regido por la GPL deben tener en cuenta algunas restricciones. En primer lugar, no pueden restringir ning´un derecho al comprador del programa. Esto significa que si usted compra un CD-ROM con software GPL, podr´a copiar ese CD y revenderlo sin ninguna restricci´on. En segundo lugar, los distribuidores deben hacer saber que el software se rige por la GPL. En tercer lugar, el vendedor debe proporcionar, sin coste adicional, el c´odigo fuente del software a distribuir. Esto permite a cualquiera comprar el software y modificarlo a placer. Permitir a una empresa distribuir y vender programas que son gratis es bueno. No todo el mundo tiene acceso a Internet para conseguir los programas, como GNU/Linux, gratis. La GPL permite a las empresas vender y distribuir programas a esas personas que no pueden acceder al software con un coste bajo. Por ejemplo, muchas empresas venden GNU/Linuxen disquetes o CD-ROM por correo, y hacen negocio de esas ventas. Los desarrolladores de GNU/Linuxpueden no tener constancia de estos negocios. Por ejemplo, Linus sabe que ciertas compa˜n´ıas venden GNU/Linux, y e´ l no va a cobrar nada por esas ventas. En el mundo del software libre, lo importante no es el dinero. El objetivo es permitir desarrollar y distribuir software fant´astico asequible a cualquiera. En la siguiente secci´on, hablaremos de c´omo esto se aplica al desarrollo de GNU/Linux.

˜ y filosof´ıa de GNU/Linux 1.6. Diseno En ocasiones, los nuevos usuarios de GNU/Linux se crean falsas expectativas acerca de e´ ste. GNU/Linux es un sistema operativo u´ nico, y es importante entender su filosof´ıa y dise˜no para usarlo de una manera

14

Introducci´on a GNU/Linux

eficiente. Aunque usted sea un experimentado “gur´u” de UNIX, lo que viene a continuaci´on le interesar´a con total seguridad. En las versiones comerciales de UNIX, el sistema se desarrolla siguiendo una rigurosa pol´ıtica de mantenimiento de la calidad, con sistemas de control de revisiones para las fuentes y documentaci´on, etc. Los desarrolladores no pueden a˜nadir cosas nuevas por su cuenta: cualquier cambio ser´a en respuesta a un informe de un bug detectado, y se registrar´a cuidadosamente en el sistema de control de versiones, de manera que podr´a volverse atr´as sin problemas. Cada desarrollador tiene asignada una o m´as partes del c´odigo, y solo ese desarrollador puede alterar esas secciones del c´odigo. Internamente, el departamento de calidad realiza rigurosas pruebas en cada nueva versi´on del sistema operativo, e informa de los errores. Es responsabilidad de los desarrolladores corregir esos errores. Se utiliza un complicado sistema de an´alisis estad´ıstico para asegurarse de que se corrige cierto porcentaje de errores antes de lanzar la versi´on siguiente. Como vemos, el proceso seguido por los desarrolladores de los UNIX comerciales para mantenerlo y darle soporte es muy complicado, pero razonable. La compa˜n´ıa debe tener cierta seguridad de que la pr´oxima revisi´on del sistema est´e lista para comercializarse, a trav´es de las pruebas que hemos comentado. Esto supone un gran trabajo que involucra a cientos (si no miles) de programadores, betatesters, redactores de documentaci´on y personal administrativo. Por supuesto, no todos los fabricantes de UNIX trabajan as´ı, pero esto nos da una idea de la panor´amica habitual. Con GNU/Linux, hay que olvidarse del concepto de desarrollo organizado, sistemas de control de versiones, informaci´on de errores estructurada o an´alisis estad´ısticos. GNU/Linux es un sistema operativo hecho por “hackers”6 Linux ha sido desarrollado principalmente por un grupo de programadores de todo el mundo unidos por Internet. A trav´es de Internet, cualquiera tiene la oportunidad de unirse al grupo y ayudar al desarrollo y depuraci´on del n´ucleo, portar nuevo software, escribir documentaci´on o ayudar a los nuevos usuarios. La comunidad de GNU/Linux se comunica principalmente mediante diversas listas de correo y grupos de USENET. Existen algunos acuerdos en el desarrollo, como que cualquiera que desee que su c´odigo sea incluido en la versi´on “oficial” del n´ucleo deber´a ponerse en contacto con Linus Torvalds, quien comprobar´a el c´odigo y lo incluir´a en el n´ucleo. Por lo general, estar´a encantado en hacerlo, siempre que no estropee otras cosas. El sistema se ha dise˜nado siguiendo una filosof´ıa abierta y de crecimiento. Por regla general hay una nueva versi´on del n´ucleo cada pocas semanas. Esto depende del n´umero de errores a corregir, la cantidad de informaci´on recibida de los usuarios, y lo que haya dormido Linus esta semana. Por lo tanto, resulta dif´ıcil decir que todos los errores vayan a poder corregirse para cierta fecha. Pero conforme el sistema va apareciendo libre de errores cr´ıticos o manifiestos, se considera “estable” y se lanzan nuevas revisiones. Hay que recordar que no se pretende realizar un sistema perfecto, sin errores. Se trata sencillamente de desarrollar una implementaci´on libre de UNIX. GNU/Linux est´a hecho para desarrolladores, m´as que para otro tipo de personas. Si alguien desarrolla una aplicaci´on o nueva caracter´ıstica para el n´ucleo, se a˜nade inicialmente en una fase “alfa”, es decir, pensada para que la puedan probar los usuarios m´as atrevidos aficionados a enredar con los problemas que surgen en el c´odigo cuando se encuentra en fases tempranas de desarrollo. Dado que la comunidad de GNU/Linux se basa sobre todo en Internet, el software “alfa” se env´ıa, normalmente, a servidores FTP dedicados a GNU/Linux (vea el ap´endice C) y se anuncia mediante un mensaje puesto en un grupo USENET dedicado a GNU/Linux. Los usuarios que descargan y prueban el software pueden entonces enviar sugerencias, correcciones de errores o preguntas al autor por correo electr´onico. Una vez que se corrigen los problemas iniciales, el c´odigo pasa a una fase “beta”, en la que se considera estable pero incompleto (o sea, funciona, pero no incluye todas las funcionalidades previstas). Tambi´en se puede pasar a una etapa “final” en la que el software se considera terminado. Recuerden que lo anterior son s´olo convenciones, y no leyes. Algunos programas pueden no necesitar fases “alpha”. Es el desarrollador quien tomar´a las decisiones al respecto en todo caso. Estar´a sorprendido de que un grupo de programadores y aficionados voluntarios, relativamente desorga6 Por “hacker” queremos referirnos a gente que programa con verdadera pasi´ on, por hobby, a explotar sus ordenadores al m´aximo, con resultados u´ tiles para otras personas. Este concepto es contrario al habitualmente aceptado, seg´un el cual un “hacker” es un pirata inform´atico.

1.7. Diferencias entre GNU/Linux y otros sistemas operativos

15

nizados, hayan podido hacer algo. Sin embargo, este grupo constituye uno de los m´as eficientes y motivados. Todo el n´ucleo de Linux se ha escrito desde cero, sin emplear c´odigo alguno de fuentes propietarias. Todo el software, bibliotecas, sistemas de ficheros y controladores se han desarrollado o se ha portado desde otros sistemas; y se han programado controladores para los dispositivos m´as populares. Normalmente, GNU/Linux se distribuye junto con otro software en lo que se conoce como una distribuci´on, un paquete de software que permite poner a punto un sistema completo. Dado que crear un sistema UNIX partiendo del n´ucleo y programas de diversas fuentes puede resultar dif´ıcil para los usuarios m´as noveles, se crearon las distribuciones con el fin de facilitar esta tarea: con una distribuci´on, usted s´olo tiene que tomar el CD-ROM o los disquetes y proceder a su instalaci´on para disponer de un sistema completo con programas de aplicaci´on incluidos. Como es de esperar, no hay ninguna distribuci´on “est´andar”. Hay muchas, cada una con sus ventajas e inconvenientes. Hablaremos m´as sobre distribuciones en la Secci´on 2.2.

1.7. Diferencias entre GNU/Linux y otros sistemas operativos Es importante entender las diferencias entre GNU/Linux y otros sistemas operativos, tales como MSDOS, OS/2, y otras implementaciones de UNIX para ordenador personal. Antes de nada, conviene aclarar que GNU/Linux puede convivir felizmente con otros sistemas operativos en la misma m´aquina: es decir, Ud. puede ejecutar MS-DOS y OS/2 en compa˜n´ıa de GNU/Linux sobre el mismo sistema sin problemas. Hay incluso formas de interactuar entre los diversos sistemas operativos como veremos.

1.7.1.

¿Por qu´e usar GNU/Linux?

¿Por qu´e usar GNU/Linux en lugar de un sistema operativo comercial conocido, bien probado, y bien documentado? Podr´ıamos darle miles de razones. Una de las m´as importantes es, sin embargo, que GNU/Linux es una excelente elecci´on para trabajar con UNIX a nivel personal. Si Ud. es un desarrollador de software UNIX, ¿por qu´e usar MS-DOS en casa? GNU/Linux le permitir´a desarrollar y probar el software UNIX en su PC, incluyendo aplicaciones de bases de datos y X Window. Si es Ud. estudiante, la oportunidad est´a en que los sistemas de su universidad ejecutar´an UNIX. Con GNU/Linux, podr´a ejecutar su propio sistema UNIX y adaptarlo a sus necesidades. La instalaci´on y uso de GNU/Linux es tambi´en una excelente manera de aprender UNIX si no tiene acceso a otras m´aquinas UNIX. Pero no perdamos la vista. GNU/Linux no es s´olo para los usuarios personales de UNIX. Es robusto y suficientemente completo para manejar grandes tareas, asi como necesidades de c´omputo distribuidas. Muchos negocios—especialmente los peque˜nos—se est´an cambiando a GNU/Linux en lugar de otros entornos de estaci´on de trabajo basados en UNIX. Las universidades encuentran a GNU/Linux perfecto para dar cursos de dise˜no de sistemas operativos. Grandes vendedores de software comercial se est´an dando cuenta de las oportunidades que puede brindar un sistema operativo gratuito.

1.7.2.

GNU/Linux frente a MS-DOS

No es raro tener ambos, GNU/Linux y MS-DOS, en el mismo sistema. Muchos usuarios de GNU/Linux conf´ıan en MS-DOS para aplicaciones tales como procesadores de texto. Aunque GNU/Linux proporciona sus propios an´alogos para estas aplicaciones (por ejemplo, TEX), existen varias razones por las que un usuario concreto desear´ıa ejecutar tanto MS-DOS como GNU/Linux. Si toda su tesis est´a escrita en WordPerfect 7 para MS-DOS, puede no ser capaz de convertirla f´acilmente a TEXo alg´un otro formato. Hay muchas aplicaciones comerciales para MS-DOS que no est´an disponibles para GNU/Linux, y no hay ninguna raz´on por la que no pueda usar ambos. Como puede saber, MS-DOS no utiliza completamente la funcionalidad de los procesadores 80386 y 80486. Por otro lado, GNU/Linux corre completamente en el modo protegido del procesador y explota todas las caracter´ısticas de e´ ste. Puede acceder directamente a toda su memoria disponible (e incluso m´as all´a de la disponible, usando RAM virtual). GNU/Linux proporciona un interfaz UNIX completo no disponible bajo MS-DOS—el desarrollo y adaptaci´on de aplicaciones UNIX bajo GNU/Linux es cosa f´acil, mientras que, 7 N.

del T.: El ejemplo del autor se ha quedado obsoleto: Ya existe un WordPerfect 6.1 nativo para GNU/Linux

16

Introducci´on a GNU/Linux

bajo MS-DOS, Ud. est´a limitado a un peque˜no subgrupo de la funcionalidad de programaci´on UNIX. Al ser GNU/Linux un verdadero sistema UNIX, Ud. no tendr´a estas limitaciones. Podr´ıamos debatir los pros y contras de MS-DOS y GNU/Linux durante p´aginas y p´aginas. Sin embargo, baste decir que GNU/Linux y MS-DOS son entidades completamente diferentes. MS-DOS no es caro (comparado con otros sistemas operativos comerciales), y tiene un fuerte asentamiento en el mundo de los PC’s. Ning´un otro sistema operativo para PC ha conseguido el nivel de popularidad de MS-DOS—b´asicamente porque el coste de esos otros sistemas operativos es inaccesible para la mayor´ıa de los usuarios de PC’s. Muy pocos usuarios de PC pueden imaginar gastarse 200000 ptas. o m´as solamente en el sistema operativo. GNU/Linux, sin embargo, es gratis, y por fin tiene la oportunidad de decidirse. Le permitiremos emitir sus propios juicios de GNU/Linux y MS-DOS basados en sus expectativas y necesidades. GNU/Linux no est´a destinado a todo el mundo. Si siempre ha querido tener un sistema UNIX completo en casa, si es alto el coste de otras implementaciones UNIX para PC, GNU/Linux puede ser lo que estaba buscando.

1.7.3.

GNU/Linux frente a otros sistemas operativos

Est´an surgiendo un gran n´umero de sistemas operativos avanzados en el mundo del PC. Concretamente, OS/2 de IBM y Windows NT de Microsoft comienzan a tener popularidad a medida que los usuarios de MS-DOS migran a ellos. Ambos, OS/2 y Windows NT son sistemas operativos completamente multitarea, muy parecidos a GNU/Linux. T´ecnicamente, OS/2, Windows NT y GNU/Linux son bastante similares: Soportan aproximadamente las mismas caracter´ısticas en t´erminos de interfaz de usuario, redes, seguridad, y dem´as. Sin embargo, la diferencia real entre GNU/Linux y los otros es el hecho de que GNU/Linux es una versi´on de UNIX, y por ello se beneficia de las contribuciones de la comunidad UNIX en pleno. ¿Qu´e hace a UNIX tan importante? No s´olo es el sistema operativo m´as popular para m´aquinas multiusuario, tambi´en es la base de la mayor´ıa del mundo del software de libre distribuci´on. Si tiene acceso a Internet, casi todo el software de libre distribuci´on disponible est´a espec´ıficamente escrito para sistemas UNIX. (Internet en s´ı est´a profundamente basada en UNIX.) Hay muchas implementaciones de UNIX, de muchos vendedores, y ni una sola organizaci´on es responsable de su distribuci´on. Hay un gran pulso en la comunidad UNIX por la estandarizaci´on en forma de sistemas abiertos, pero ninguna corporaci´on controla este dise˜no. Por eso, ning´un vendedor (o, como parece, ning´un hacker) puede adoptar estos est´andares en una implementaci´on de UNIX. Por otro lado, OS/2 y Windows NT son sistemas propietarios. El interfaz y dise˜no est´an controlados por una sola corporaci´on, y s´olo esa corporaci´on puede implementar ese dise˜no. (No espere encontrar una versi´on gratis de OS/2 en un futuro cercano.) De alguna forma, este tipo de organizaci´on es beneficiosa: establece un est´andar estricto para la programaci´on y el interfaz de usuario distinto al encontrado incluso en la comunidad de sistemas abiertos. Varias organizaciones est´an intentando estandarizar el modelo de programaci´on, pero la tarea es muy dif´ıcil. GNU/Linux, en particular, es en su mayor´ıa compatible con el estandar POSIX.1 para el interfaz de programaci´on UNIX. A medida que pase el tiempo, se espera que el sistema se adhiera a otros estandares, pero la estandarizaci´on no es la etapa primaria en la comunidad de desarrollo de GNU/Linux.

1.7.4.

GNU/Linux frente a otras implementaciones de UNIX

Hay otras implementaciones de UNIX para el 80386 y 80486. La arquitectura 80386 se presta al dise˜no de UNIX y buen un n´umero de vendedores han sacado ventaja de este factor. Hablando de caracter´ısticas, otras implementaciones de UNIX para PC son bastante similares a GNU/Linux. Podr´a ver que casi todas las versiones comerciales de UNIX soportan b´asicamente el mismo software, entorno de programaci´on, y caracter´ısticas de red. Sin embargo, hay algunas fuertes diferencias entre GNU/Linux y las versiones comerciales de UNIX. En primer lugar, GNU/Linux soporta un rango de hardware diferente de las implementaciones comerciales. En general, GNU/Linux soporta la mayor´ıa de dispositivos hardware conocidos, pero el soporte est´a a´un limitado a ese hardware al que los desarrolladores tengan acceso actualmente. Sin embargo, los vendedores

1.8. Requerimientos de hardware

17

de UNIX comercial por lo general tienen una base de soporte m´as amplia, y tienden a soportar m´as hardware, aunque GNU/Linux no esta tan lejos de ellos. Cubriremos los requerimientos hardware de GNU/Linux en la Secci´on 1.8. En lo que concierne a estabilidad y robustez, muchos usuarios han comentado que GNU/Linux es al menos tan estable como los sistemas UNIX comerciales. GNU/Linux est´a a´un en desarrollo, el hecho de trabajar en dos frentes, produce versiones estables a la vez sin parar el desarrollo. El factor m´as importante a considerar por muchos usuarios es el precio. El software de GNU/Linux es gratis, si tiene acceso a Internet (o a otra red de ordenadores) y puede descarg´arselo. Si no tiene acceso a tales redes, tiene la opci´on de comprarlo pidi´endolo por correo en disquetes, cinta o CD-ROM (vea el Ap´endice D). Por supuesto, Ud. puede copiarse GNU/Linux de un amigo que puede tener ya el software, o compartir el coste de comprarlo con alguien m´as. Si planea instalar GNU/Linux en un gran n´umero de m´aquinas, s´olo necesita comprar una copia del software—GNU/Linux no se distribuye con licencia para “una sola m´aquina”. El valor de las implementaciones comerciales de UNIX no deber´ıa ser rebajado: conjuntamente con el precio del software en s´ı, uno paga generalmente por la documentaci´on, el soporte, y una etiqueta de calidad. Estos factores son muy importantes para grandes instituciones, pero los usuarios de ordenadores personales pueden no necesitar esos beneficios. En cualquier caso, muchos negocios y universidades encuentran que ejecutar GNU/Linux en un laboratorio con ordenadores baratos es preferible a ejecutar una versi´on comercial de UNIX en un laboratorio de estaciones de trabajo. GNU/Linux es capaz de proporcionar la funcionalidad de una estaci´on de trabajo sobre hardware de PC a una fracci´on de su coste. Como un ejemplo del “mundo real” sobre el uso de GNU/Linux dentro de la comunidad inform´atica, los sistemas GNU/Linux han viajado hasta los grandes mares del Pac´ıfico Norte, encarg´andose de las telecomunicaciones y an´alisis de datos para en un buque de investigaci´on oceanogr´afica. Los sistemas GNU/Linux se est´an usando en estaciones de investigaci´on en la Ant´artida. Como ejemplo m´as mundano, quiz´a, varios hospitales est´an usando GNU/Linux para mantener registros de pacientes. Hay otras implementaciones gratuitas o baratas de UNIX para el 386 y 486. Una de las m´as conocidas es 386BSD, una implementaci´on y adaptaci´on del UNIX BSD para el 386. 386BSD es comparable a GNU/Linux en muchos aspectos, pero cual de ellos es “mejor” depende de las necesidades y espectativas personales. La u´ nica distinci´on fuerte que se puede hacer es que GNU/Linux se desarrolla abiertamente (donde cualquier voluntario puede colaborar en el proceso de desarrollo), mientras 386BSD se desarrolla dentro de un equipo cerrado de programadores que mantienen el sistema. Debido a esto, existen diferencias filos´oficas y de dise˜no serias entre los dos proyectos. Los objetivos de los dos proyectos son completamente distintos: el objetivo de GNU/Linux es desarrollar un sistema UNIX completo desde el desconocimiento (y divertirse mucho en el proceso), y el objetivo de 386BSD es en parte modificar el c´odigo de BSD existente para usarlo en el 386. NetBSD es otra adaptaci´on de la distribuci´on NET/2 de BSD a un n´umero de m´aquinas, incluyendo el 386. NetBSD tiene una estructura de desarrollo ligeramente m´as abierta, y es comparable al 386BSD en muchos aspectos. Otro proyecto conocido es HURD, un esfuerzo de la Free Software Foundation (Fundaci´on de Software Libre) para desarrollar y distribuir una versi´on gratis de UNIX para muchas plataformas. Contacte con la Free Software Foundation (la direcci´on se da en el Ap´endice E) para obtener m´as informaci´on sobre este proyecto. Al tiempo de escribir este documento, HURD a´un est´a en los primeros pasos de su desarrollo. Tambi´en existen otras versiones baratas de UNIX, como Minix (un cl´onico de UNIX acad´emico, pero u´ til, en el que se basaron los primeros pasos del desarrollo de GNU/Linux). Algunas de estas implementaciones son de inter´es en mayor parte acad´emico, mientras otras son sistemas ya maduros para productividad real.

1.8. Requerimientos de hardware Ahora debe estar convencido de lo maravilloso que es GNU/Linux y de las estupendas cosas que puede hacer por usted. Sin embargo, antes de que se precipite e instale el software, tiene que asegurarse de los requerimientos y limitaciones de hardware de GNU/Linux. Tenga en cuenta que GNU/Linux fue desarrollado por sus usuarios. Esto significa, en la mayor´ıa de las ocasiones, que el hardware soportado por GNU/Linux es u´ nicamente aqu´el al que usuarios y desarrolladores tienen realmente acceso. Seg´un van apareciendo, se van soportando la mayor parte del hardware y los

18

Introducci´on a GNU/Linux

perif´ericos populares para sistemas 80386/80486 (de hecho, GNU/Linux soporta m´as hardware que algunas implementaciones comerciales de UNIX). Sin embargo, a´un no son reconocidos algunos de los perif´ericos m´as oscuros. Otro inconveniente en el soporte de hardware bajo GNU/Linux es que muchas compa˜n´ıas han decidido conservar las especificaciones del interfaz de su hardware en propiedad. Como consecuencia de e´ sto, los desarrolladores voluntarios de GNU/Linux simplemente no pueden escribir controladores (drivers) para esos perif´ericos (y si pudieran, tales controladores ser´ıan propiedad de la compa˜n´ıa due˜na del interfaz, lo cual violar´ıa la GPL). Las compa˜n´ıas que mantienen interfaces en propiedad, escriben sus propios controladores para sistemas operativos como MS-DOS y Microsoft Windows; el usuario final (es decir, usted) no necesita saber nada del interfaz. En algunos casos, los programadores han intentado escribir controladores “clonados” bas´andose en supuestos acerca del interfaz. En otras ocasiones, los desarrolladores trabajar´an con la compa˜n´ıa en cuesti´on e intentar´an obtener informaci´on del interfaz del perif´erico con un nivel de e´ xito que puede variar. En las siguientes secciones, trataremos de resumir los requerimientos hardware para GNU/Linux. El documento Hardware HOWTO (ver Secci´on 1.9) contiene un listado m´as completo del hardware soportado por GNU/Linux. Aclaraci´on: Gran parte del soporte para hardware para GNU/Linux est´a actualmente en fase de desarrollo. Algunas distribuciones puede que soporten, o no, estas caracter´ısticas experimentales. Esta secci´on presenta en primer lugar el hardware que ya lleva cierto tiempo soportado y del que se sabe de su estabilidad. En caso de duda, consulte la documentaci´on de la distribuci´on de GNU/Linux que est´a usando (ver Secci´on 2.2 para m´as informaci´on acerca de las distribuciones de GNU/Linux). ´ GNU/Linux est´a disponible para muchas plataformas adem´as de sistemas Intel 80x86. Estas incluyen Macintosh, Amiga, Sun SparcStation y sistemas Alpha de Digital Equipment Corporation. En este libro, sin embargo, nos centraremos en los procesadores Intel 80386, 80486 y Pentium, as´ı como en los cl´onicos AMD, Cyrix e IBM.

1.8.1.

Requisitos de Placa Base y de CPU

Actualmente GNU/Linux soporta sistemas con una CPU Intel 80386, 80486, o Pentium. Esto incluye todas las variantes del tipo de CPU, como el 386SX, 486SX, 486DX, y 486DX2. Los cl´onicos tambi´en funcionan con GNU/Linux. GNU/Linux ya soporta otras arquitecturas tales como Alpha y PowerPc de Apple. Si tiene un 80386 o 80486SX, puede que tambi´en quiera aprovechar el coprocesador matem´atico, si bien no es imprescindible (el n´ucleo de GNU/Linux puede emular el coprocesador si no cuenta con uno). Est´an soportados todos los copros est´andar, tales como los IIT, Cyrix FasMath e Intel. La placa base debe ser de arquitectura ISA o EISA en cuanto a bus se refiere. Estos t´erminos definen c´omo interact´ua el sistema con los perif´ericos y otros componentes por medio del bus principal. La mayor´ıa de los sistemas vendidos hoy son de bus ISA o EISA. El bus MicroChannel (MCA), que se encuentra en m´aquinas como los IBM/PS2 no est´a soportado actualmente. Las placas bases de muchos PC est´an basadas en los bus PCI, pero tambi´en tienen ranuras ISA. GNU/Linux soporta esta conficuraci´on, as´ı como sistemas con bus EISA y VESA. El bus de MicroChannel de IBM (MCA), que aparece en muchos sistemas PS/2 de IBM, es significativamente diferente y recientemente se ha a˜nadido el soporte para dichos sistemas.

1.8.2.

Requisitos de memoria

GNU/Linux, comparado con otros sistemas operativos avanzados, necesita muy poca memoria para funcionar. Deber´ıa contar con un m´ınimo de 4 megabytes de RAM; sin embargo, es altamente recomendable tener 16 megabytes. Cuanta m´as memoria tenga m´as r´apido ir´a su sistema. Para la instalaci´on de algunas distribuciones se necesita m´as RAM. GNU/Linux soporta el rango completo de direcciones de 32-bits de los 386/486; es decir, utilizar´a toda la memoria RAM de forma autom´atica. GNU/Linux funciona con tan s´olo 4 megabytes de RAM, incluyendo aplicaciones “pedig¨ue˜nas” como XWindow,GNU Emacs, y dem´as. Sin embargo, disponer de m´as memoria es casi tan importante como tener un

Requerimientos de Hardware

19

procesador m´as r´apido. 16 megabytes es m´as que suficiente para uso personal y 32 mebabytes o m´as pueden ser necesarios si espera una fuerte carga de usuarios en el sistema. La mayor´ıa de los usuarios de GNU/Linux, reservan una parte del disco duro para espacio de intercambio 8 que se usa como RAM virtual. Incluso si dispone de bastante memoria RAM f´ısica en su m´aquina, puede que quiera utilizar un a´ rea de intercambio . El a´ rea de intercambio no puede reemplazar a una memoria f´ısica RAM real, pero puede permitir a su sistema ejecutar aplicaciones m´as grandes guardando en disco duro aquellas partes de c´odigo que est´an inactivas. La cantidad de espacio de intercambio a reservar depende de diversos factores; volveremos a esta cuesti´on en el Cap´ıtulo 2.

1.8.3.

Requisitos de la controladora de disco duro

Es posible ejecutar GNU/Linux desde un disquete o algunas distribuciones, directamente desde el CDROM, pero para un buen funcionamiento, es necesario tener espacio en el disco duro. GNU/Linux puede coexistir con otros sistemas operativos—s´olo necesita una o varias particiones del disco. GNU/Linux soporta todos los controladores IDE y EIDE, as´ı como los m´as antiguos MFM y RLL. Se soportan muchos, pero no todos, los controladores ESDI. La regla general para controladoras que no sean SCSI, es que si puede acceder a las unidades (disco y/o disquete) desde MS-DOS u otro sistema operativo, deber´ıa poder hacerlo desde GNU/Linux. GNU/Linux tambi´en soporta un amplio n´umero de controladores SCSI. Esto incluye muchas tarjetas Adaptec y Buslogic, as´ı como las basadas en el conjunto de chips NCR.

1.8.4.

Requisitos de espacio en disco

Efectivamente, para instalar GNU/Linux, necesitar´a tener algo de espacio libre en su disco duro. GNU/Linux soporta m´ultiples discos duros en la misma m´aquina; puede disponer de espacio para GNU/Linux en m´ultiples unidades si es necesario. La cantidad de espacio en disco duro que necesitar´a depende en gran medida de sus necesidades y de la cantidad de software que va a instalar. GNU/Linux es relativamente peque˜no en relaci´on a las implementaciones de UNIX; usted podr´ıa ejecutar un sistema completo con 20 megabytes de espacio en disco. Sin embargo, si quiere disponer de espacio para expansiones, y para paquetes m´as grandes como X-Window, necesitar´a m´as espacio. Si planea permitir a m´ultiples usuarios utilizar la m´aquina, tendr´a que dejar espacio para sus ficheros. Las necesidades realistas de espacio podr´ıan oscilar entre 200 megabytes y 1 gigabyte o m´as. Tambi´en necesitar´a crear espacio de intercambio 9 , para ser usado como RAM virtual. Comentaremos todos estos detalles acerca de la instalaci´on y uso del espacio de intercambio en la Secci´on 2.1. Cada distribuci´on de GNU/Linux normalmente viene con alg´un que otro texto que deber´ıa ayudarle a estimar la cantidad precisa de espacio a reservar en funci´on del software que planee instalar. Vea la informaci´on que viene con su distribuci´on o la secci´on de instalaci´on del Cap´ıtulo 2 .

1.8.5.

Requisitos de monitor y adaptador de v´ıdeo

GNU/Linux soporta todas las tarjetas de v´ıdeo est´andar Hercules, CGA, EGA, VGA, IBM monocromo, y Super VGA as´ı como monitores para el interfaz por defecto basado en texto. En general, si la combinaci´on que tiene de monitor y tarjeta de v´ıdeo funcionan bajo otro sistema operativo como MS-DOS, deber´ıa funcionar perfectamente con GNU/Linux. La tarjetas CGA de IBM genuinas sufren el (d)efecto nieve 10 bajo GNU/Linux, por lo que no es muy recomendable su uso. Los entornos gr´aficos como el Sistema X-Window tienen necesidades propias de hardware para la tarjeta de v´ıdeo. En vez de listar estos requerimientos aqu´ı, los trataremos en la Secci´on 5.1. Se soportan las tarjetas de v´ıdeo m´as populares y el soporte para las nuevas se a˜nade regularmente. 8 N.

del T.: “swap”

9 swap 10 N.

del T.: snow

20

1.8.6.

Introducci´on a GNU/Linux

Hardware diverso

La mayor´ıa de los usuarios tienen dispositivos de CD-ROM, rat´on, tarjetas de sonido y dem´as y est´an interesados en saber si este hardware es o no, soportado por GNU/Linux. 1.8.6.1.

Ratones y otros dispositivos apuntadores

Normalmente usted s´olo usar´a un rat´on bajo un entorno gr´afico como el Sistema X-Window. Sin embargo, algunas aplicaciones GNU/Linux no asociadas con un entorno gr´afico, hacen uso del rat´on. GNU/Linux soporta todos los ratones serie est´andar, incluyendo Logitech, MM series, Mouseman, Microsoft (2 botones) y Mouse Systems (3 botones). GNU/Linux tambi´en soporta los ratones de bus Microsoft, Logitech, y ATIXL. El interfaz de rat´on de PS/2 tambi´en es soportado. Todos los dem´as dispositivos apuntadores, como los “trackball” que emulen a los dispositivos de arriba, tambi´en funcionan. 1.8.6.2. Unidades de CD-ROM Muchas de las unidades de CD-ROM se conectan a los controladores IDE est´andar. Otra interfaz com´un para las unidades de CD-ROM es la SCSI. El soporte SCSI incluye m´ultiples unidades l´ogicas por dispositivo, por lo que se pueden utilizar “jukebokes” de CD-ROM. Adem´as, hay un amplio n´umero de unidades de CDROM que se ha comprobado funcionan bajo GNU/Linux, incluyendo el NEC CDR-74, Sony CDU-541, y Texel DM-3024. Las unidades internas Sony CDU-31a y Mistsumi tambi´en est´an soportadas por GNU/Linux. GNU/Linux soporta el sistema de ficheros est´andar para CD-ROMs ISO-9660 y las extensiones de ficheros de sistema High Sierra. 1.8.6.3.

Unidades de cinta

Algunas unidades de cinta tipo SCSI, incluidas “quarter inch”, DAT y 8MM est´an soportadas si el controlodor SCSI est´a soportado a su vez. Unidades que se conectan al controlador de disquete como unidades de cinta de disquete, tambi´en se soportan, as´ı como otros interfaces como QIC-02. 1.8.6.4.

Impresoras

GNU/Linux soporta todas las impresoras en el puerto paralelo. Si puede acceder a su impresora por el puerto paralelo desde MS-DOS, u otro sistema operativo, deber´ıa poder acceder a e´ l desde GNU/Linux tambi´en. El software de impresi´on de GNU/Linux consiste en el software est´andar de UNIX lp y lpr. Este software tambi´en le permite imprimir remotamente a trav´es de la red, si es que tiene una disponible. GNU/Linux tambi´en incluye software para manejar ficheros Postscript. 1.8.6.5.

Modems

Igual que para las impresoras, GNU/Linux soporta toda la gama de modems serie, tanto internos como externos. Hay una gran cantidad de software de telecomunicaciones disponible para GNU/Linux, incluyendo Kermit, pcomm, minicom, Seyon. Si su m´odem es accesible desde otro sistema operativo en la misma m´aquina, deber´ıa poder acceder a e´ l sin dificultad desde GNU/Linux.

1.8.7.

Tarjetas Ethernet

GNU/Linux soporta un buen n´umero de tarjetas Ethernet y adaptadores para LAN. GNU/Linux tambi´en soporta algunas tarjetas FDDI, “frame relay” y “token ring”, adem´as de todas las tarjetas Arcnet. Una lista de las tarjetas de red soportadas, se incluye en el fichero fuente del n´ucleo de su distribuci´on.

1.9. Fuentes de informaci´on sobre GNU/Linux

21

1.9. Fuentes de informaci´on sobre GNU/Linux Como podr´a imaginar, adem´as de este libro, hay muchas otras fuentes de informaci´on sobre Linux. Concretamente, hay numerosos libros sobre UNIX en general, que recomendamos a aquellos lectores que no tengan experiencia previa con UNIX. Si somos nuevos en UNIX, lo m´as indicado es leer uno de estos libros antes de meternos en la “peligrosa selva” de GNU/Linux. Un buen comienzo puede ser el libro Learning the UNIX Operating System, de Grace Todino y John Strang. Casi todas las fuentes de informaci´on sobre GNU/Linux est´an disponibles principalmente de forma electr´onica. Esto es, deber´a tener acceso a una red, como Internet, USENET o Fidonet, con el fin de obtener la documentaci´on. Un buen sitio para empezar es www.linuxresources.com (ver Ap´endice A). Si no tiene acceso a ninguna red, siempre puede encontrar la forma de obtener copias impresas en disquetes o CDROM de los libros.

1.9.1.

Documentaci´on en-l´ınea

Si tiene acceso a Internet, encontrar´a variada documentaci´on en muchos servidores de FTP del mundo. Si no tiene acceso directo a Internet, a´un puede obtener los documentos: muchos distribuidores de GNU/Linux en CDROM incluyen toda o casi toda la documentaci´on existente en la red. Adem´as, se suelen distribuir por redes diferentes como Fidonet o Compuserve. Y si tiene acceso u´ nicamente al correo en Internet, puede obtener ficheros de servidores FTP sin m´as que usar un servidor de ftpmail. Vea el ap´endice C para m´as informaci´on. Hay gran cantidad de servidores FTP que distribuyen software y documentaci´on de GNU/Linux. En el ap´endice C encontrar´a una lista con servidores conocidos. Con el fin de reducir el tr´afico de red, deber´ıa utilizar el servidor que le quede m´as cercano11 geogr´aficamente. El Ap´endice A incluye una lista de algunos de los documentos sobre GNU/Linux que se encuentran disponibles por FTP an´onimo. Los nombres de los ficheros pueden no ser los mismos en todos los servidores, pero suelen estar en el directorio docs dentro del directorio que dediquen a GNU/Linux. Por ejemplo, en sunsite.unc.edu los ficheros de GNU/Linux est´an en /pub/linux y la documentaci´on en /pub/linux/docs. Algunos documentos que puede encontrar son las GNU/Linux FAQ, una colecci´on de FAQ sobre GNU/Linux; los documentos HOWTO, dedicados a aspectos espec´ıficos del sistema, como la configuraci´on de impresoras y spoolers (Printing HOWTO), tarjetas Ethernet (Ethernet HOWTO) y las GNU/Linux META-FAQ, que es una lista de las fuentes de informaci´on disponibles en Internet. Algunos documentos se env´ıan regularmente a uno o m´as grupos USENET sobre GNU/Linux. No deje de leer la Secci´on 1.9.4 sobre el tema de las noticias.

1.9.2.

GNU/Linux en el WWW

La p´agina inicial de la documentaci´on de GNU/Linux en el Web se encuentra en la direcci´on URL http://sunsite.unc.edu/mdw/linux.html

Desde esta p´agina puede accederse a los HOWTOs y otros documentos en formato HTML. Tambi´en se encuentran enlaces a otros servidores de inter´es como ssc.com, p´agina inicial de la revista Linux Journal, de periodicidad mensual. Se puede encontrar en http://www.ssc.com/.

1.9.3.

Libros y otras publicaciones

En este momento, hay algunos trabajos publicados sobre GNU/Linux. Principalmente, los libros del Proyecto de Documentaci´on de Linux (LDP), que se lleva a cabo mediante Internet para escribir y distribuir una colecci´on de manuales para GNU/Linux. Estos manuales son an´alogos a los que se publican junto con versiones comerciales de UNIX: tratan la instalaci´on y puesta en marcha, programaci´on, trabajo en red, asuntos del n´ucleo y muchas cosas m´as. 11 N.

del T.: Vea el ap´endice B para localizar una lista de ftps espa˜noles

22

Introducci´on a GNU/Linux

Los manuales del LDP se encuentran disponibles mediante FTP an´onimo en Internet, as´ı como por correo a trav´es de algunos comercios. En el ap´endice A se enumeran los manuales disponibles y c´omo conseguirlos. Gran cantidad de editoriales como MIT:Press, Digital Press, O’Reilly & Associates y SAMS han dado el salto a GNU/Linux. Se pueden encontrar en bibliotecas especializadas o en la p´agina web de SSC en http://www.ssc.com, incluso tambien el la p´agina web de la revista Linux Journal, http://www.linuxjournal.com. No hay muchos m´as libros que traten el tema particular de GNU/Linux. Sin embargo, s´ı que hay numerosos libros sobre UNIX en general que normalmente son aplicables a GNU/Linux, como aquellos sobre c´omo utilizar o programar sobre el sistema UNIX, ya que GNU/Linux no difiere mucho en su interfaz con el usuario o programador. En resumen, lo que quiera saber sobre el uso y programaci´on de GNU/Linux lo encontrar´a en los libros sobre UNIX. De hecho, este libro es un suplemento a los libros disponibles de UNIX. Aqu´ı, se presentan los detalles espec´ıficos de GNU/Linux m´as importantes y esperamos que busque en otros lugares para informaci´on m´as detallada. Armado con buenos libros sobre UNIX y este libro, deber´ıa ser capaz de enfrentarse a cualquier problema. Encontrar´a los nombres de algunos libros recomendados sobre UNIX en el ap´endice A. Tambi´en existe un magazine mensual sobre GNU/Linux, el GNU/Linux Journal. Se distribuye por todo el mundo y es una excelente manera de mantenerse al d´ıa en este tema, sobre todo si no se tiene acceso a USENET. En el ap´endice A encontrar´a informaci´on sobre c´omo suscribirse a esta publicaci´on.

1.9.4.

Grupos de Noticias USENET

“USENET” es un foro mundial de art´ıculos electr´onicos organizado en “grupos”, o sea, a´ reas de discusiones relacionadas con cada tema concreto. Buena parte del desarrollo de GNU/Linux ha sido a trav´es de Internet y USENET, con lo que no es extra˜no que existan bastantes grupos que traten el tema. Inicialmente, el grupo sobre GNU/Linux era alt.os.linux, y se cre´o para tratar aqu´ı las cuestiones que sobre GNU/Linux abundaban ya en comp.os.minix y varias listas de correo. El tr´afico en el grupo de GNU/Linux fue creciendo lo suficiente como para permitirse el paso a la jerarqu´ıa comp, en Febrero de 1992. comp.os.linux se ha convertido en un grupo de News muy conocido, m´as que cualquier otro de comp.os. En Diciembre del 92 se vot´o la creaci´on del grupo comp.os.linux.announce para reducir el tr´afico de comp.os.linux. En Julio de 1993 se parti´o este grupo de forma definitiva en la jerarqu´ıa que hoy existe. Si no tiene acceso a USENET, pero s´ı puede usar el correo electr´onico, existen pasarelas de correo a noticias disponibles para cada uno de los grupos siguientes. comp.os.linux.advocacy Un grupo para la discusi´on sobre los beneficios de GNU/Linux respecto a otros sistemas operativos. comp.os.linux.alpha Se debe usar para todas las discusiones relacionadas con la compra, instalaci´on, ejecuci´on, mantenimiento y desarrollo de los sistemas GNU/Linux basados el el procesador Alpha de Digital. comp.os.linux.announce comp.os.linux.announce es un grupo moderado, pensado para anuncios importantes respecto a GNU/Linux (como informes sobre errores detectados, lanzamiento de parches, etc). Si quiere leer grupos de GNU/Linux, empiece por e´ ste. Los art´ıculos que aqu´ı se publican no son reenviados a ning´un otro grupo normalmente. En e´ l se pueden encontrar adem´as muchos art´ıculos que se env´ıan peri´odicamente, incluyendo documentos ya mencionados como los HOWTOs. Los env´ıos al grupo deben ser aceptados por los moderadores, Matt Welsh y Lars Wirzenius. Si quiere enviar algo, normalmente basta con que lo ordene a su software de noticias.

1.9. Fuentes de informaci´on sobre GNU/Linux

23

Este software se ocupar´a de enviar el art´ıculo a los moderadores para que lo acepten. Sin embargo, si su sistema no est´a correctamente configurado, puede enviarlo directamente a la direcci´on de correo [emailprotected]. comp.os.linux.answers Para enviar FAQs, HOWTOs, READMEs y otros documentos que respondan dudas sobre GNU/Linux. Esto ayudar´a a disminuir el tr´afico de otros grupos c.o.l.* y dejar´a libre comp.os.linux.announce para verdaderos anuncios. comp.os.linux.development.apps Un grupo de noticias sin moderar, para preguntas y discusiones acerca de aplicaciones para GNU/Linux y sobre la migraci´on de aplicaciones a GNU/Linux. comp.os.linux.development.system Un grupo de noticias sin moderar, para discusiones sobre el desarrollo de todo lo relacionado con el n´ucleo, controladores de dispositivos y m´odulos cargables para el sistema GNU/Linux. comp.os.linux.hardware Este grupo de noticias es para preguntas y discusiones espec´ıficas sobre alg´un componenete hardware, por ejemplo: “¿Puede este sistema ejecutar GNU/Linux?”,¿C´omo puedo utilizar esta unidad de disco con GNU/Linux?”, etc. comp.os.linux.m68k De inter´es y para el desarrollo de la migraci´on de GNU/Linux de la arquitectura Motorola 680x0. comp.os.linux.misc Todas las discusiones que no se ajustan a otros grupos de noticias de GNU/Linux tienen aqu´ı su sitio, adem´as de otros “discursos” y discusiones no t´ecnicas. comp.os.linux.networking Discusiones relacionadas con redes y comunicaciones, incluyendo tarjetas Ethernet, SLIP y PPP. comp.os.linux.setup Preguntas y discusiones acerca de la instalaci´on de GNU/Linux y su administraci´on. comp.os.linux.x Discusiones acerca de las caracter´ısticas u´ nicas de X Window para GNU/Linux, incluyendo servidores, clientes, fuentes y bibliotecas. Esta lista no est´a completa. Nuevos grupos se crean cuando se detecta la necesidad de una divisi´on o subdivisi´on, adem´as de los grupos linux que hay en otras jerarqu´ıas 12 .

1.9.5.

Listas de correo en Internet

Si tiene acceso al correo electr´onico de Internet, puede aun participar en las listas de correo aunque no tenga acceso a USENET. A estas listas de correo puede apuntarse incluso sin tener acceso alguno a Internet, gracias a las pasarelas que ofrecen otros servicios, como UUCP, FidoNET o CompuServe. Para m´as informaci´on sobre las listas de correo de GNU/Linux, env´ıe un mensaje de correo a: [emailprotected] Con una l´ınea en el cuerpo de mensaje con la palabra help, se le responder´a con un mensaje que describe c´omo subscribirse y darse de baja en varias listas de correo. La palabra lists en una l´ınea hace que se nos 12 N.

del T.: Por ejemplo en es.comp.os.linux

24

Introducci´on a GNU/Linux

responda con las listas de correo accesibles a trav´es del servidor majordomo.vger.rutgers.edu. Hay adem´as, varias listas de correo de GNU/Linux espec´ıficas. El mejor camino para encontrarlas es leer los anuncios aparecidos en USENET, y el listado de “listas de correo” disponible peri´odicamente en el grupo news.answers.

1.10. C´omo obtener ayuda Indudablemente, necesitar´a cierta ayuda durante sus primeras aventuras en el mundo de GNU/Linux. Aqu´ı veremos algunas indicaciones sobre c´omo obtener esa ayuda. La forma m´as inmediata de buscar ayuda es mediante las listas de correo y grupos de USENET que se mantienen en Internet, tal como explicamos en la Secci´on 1.9. Si no tiene acceso a estas fuentes, puede encontrar ayuda en otros servicios on-line como los BBS’s o Compuserve. Tambi´en encontrar´a ayuda dentro de Linux Journal, en la p´agina http://www.linuxjournal.com/techsup.html. Tambi´en hay ciertas empresas que dan servicio t´ecnico comercial de GNU/Linux. Esto le permitir´a pedir ayuda a los t´ecnicos a cambio del pago de una cuota. El ap´endice D contiene una lista de comerciantes de GNU/Linux, alguno de los cuales ofrece soporte t´ecnico. Sin embargo, si tiene acceso a USENET y al correo de Internet, ver´a que puede obtener servicio t´ecnico de calidad y gratuito. Lo que sigue son sugerencias que le hacemos para mejorar su experiencia con GNU/Linux y garantizarle mayor probabilidad de e´ xito para encontrar soluciones a los problemas que se le presenten. Consultar primero toda la documentaci´on disponible. Lo primero que debe hacer cuando encuentre un problema es leerse la documentaci´on que se lista en la Secci´on 1.9 y el Ap´endice A. Estos documentos fueron laboriosamente escritos para gente como usted— gente que necesitaba ayuda sobre GNU/Linux. Los libros sobre Unix tambi´en se pueden usar para resolver dudas de GNU/Linux. Frecuentemente, y por dif´ıcil que parezca, se encuentran respuestas a muchos problemas. Si se tiene acceso a las noticias de USENET o a listas de correo relacionadas con GNU/Linux, se debe leer su contenido antes de poner una pregunta sobre sus problemas. Muchas veces hay problemas comunes que no se encuentran f´acilmente en los libros pero que tienen frecuente respuesta en los grupos de USENET o similar. Enviar la pregunta a los grupos sin leerlos antes puede ser una p´erdida de tiempo. Aprenda a apreciar las cosas hechas por uno mismo. En la mayor´ıa de los casos se recomienda investigar por cuenta de uno mismo antes de pedir ayuda al exterior. Recuerde que GNU/Linux no es un sistema comercial y puede hacer con e´ l lo que quiera (modificarlo, etc). Si aprende a hacerse las cosas por s´ı mismo, su experiencia le permitir´a llegar a ser, tal vez, uno de los famosos “gur´us” de GNU/Linux. Mantenga la calma. Hay que evitar la desesperaci´on a pesar de todos los problemas. No se ha o´ıdo a´un ninguna historia de alguien que, en un ataque de ira, borrase todos sus discos de GNU/Linux con un fuerte im´an. Los mismos autores se han desahogado a pu˜netazos con almohadas o similares en arrebatos de este tipo. Hay que esperar un poco a que las distribuciones de GNU/Linux se hagan m´as f´aciles a´un de instalar, aunque ya lo son m´as que casi cualquier otro Unix comercial. Evite poner preguntas en USENET demasiado pronto. Mucha gente comete el error de pedir ayuda en USENET demasiado pronto. Cuando encuentre alg´un problema, no se vaya de inmediato al terminal m´as cercano (insistimos, no lo haga) para escribir su duda en un grupo de noticias de GNU/Linux. Es mejor que intente antes resolverlo pues muchas veces es debido al nerviosismo inicial y se puede caer en el error de preguntar cosas demasiado triviales. Vamos, que si su PC no se enciende, mire antes a ver si est´a enchufado. Si escribe su pregunta en USENET, haga que merezca la pena. Finalmente, puede que se vea obligado a pedir ayuda a los foros dedicados a GNU/Linux, bien mediante listas de correo o con USENET. Cuando redacte su pregunta, recuerde que la gente que va a leerla no est´a ah´ı para ayudarle. As´ı que trate de ser correcto en el trato y lo m´as descriptivo posible. ¿C´omo puede conseguir esto? En primer lugar, debe incluir toda la informaci´on acerca de su sistema y el problema que crea relevante. Una escueta pregunta como “no puedo conseguir que el correo electr´onico

1.10. C´omo obtener ayuda

25

funcione” dif´ıcilmente ser´a contestada, a menos que incluya informaci´on acerca de su sistema, qu´e software utiliza, qu´e ha intentado hacer para resolverlo y qu´e resultados ha obtenido. Adem´as, suele ser interesante a˜nadir informaci´on m´as general, como qu´e versi´on del sistema utiliza (del n´ucleo y distribuci´on), as´ı como un peque˜no resumen de su hardware. Pero tampoco exagere incluyendo su tipo de monitor, por ejemplo, cuando su problema sea con el software de red.

26

Introducci´on a GNU/Linux

Cap´ıtulo 2

Obtenci´on e Instalaci´on de GNU/Linux David Bandel reescribi´o y revis´o la primera secci´on sobre instalaci´on de Linux. Parte del trabajo de los autores correspondientes a las distribuciones de GNU/Linux, fue a˜nadido a esta primera secci´on. Boris Beletsky escribi´o la secci´on DebianTM . Sean Dreilinger escribi´o la secci´on Slackware. Henry Pierce escribi´o la secci´on Red Hat LinuxTM . Evan Leibovitch escribi´o la secci´on Caldera OpenLinuxTM . Larry Ayers escribi´o la secci´on S.u.S.E. LinuxTM .

2.1. Instalaci´on gen´erica Al contrario que la mayor´ıa del resto de sistemas operativos, GNU/Linux puede obtenerse gratuitamente. Debido a la Licencia P´ublica General de GNU bajo la cual GNU/Linux se distribuye (vea el ap´endice E), nadie puede venderle una licencia de uso del software. Puede usar GNU/Linux sin coste alguno, y se le anima a ponerlo a disposici´on de otros. Pero eso no significa que las empresas no tengan derecho al reembolso de los costes de copia y obtener un beneficio. Pueden adicionalmente a˜nadir software que no sea libre que funcione en el sistema. Esto le otorga la libertad de elegir. Si comprar un CD-ROM no est´a en su presupuesto, puede simplemente pedir prestado una copia a un amigo o descargar el original desde Internet. Si lo adquiri´o de un importante distribuidor de GNU/Linux o lo descarg´o desde sus sitios de FTP (vea ap´endice C), consigue el mismo sistema operativo y los paquetes de software que ofrecen. En realidad, puede conseguir m´as software libre desde alguno de los sitios de FTP del que las empresas pueden distribuir en un CD, debido a las restricciones que algunos autores ponen a la distribuci´on de su software.

2.1.1.

Principales distribuciones de GNU/Linux

Una mirada en profundidad de algunas de las distribuiciones de GNU/Linux comienza en la p´agina 38. Estas distribuiciones son: Debian, Red Hat, Caldera, Slackware, y S.u.S.E. Cada secci´on tiene m´as informaci´on del lugar para adquirir esa distribuci´on. Pero recuerde, Linux es el n´ucleo. El software es parte de la distribuci´on, no de GNU/Linux. La mayor´ıa del software est´a disponible sin restricciones y puede ser portado entre varias plataformas UNIX. Despu´es de tener en cuenta lo que el n´ucleo en s´ı soportar´a, la diferencia m´as grande se encuentra en lo que soportan las bibliotecas (software llamado desde dentro de las aplicaciones). Cada distribuci´on tiene su propia instalaci´on y utilidades de mantenimiento que facilitan la instalaci´on y la administraci´on del sistema. Cada una tiene aparentemente puesto el punto de mira en un colectivo diferente. Cualquier distribuci´on vale para empezar y continuar despu´es con ella. As´ı que le recomiendo que lea a cerca de cada distribuci´on y hable con alg´un amigo informado. La mayor´ıa de las grandes ciudades tienen un Grupo de Usuarios de GNU/Linux 1 , la mayor´ıa con usuarios experimentados, que debaten demasiado sobre qu´e distribuci´on es la mejor y porqu´e. Le sugiero que escuche algunos de sus argumentos y despu´es decida. 1 Vea http://www.ssc.com/glue/ con informaci´ on sobre Grupos de Usuarios de GNU/Linux de todas partes para encontrar un grupo local.

27

28

Obtenci´on e instalaci´on de Linux

Se puede suscribir a listas de correo (le recomiendo que se suscriba s´olo a una a la vez) y leer los correos de los usuarios y las respuestas de los gur´us. Tan diferente como lo es cada distribuci´on, as´ı son tambi´en las listas de correo que le proporcionan ayuda. Hacer la elecci´on correcta es importante, ya que cambiar de distribuci´on generalmente significa reinstalar desde cero.

2.1.2.

Preocupaciones comunes

Esta secci´on asume que el reci´en llegado a GNU/Linux dispone de: tiene un ordenador con MS/DOS y Windows u OS/2; tiene conocimientos b´asicos de MS-DOS pero no de UNIX; conoce o puede encontrar que tipo de hardware tiene instalado; tiene un deseo de poner a prueba GNU/Linux por cualquier motivo, aunque probablemente no se cambiar´a exclusivamente a GNU/Linux(todav´ıa); y no tiene una m´aquina de reserva ni dispone de un segundo disco duro, pero tiene varios cientos de megabytes libres para usar. Estas suposiciones no son extremistas, y pueden incluso ser un poco conservadoras. Hay gente que dice que si en su aparato de v´ıdeo todav´ıa parpadean las 12:00, GNU/Linux no es para usted, pero entonces eso deber´ıa hacerme abandonar a m´ı tambi´en. En mi aparato de v´ıdeo a´un parpadean las 12:00. Antes de comenzar, debemos saber hacia donde vamos. Aunque es ciertamente posible llegar desde Nueva York hasta California (eventualmente) tomando cualquier direcci´on al azar, la mayor´ıa de nosotros podr´ıa optar ir en una ruta m´as o menos directa. As´ı es pues al instalar GNU/Linux.

2.1.3.

Hardware

Esta secci´on explica todos los pasos necesarios para la instalaci´on fuera de la instalaci´on actual. Cada distribuci´on trata en forma levemente distinta este preparativo. Mientras el aspecto de la instalaci´on es diferente, todas logran lo mismo y tienen m´as en com´un que no. Todas requieren: planificaci´on; reunir informaci´on del hardware del sistema; copia de seguridad del viejo sistema (opcional, pero muy recomendado); preparar las particiones de GNU/Linux; decidirse por un cargador de arranque(para sistemas con arranque dual); arrancar un n´ucleo de Linux; instalar el n´ucleo; elegir e instalar paquetes de software; cargar el software; realizar ajustes finales de configuraci´on; y reiniciar y arrancar el nuevo sistema. Ahora que he simplificado en exceso el proceso, recorramos la lista. Escuche atentamente, no es malo que aprenda de los errores de otros.

Instalaci´on gen´erica

2.1.4.

29

Planificaci´on

No pienso insistir demasiado en este paso. Cualquier piloto le dir´a que el aterrizaje es tan bueno como la aproximaci´on. Lo mismo vale para la instalaci´on de GNU/Linux. Primero, determine qu´e tipo de hardware tiene. Una lista de comprobaci´on ha sido incluida para asistirle. Sea tan preciso como pueda, pero no se entusiasme. Por ejemplo, si tiene una tarjeta ethernet, necesita saber de qu´e tipo(p.e., SMC-Ultra, 3Com 3C509, etc.), direcci´on E/S (p.e., io=0x300), interrupci´on (IRQ 10), pero no la direcci´on hardware (00 00 a6 27 bf 3c). No toda la informaci´on ser´a necesaria para su hardware. Si tiene Windows 95 o Windows NT funcionando, puede copiar los valores de la pantalla de informaci´on de los dispositivos hardware del sistema. Por otra parte, consulte los manuales del harware o la p´agina web del fabricante. Dado que es importante, revisaremos esta hoja de trabajo aqu´ı.

2.1.5.

Hoja de trabajo de la planificaci´on del sistema

General Procesador: Velocidad (opcional) Fabricante: Placa base: Ejemplo: Rat´on: Puerto serie: Unidad(es): de HD Tama˜no: (cada unidad) SCSI: Ejemplo: Arranque: Disco: Disco: Disco: Disco: CD-ROM: Fabricante: (Solo Propietario): X-Window: Tarjeta de V´ıdeo: RAM: Monitor: Red: M´odem: Puerto serie:

Intel AMD Citrix

Tipo:

386 486 Pentium PPro

Fabricaci´on: Fabricaci´on: desconocida Fabricante: COM1 (ttyS0) Tipo:

Chip Set: Chip Set: triton II Tipo: bus PS/2 serie COM2 (ttyS1) IDE/MFM/RLL/ESDI SCSI

Fabricaci´on: Modelo: Fabricaci´on: BusLogic Modelo: 948 Linux DOS/Windows Particion: Tama˜no: Particion: Tama˜no: Particion: Tama˜no: Particion: Tama˜no: IDE/ATAPI SCSI Propietario Modelo:

OS/2 Boot: Boot: Boot: Boot:

Otro

Fabricante: Modelo: 1Mb 2Mb 4Mb 8Mb 16Mb Fabricante: Modelo:

Frecuencia m´ax. de refresco:

Fabricante: COM1 (ttyS0)

COM3 (ttyS2)

Nombre del ordenador:

Modelo: COM2 (ttyS1) Ejemplo: rainier

COM4 (ttyS3)

Las siguientes respuestas s´olo son necesarias si usa una tarjeta de red: (no configure la red si no dispone de una instalada). NIC Tipo: NIC Fabricante: Network domain name:

ethernet Modelo:

token ring

FDDI

(Ejemplo: mountains.net)

Otra

30

Obtenci´on e instalaci´on de Linux

Direcci´on IP: Direcci´on de red: M´ascara de red: Direcci´on de Broadcast: Pasarela(s): DNS(s):

(Ej.: 192.168.1.2) (Ej.: 192.168.1.0) (Ej.: 255.255.255.0) (Ej.: 192.168.1.255) (Ej.: nada o 192.168.1.1) (Ej.: 192.168.1.2)

Algo de la Secci´on General est´a ah´ı para referencias futuras. Concretamente, no necesitamos conocer ahora mismo el tipo de CPU. Podemos tambi´en arreglarnos sin saber qu´e chipset tiene la placa base. Pero si est´a disponible la informaci´on, es bueno tenerla.

2.1.6.

Rat´on

Otra informaci´on que necesitamos, comienza con el rat´on,si contamos con usarlo. Necesitamos saber el fabricante, porque las diferentes marcas implementan funciones de se˜nales internas de distinta forma. Aqu´ı, atender a los detalles lo es todo. Si tiene un rat´on de la marca Microsoft, puede tener un interfaz serie o PS/2. Mirar el conector para el ordenador no ayudar´a tampoco. Un n´umero de ordenadores vienen con ratones que parecen ratones serie y tienen un conector tipo serie, pero son conectados a la placa base internamente como un rat´on PS/2. Lea el grabado de la parte inferior del rat´on cuidadosamente antes de decidirse. Adem´as, si tiene un rat´on con tres botones, pero e´ ste tiene un selector del bot´on con el que puede cambiar entre, digamos, Microsoft y sistemas PC, elija sistemas PC La configuraci´on de Microsoft no implementa el bot´on de en medio, que s´ı es u´ til en UNIX. En el fabricante, escoja la configuraci´on de ”switch”porque ese es el protocolo de se˜nales usado. No hay controladores para los ratones ”bonitos”, pero s´ı para la configuraci´on de ”switch”de Microsoft y Mouse System que se encuentran bajo el rat´on. Mientras no se pida espec´ıficamente, la u´ nica informaci´on adicional que puede querer a˜nadir es el dispositivo a trav´es del que el sistema accede al rat´on. Linux debe conocer c´omo el dispositivo es referenciado. Si tiene un rat´on PS/2, normalmente optar´a entre /dev/psaux, el puerto auxiliar para un dispositivo apuntador PS/2, o /dev/psmouse, un sin´onimo a veces disponible para su utilizaci´on. Los ratones de bus son accedidos a trav´es de un fichero creado espec´ıficamente para ese rat´on propietario, como /dev/atibm para los ratones de bus ATI, /dev/logibm para los ratones de bus de Logitech, /dev/inportbm para los ratones de bus de de InPort, o sus respectivos sin´onimos de atimouse, logimouse, y as´ı sucesivamente. Para ratones serie, si sabe el puerto de COM: de MS/DOS, sustituya /dev/ttyS0 para COM1: y /dev/ttyS1 para COM2:. Me abstendr´e de explicar los or´ıgenes del nombre tty de ttyS0 dado que ocupar´ıa varios p´arrafos y est´a explicado ya en muchas referencias de UNIX.

2.1.7.

Considerar discos duros y CD-ROMs

Antes de comenzar la instalaci´on, necesita contar cu´anta cantidad real de espacio en disco va a dedicar a GNU/Linux frente a cu´anta cantidad dispone. Decidir durante la instalaci´on c´omo dividir su disco duro es s´olamente pedir problemas y probablemente terminar´a en p´erdida de tiempo, p´erdida de datos y reinstalaci´on. Su disco duro ser´a uno de varias clases. Para nuestros prop´ositos, IDE, MFM, RLL, y ESDI son equiva´ lentes, y usar´e el t´ermino IDE. Este tambi´en abarca EIDE, actualmente el interfaz m´as com´un en el mercado de ordenadores dom´esticos favorecido por su bajo precio. Si el disco duro tiene un interfaz SCSI, se har´a evidente durante el arranque. Necesitar´a saber el fabricante y el modelo de controladora SCSI. Las m´as comunes son las controladoras de Adaptec y BusLogic, pero en ´ absoluto son la u´ nicas. Estas tambi´en tienen modelos espec´ıficos, como la AHA-1572 o BTC-958. Esta informaci´on es a menudo mostrada durante la inicializaci´on del sistema. Para asignar espacio, necesitamos evaluar el tama˜no del disco duro. Bajo OS/2, puede usar todo el disco duro para OS/2, despu´es instalar Microsoft Windows sobre la partici´on de OS/2 y ejecutarlo bajo OS/2. Si tiene MS-DOS y Microsoft Windows, u OS/2 en su ordenador, GNU/Linux deber´ıa tener su propia partici´on. Puede cargarse en una partici´on MS-DOS con UMSDOS, lo cual no se cubre aqu´ı. Mientras GNU/Linux tiene emuladores de DOS y puede leer e incluso ejecutar algunos programas de DOS, DOS no puede generalmente

Instalaci´on gen´erica

31

“ver” lo que hay en una partici´on GNU/Linux. Si tiene y quiere guardar MS-DOS (se asume), debe determinar cu´anto espacio le va a reservar. Reste este n´umero del tama˜no total del disco duro y eso es con lo que tiene que trabajar. Por ahora, anote el tama˜no total de la unidad(es) que tiene y cu´anto espacio va a dedicar a GNU/Linux. Para su(s) unidad(es) de CD-ROM necesita informaci´on similar. Una unidad de CD-ROM es IDE/ATAPI, la m´as com´un en sistemas dom´esticos hoy d´ıa; SCSI; o una unidad m´as antigua, unidad propietaria, como aquellas conectadas a las tarjetas de sonido. Si tiene una unidad IDE o SCSI, mucho mejor. Si tiene una unidad con propietaria, debe conocer el fabricante y modelo, puesto que GNU/Linux las identifica por fabricante y unidad concreta.

2.1.8.

Unidades de discos bajo GNU/Linux

Para los reci´en llegados a GNU/Linux que est´en familiarizados s´olo con MS-DOS, y para aquellos que provengan de otras plataformas UNIX, los dispositivos bajo GNU/Linux tienen una forma de referenciarse peculiar. Esta forma de referenciarse se usa poco menos que desde el inicio, de modo que se necesita cierto conocimiento sobre ellos. Bajo GNU/Linux, como bajo cualquier UNIX, los dispositivos son ficheros especiales. Los discos duros son tratados como ficheros y referenciados por su nombre, como los modems, su monitor, y otros dispositivos hardware. UNIX los trata como ficheros de los que leer y a los que escribir. Puesto que GNU/Linux los ve como ficheros, se encontrar´an en un directorio dedicado a los dispositivos. Despu´es de la instalaci´on los podr´a ver en el directorio /dev, por devices. Incluso aunque estos dispositivos son vistos por GNU/Linux como ficheros, son especiales. Vienen en dos “sabores,” bloques y caracteres, los cuales se refieren a la manera en que los dispositivos se comunican; en bloque de datos o en caracteres individuales. Se crean autom´aticamente durante la instalaci´on. Estas convenciones sobre nomenclatura de los dispositivos se discuten en la p´agina 140.

2.1.9.

Instalando el sistema de ventanas X-Window

He incluido en su hoja de trabajo informaci´on sobre su tarjeta de v´ıdeo y su monitor. Aunque no es absolutamente necesario, la mayor parte de los que vienen del mundo de OS/2 o Microsoft Windows quieren instalar una interfaz gr´afica de usuario (IGU). Algunas distribuciones se lo permiten directamente, mientras que otras lo hacen a trav´es de programas posteriores a la instalaci´on. Esta informaci´on ser´a importante entonces. Algunas distribuciones le gu´ıan a trav´es de esta configuraci´on, otras le dirigen a programas posteriores a la instalaci´on. Esta informaci´on tambi´en ser´a importante. Debe conocer el fabricante y modelo concreto de su tarjeta de v´ıdeo. A algunas tarjetas se les puede comprobar o “preguntar” cuanta RAM tienen o que chipset utilizan, pero a otras no. En cualquier caso, saber esto es importante, como en las S3 o S3-Virge. Esta informaci´on ahorra mucho tiempo y disgustos. La parte m´as dif´ıcil y frustrante de cualquier instalaci´on y configuraci´on de GNU/Linux es la del sistema de ventanas X. Con frecuencia, los datos de su monitor son m´as dif´ıciles de obtener. Si tiene una de las marcas menos conocidas de monitores, es posible que tenga que introducir las frecuencias de refresco vertical y horizontal por usted mismo. Si tiene dudas, sea siempre conservador. Sobrepasar los l´ımites de su sistema puede da˜nar su monitor o tarjeta de video. Ya tenemos la mayor parte de la informaci´on que necesitamos para el rat´on, que tambi´en utilizar´a el servidor X. La informaci´on que GNU/Linux necesita conocer sobre el rat´on se describe en la p´agina 30.

2.1.10.

Hardware de sistema de redes

Esta secci´on no es a´un tan significativa como sugiere la hoja de trabajo. El sistema de redes se explica en detalle en el Cap´ıtulo 6. Pero si tiene una tarjeta de red 2 , sea Ethernet, Token Ring, u otro sistema, debe 2 N.

del T.: Network Interface Card

32

Obtenci´on e instalaci´on de Linux

leer encima de la tarjeta antes de proceder. Esta informaci´on se necesitar´a durante la instalaci´on para usar la tarjeta de red. Durante la instalaci´on inicial de GNU/Linux, si no tiene una tarjeta de red, puede saltarse buena parte de la configuraci´on de red. Sin embargo, todos los ordenadores deben tener un nombre en GNU/Linux. El ejemplo de la hoja de trabajo, asume que tiene elegido uno, como monta˜nas, y nombrar´a sus ordenadores despu´es con nombres de monta˜nas, pero cualquier nombre que se le ocurra ser´a adecuado. Si tiene un m´odem, debe conocer donde est´a conectado. Este se encuentra en un puerto serie, /dev/ttyS0 hasta /dev/ttyS3, que corresponde en MS-DOS a los puertos COM: del 1 al 4. La RDSI se trata del mismo modo, pero normalmente se configura con posterioridad a la instalaci´on con designaciones especiales y m´ultiples dispositivos. Eso finaliza nuestra hoja de trabajo y aproximadamente la mitad de la planificaci´on que necesitamos hacer. Una notaci´on que no figura en nuestra hoja de trabajo es la cantidad de memoria RAM que tiene el sistema. GNU/Linux funciona en un sistema con menos de 4 MB de RAM, pero esto tiene un impacto significante en la instalaci´on y subsiguiente uso del sistema. Si tiene 4 MB de RAM o menos, debe seguir procedimientos espec´ıficos para m´aquinas de poca memoria donde sea pertinente. Con el actual bajo precio de RAM y con las pocas m´aquinas que son vendidas hoy con menos de 16MB de RAM, esto generalmente no es una cuesti´on. Si es as´ı, aseg´urese de comprobar su distribuci´on para instrucciones espec´ıficas.

2.1.11.

Planificaci´on 2a Parte

Partes de la secci´on siguiente, en particular las formas de particionar un disco, son sumamente beligerantes entre instaladores experimentados, pero yo le dar´e mis ideas sobre ello. Se puede ser tan creativo como se quiera. La mayor´ıa de las diferencias en mi opini´on, se originan seg´un sea la finalidad u´ ltima del sistema, e.j., como una estaci´on de trabajo, servidor web, servidor de noticias u otra funci´on.

2.1.12.

Estrategias de particionado

Pocos usuarios experimentados de GNU/Linux le dir´an que haga una partici´on nativa de GNU/Linux, una partici´on de intercambio y que comience la instalaci´on. Hay numerosas razones para esto, y suscribo la mayor´ıa de ellas, as´ı que yo tengo numerosas particiones nativas de GNU/Linux. Pero para m´ı, la raz´on m´as convincente de todas es que un d´ıa querr´a actualizarse, y eso requerir´a reformatear el sistema(s) de ficheros. De hecho, la distribuci´on Slackware no tiene, en u´ ltima instancia, medios para ni siquiera intentar una actualizaci´on “en el momento”, o indicaci´on alguna de que las tendr´a en el futuro. La actualizaci´on del n´ucleo 0.99 al 1.2.13 me exigi´o reformarlo, como tambi´en de la versi´on 1.2.13 a la 2.0.0, y sospecho que lo necesitar´e de nuevo para la versi´on 2.2.0 (o la que sea el pr´oximo n´ucleo estable). Lo que no deseo, es perder los ficheros que he acumulado en mi directorio de inicio. S´ı, tengo una copia de seguridad. Pero conservar mi directorio /home intacto es m´as sencillo, especialmente desde que mov´ı todos mis ficheros especiales a un subdirectorio de all´ı. Otra raz´on es que cualquier partici´on arrancable debe estar entre los primeros 1024 cilindros del disco duro. Cuando alg´un PC arranca, ocurren una secuencia de eventos que finalizan en la carga del sistema operativo. Debido a las limitaciones de la BIOS (Basic Inout/Ouput System), hasta que el sistema operativo es cargado, s´olo los primeros 1024 cilindros del primer o segundo disco duro pueden ser accedidos. Para saber exactamente de qu´e estamos hablando, voy a describir un sistema de ficheros est´andar de GNU/Linux y c´omo e´ ste trata las particiones. Bajo MS-DOS, cada partici´on es una unidad diferente, y pocas distinciones son hechas tanto si es una unidad f´ısica o una unidad l´ogica (partici´on). Bajo GNU/Linux, las unidades f´ısicas o l´ogicas son nombradas mucho menos r´ıgidamente. Durante la instalaci´on, debe escoger una partici´on como su partici´on ra´ız. La partici´on ra´ız es designada como “/”. Cuando nos referimos a “/dev”, esto es realmente dos directorios, “/” y “dev”. Su n´ucleo de GNU/Linux se localizar´a en la partici´on ra´ız, pero puede estar en un subdirectorio con tal de que ese subdirectorio resida en la partici´on ra´ız. Por ejemplo, algunas distribuciones usan /boot para contener el n´ucleo, mapa del sistema, y ficheros de arranque. La siguiente estructura (como m´ınimo) se establecer´a en su partici´on ra´ız durante la instalaci´on:

Instalaci´on gen´erica

33

/bin /dev /etc /home /lib /lost+found /proc /root /sbin /usr /var

Puede ver otras como /boot, /mnt, /cdrom, /floppy, /opt, y as´ı, pero las citadas anteriormente son fundamentales. ¿Qu´e hay de las otras particiones? GNU/Linux puede usar un nombre de directorio (digamos /usr) como un punto de montaje. Es decir, la otra partici´on en el disco (o en otro disco) es montada bajo e´ l (en este caso /usr). Si desmonta la otra partici´on y mira en el subdirectorio que GNU/Linux usa como punto de montaje, no ver´a (o no deber´ıa ver) nada—ni ficheros ni directorios. Cuando otra partici´on es montada, ver´a los ficheros y directorios que est´an en esa partici´on bajo el punto de montaje. As´ı que si tiene dos unidades, una con 120 MB y otra con 840 MB puede hacer una partici´on en la unidad de 120MB (diremos que es la partici´on ra´ız) y montar cualquiera de las particiones que ha creado en la unidad de 840MB (esta podr´ıa ser una gran partici´on, o varias particiones peque˜nas) bajo sus respectivos puntos de montaje, una partici´on por punto de montaje, creando, en efecto, un sistema de ficheros de 960MB. La u´ nica restricci´on es que no puede usar ciertos directorios en la unidad ra´ız como puntos de montaje, porque contienen ficheros que son necesarios para arrancar el sistema o montar otros sistemas. Obviamente si la orden usado para montar otras particiones est´a ubicado en otra partici´on y no puede acceder a esa partici´on hasta que no sea montada, estar´a como el perro que persigue su cola. Los directorios que no puede usar como puntos de montaje son: /bin, /dev, /etc, /lib, /lost+found, /proc, /root, y /sbin. Una descripci´on detallada de qu´e ficheros est´an contenidos en estos directorios del sistema est´andar se da en la p´agina 107. Veamos un peque˜no ejemplo. Usted es un aspirante a Proveedor de Servicios de Internet (ISP) Tiene cuatro m´aquinas, y cada una tiene una unidad de 1 gigabyte. As´ı que decide asignar espacio como a continuaci´on: m´ aquina A:

/ = 120MB /usr = resto de la unidad (exportado) /home = 0 - punto de montaje (montado desde B) /var/news = 0 - punto de montaje (montado desde C) /var/spool/mail = 0 - punto de montaje (montado desde D)

m´ aquina B:

/ = 120MB /usr = 0 - punto de montaje (montado desde A) /home = resto de la unidad (exportado) /var/news = 0 - punto de montaje (montado desde C) /var/spool/mail = 0 - punto de montaje (montado desde D)

m´ aquina C:

/ = 120MB /usr = 0 - punto de montaje (montado desde A) /home = 0 - punto de montaje (montado desde B) /var/news = resto de la unidad (exportado) /var/spool/mail = 0 - punto de montaje (montado desde D)

m´ aquina D:

(ejercicio para el lector)

34

Obtenci´on e instalaci´on de Linux

Probablemente advirti´o que asign´e arbitrariamente 120 MB a la partici´on ra´ız, y asign´e el resto a cualquiera ( /usr, /home, /var/spool/mail y as´ı sucesivamente). Tambi´en, que no asign´e espacio a ninguna partici´on de intercambio. As´ı que, miremos lo que probablemente necesitaremos, comprender de qu´e “depende” es clave. Planterar´e esto desde la perspectiva de una situaci´on familiar con solamente unos pocos de usuarios, montones de programas y sin otras necesidades notorias. Lo mejor para empezar es decirle la apariencia de mi ordenador principal. Tengo dos unidades, /dev/hda (1.2 GB) y /dev/hdb (540 MB). df (disk free) muestra File system /dev/hda1 /dev/hda3 /dev/hda2 /dev/hdb1

1024-blocks Used Available Capacity Mounted on 150259 69605 72894 49% / 723923 615452 71075 90% /usr 150291 93326 49204 65% /usr/X11R6 499620 455044 18773 96% /home

Puede ver que tengo a mitad de uso 150-MB de partici´on ra´ız (/), una partici´on /usr casi completa, una partici´on /usr/X11R6 usada en su mayor parte, y una grande pero restringida 500-MB partici´on /home. El resto de la unidad /dev/hdb es una partici´on de intercambio. En un m´ınimo realista, sugerir´ıa reservar 80–100 MB para su partici´on ra´ız, sobre 10 MB por usuario en su partici´on /home, tanto m´as espacio como pueda reservar para intercambio, dentro de lo razonable (vea la pr´oxima secci´on), y el resto para /usr. Tengo un sistema familiar para cinco usuarios, pero personalmente tengo sobre 400 MB inmovilizados del directorio /home, la mayor´ıa en gr´aficos—un a´ lbum de fotos de familia y amigos. Su partici´on /usr deber´ıa ser presumiblemente de al menos 250MB, pero el m´ınimo depender´a de lo que decida al instalar. Como puede ver, se puede rellenar r´apidamente con m´as de 800 MB de programas, bibliotecas, y datos. Adem´as recuerde que las particiones le dan la flexibilidad que perder´ıa con una partici´on gigante.

2.1.13.

La partici´on de intercambio

Debe ir pensando hacer una partici´on de intercambio. A diferencia de Microsoft Windows, GNU/Linux usa una partici´on de intercambio dedicada por rapidez. Aunque es posible crear un fichero de intercambio no es recomendable. GNU/Linux puede usar hasta 128 MB3 de espacio de intercambio. Recomiendo un m´ınimo pr´actico de 16 MB. El o´ ptimo es probablemente tanto como pueda reservar entre 32 y 64MB—mientras m´as, mejor. Una u´ ltima consideraci´on antes de que decida como trocear mejor el disco. Recuerde que dije que la BIOS no puede “ver” pasado el sector 1023 en el disco duro (aproximadamente 512MB). As´ı que, el n´ucleo de GNU/Linux (un fichero probablemente llamado vmlinuz en su disquete de arranque), o cualquier n´ucleo de otro SO en ese caso, debe residir completamente en una de las primeras dos unidades de discos (/dev/hda o /dev/hdb) y entre los primeros 1024 sectores, o la BIOS ser´a incapaz de cargarlo. Para garantizar que puede, planee hacer que su partici´on ra´ız (as´ı como cualquier otra partici´on de arranque) caiga enteramente dentro de esta limitaci´on, en el primer o segundo disco duro.

2.1.14.

Reparticionando

Al comienzo de este Cap´ıtulo dije que hab´ıa hecho unas pocas suposiciones. Una era que quer´ıa guardar su c´omodo MS-DOS y Microsoft Windows. Y puesto que el ordenador que compr´o s´olo tiene MS-DOS, no tiene sentido tener m´ultiples particiones, as´ı que la u´ nica unidad que tiene est´a probablemente dedicada por completo a MS-DOS. De una manera o de otra, despu´es, tendremos dos sistemas operativos en este ordenador. Si actualmente no tiene nada en su disco (buena suerte), es decir estupendo, pero no est´a del todo listo para seguir adelante. GNU/Linux es confortable donde quiera que lo ponga. Su BIOS puede que no tenga capacidad de arrancarlo, pero una vez en ejecuci´on, no se quejar´a si es relegado a la cuarta partici´on del cuarto disco duro. Pero MSDOS y Microsoft Windows no son as´ı de compasivos. Ellos quieren la primera unidad y la primera partici´on y 3 N.

del T.: Hasta 8 particiones de 128Mb de espacio de intercambio

Instalaci´on gen´erica

35

pueden rechazar arrancar desde cualquier otra posici´on. He visto arrancar MS-DOS desde la primera partici´on en el segundo disco duro, pero el primer disco duro no ten´ıa ninguna partici´on de MS-DOS, as´ı que MS-DOS no reconoci´o la unidad. La mejor estrategia, a menudo, es el camino de la menor resistencia. Si en absoluto es posible, ponga MS-DOS en la primera unidad y la primera partici´on. Una segunda consideraci´on en una situaci´on de m´ultiples SO es cu´al sistema operativo cargar primero. Si est´a tentado de particionar el disco duro e instalar GNU/Linux primero (reservando /dev/hda1 para MS-DOS, entonces no instale MS-DOS en segundo lugar. Al instalar MS-DOS o Windows, el programa de instalaci´on borrar´a cualquier programa de arranque previo que tenga instalado en el registro maestro de arranque (MBR) (el que la BIOS usa para apuntar a n´ucleos arrancables), De hecho, puede incluso o´ır esta alusi´on como el “virus Microsoft”. Esto no es un virus en el sentido verdadero de la palabra, exactamente es arrogancia por parte de Microsoft, que solamente quiere un sistema operativo Microsoft para arrancar. GNU/Linux no causa tales problemas, y de hecho suministra un medio para elegir la imagen para arrancar por defecto. Tambi´en le permite intervenir durante el proceso de arranque para especificar con qu´e sistema operativo arrancar. Esto es una parte est´andar del proceso de instalaci´on de GNU/Linux.

2.1.15.

Haciendo copia de seguridad de su sistema antiguo

Antes de que realmente consigamos trabajar en la tabla de particiones, Le guiar´e a trav´es de procedimientos para proteger los datos que tiene en su disco duro. Estos procedimientos asumen que tiene una partici´on DOS. Otros sistemas operativos pueden o no tener un m´etodo para lograr el mismo prop´osito. Lo primero que deber´ıa hacer es realizar una copia de seguridad completa. Las herramientas que usar´a trabajan como debieran. Pero estos procedimientos son intr´ınsecamente peligrosos. En cualquier momento que trabaje con una tabla de particiones de un disco duro, puede perder f´acilmente todos los datos contenidos en la unidad. Copie su disco duro antes de proceder. Una vez ha copiado su disco duro, cree un disquete de arranque para el sistema. Puede usar los o´ rdenes de MS-DOS C:>format a: /s

el cual formatea el disquete y le pone los ficheros que requiere el sistema o, usar un disquete formateado. Escriba la orden C:>sys a:

En cuanto haya creado un disquete de inicio y lo haya probado para garantizar que funciona, copie los siguientes ficheros de su sistema MS-DOS al disquete de inicio: FDISK.EXE, SCANDISK.EXE, y SYS.COM. Adem´as copie el fichero RESTORRB.EXE desde un CD de una distribuci´on de GNU/Linux o de un sitio de FTP de ficheros de GNU/Linux. (Vea Ap´endice C). Ejecute un programa de desfragmentaci´on en su unidad DOS para desfragmentar y agrupar los ficheros junto a la parte delantera del disco. Si desfragmentando encuentra cualquier error, necesita ejecutar SCANDISK.EXE para reparar los problemas. Una vez ha desfragmentado el disco y se ha asegurado que los ficheros est´an condensados en la parte delantera de la unidad (como se indica en la gr´afica de su disco), est´a preparado para ejecutar FIPS.EXE para reducir de tama˜no la partici´on MS-DOS.

2.1.16.

FIPS.EXE

En su CD de la distribuci´on de GNU/Linux (o en el emplazamiento de la distribuci´on en Internet), encontrar´a una copia de FIPS.EXE, con la que puede reducir el tama˜no de la partici´on MS-DOS. Note que FIPS.EXE solamente trabaja con particiones MS-DOS. Si tiene otras particiones que necesite reducir, el programa Partition Magic le puede ayudar, pero no es libre. Copie FIPS.EXE a su disquete de inicio y rearranque usando este disquete. Esto cumplir´a dos objetivos: asegura que el disquete de inicio funciona, y asegura que est´a arrancando en modo read de MS-DOS y no ejecutando Microsoft Windows. En el indicador A:\i escriba FIPS (en may´usculas o min´usculas). Se le dar´a la bienvenida y se le preguntar´a con qu´e unidad quiere operar (si tiene m´as de una). Elija la unidad a reducir. Una vez que confirme

36

Obtenci´on e instalaci´on de Linux

su elecci´on, FIPS.EXE har´a una copia de sus sectores de arranque y ra´ız al disquete por si acaso algo adverso ocurre. Entonces se le preguntar´a si todo el espacio libre de su partici´on deber´ıa usarse para crear una segunda partici´on. Si contesta “s´ı”, no tendr´a ning´un usarse para crear una segunda partici´on. Si contesta “s´ı”, no tendr´a ning´un espacio libre en la partici´on MS-DOS para guardar datos, as´ı que diga, “no”. En ese momento estar´a capacitado para variar la cantidad de espacio que asignar entre la primera y segunda partici´on. Note que si no desfragment´o correctamente su unidad, no tendr´a mucho para trabajar con la segunda partici´on. Tambi´en, si usa el software de replicado de MS-DOS, un fichero que se crea en el mismo final de la partici´on, y FIPS.EXE le dir´a que no tiene espacio para crear una segunda partici´on. Salga y corriga el problema borrando el fichero MIRROR.FIL, despu´es vuelva a arrancar FIPS.EXE. Puede editar y reeditar la tabla de particiones hasta que est´e satisfecho. En cuanto est´e contento con la distribuci´on de espacio entre las particiones, confirme sus cambios y escriba la tabla. Una vez que FIPS.EXE ha terminado, quite el disquete de arranque y rearranque su ordenador. En este ejemplo, destruiremos y nos recrearemos con la segunda partici´on durante la instalaci´on para crear al menos dos particiones para GNU/Linux: una partici´on de intercambio, y una partici´on nativa de GNU/Linux. Pero puede crear tantas como guste.

2.1.17.

Prepar´andose para iniciar GNU/Linux

Para instalar GNU/Linux, debemos comenzar con la carga del n´ucleo de GNU/Linux. Esto es llevado a cabo del mismo modo como si quisiera volver a cargar MS-DOS: necesitamos un disquete de inicio. Pero la mayor´ıa de las distribuciones vienen s´olo con un CD-ROM,y a´un cuando tengamos un sistema GNU/Linux en ejecuci´on, la orden para crear disquetes de inicio para GNU/Linux es diferente que en MS-DOS. Si ha comprado un ordenador nuevo que permite el arranque desde CD-ROM, algunas distribuciones le permitir´an arrancar de este modo. Pero seguiremos enteramente el proceso de creaci´on de un disquete de inicio en lo que nos resta.

2.1.18.

Creando un disquete de arranque de GNU/Linux bajo DOS

Toda distribuci´on contiene un programa MS-DOS que le permiten escribir una imagen de disco en un disquete formateado. Necesita un disquete de alta densidad, y algunas distribuciones requieren que sea de 3.5-pulgadas, y 1.44 Mb. Introduzca el disquete en la unidad. Busque en el CD (o en su disco duro si lo descarg´o) RAWRITE2.EXE (puede que tenga el antiguo RAWRITE.EXE). Luego haga cd al directorio que tiene la(s) imagen(es) del disco que necesita para arrancar. Puede haber s´olo una, o muchas im´agenes configuradas para diferente hardware. Tendr´a que consultar la documentaci´on de la distribuci´on. Ejecutando RAWRITE2.EXE sin argumentos se le preguntar´an dos cosas: la ruta de la imagen de disco a escribir y la unidad de disco destino, A: o B:. Para acortar, con RAWRITE.EXE o RAWRITE2.EXE, especifique los argumentos en la l´ınea de o´ rdenes de MS-DOS. C:>rawrite imagen unidad

Repita este paso para cualquier imagen de disco adicional que su sistema necesite. Si puede, verifique los disquetes con SCANDISK.EXE y haga una exploraci´on de la superficie antes de escribir las im´agenes al disco, le puede ahorrar algo de tiempo posteriormente. La mayor´ıa de los fallos iniciales en la instalaci´on se originan por disquetes de arrranque en mal estado, y RAWRITE2.EXE no los verifica. Esto tambi´en es cierto si crea disquetes de arranque bajo GNU/Linux. La p´agina de manual de badblocks(1) describe como verificarlos. Etiquete los disquetes que cree para uso futuro.

2.1.19.

Creando un disquete de arranque bajo GNU/Linux

Si tiene un sistema GNU/Linux funcional; por ejemplo, si se actualiza y quiere crear las im´agenes de discos con GNU/Linux, cambie al directorio que contiene las im´agenes de disco y use la orden

Instalaci´on gen´erica

37

# dd if=imagen of=unidad de disquete bs=512 conv=sync ; sync

Sustituya el nombre de la imagen de disco por imagen y la unidad de disquete correcta (casi siempre /dev/fd0), y rep´ıtalo para cada disquete que necesite. Los argumentos dd son: if para el fichero de entrada; of para el fichero de salida, y aqu´ı debemos usar la unidad de disquete; bs para el tama˜no de bloque, en este caso 512 bytes; conv=sync asegura que el fichero de salida tiene exactamente el mismo tama˜no que el fichero de entrada. La coletilla “sync” garantiza el volcado de los b´ufferes al disco inmediatamente. Un m´etodo alternativo que, aunque funciona ser´a evitado por un genuino administrador de GNU/Linux, es la orden cp (copiar) cp imagen unidad de disquete ; sync

De nuevo, sustituya el nombre de la imagen de disco por imagen, la correcta unidad de disquete, y repita el paso por cada disquete que necesite. Puede recibir un mensaje preguntando si desea reemplazar la unidad de disquete por imagen. Obviamente si esto no ocurriera, puesto que el disquete no es un verdadero fichero sino un dispositivo, cp no presta atenci´on a ese detalle. Exactamente diga, “s´ı,” si es preguntado. Con los disquetes de instalaci´on de GNU/Linux en la mano, est´e preparado para instalar nuestro sistema. La mayor´ıa de las distribuciones invocan a fdisk, la versi´on de GNU/Linux, as´ı que puede crear una partici´on nativa de GNU/Linux y una de intercambio. El programa de instalaci´on continua creando el sistema de ficheros (el equivalente de formatear un disquete en MS-DOS) para ambas particiones la de GNU/Linux y la de intercambio, inicializa la partici´on de intercambio y monta la partici´on de GNU/Linux. Una pregunta que le ser´a realizada es si quiere comprobar su disco duro para detectar bloques defectuosos. Si usa una unidad SCSI, conteste “no”. Las unidades SCSI tienen incorporadas la detecci´on y correcci´on de errores. Las unidades IDE y similares no tienen esta facilidad y necesitan ser barridos para encontrar bloques defectuosos. Si tiene una unidad antigua debe hacer esto. Si dice “s´ı”, el programa de instalaci´on invocar´a al programa badblocks marcar´a todos los bloques defectuosos que encuentre. Esto lleva tiempo. Si duda, diga “s´ı”.

2.1.20.

Particionando el disco duro: fdisk y cfdisk

Cada sistema operativo, sea MS-DOS y Microsoft Windows, o GNU/Linux, tiene su propia versi´on de fdisk. Si desea crear una partici´on para ser usada por MS-DOS, use la versi´on de MS-DOS, FDISK.EXE, para crear la partici´on y escribir la tabla. Si va a crear una partici´on para GNU/Linux, debe crearla con la versi´on de GNU/Linux, fdisk. Bajo GNU/Linux, est´an disponibles dos programas de particion de discos: el original fdisk, y uno amigable cfisk. La diferencia entre ellos es que con fdisk usted usa todos los o´ rdenes a trav´es del teclado con letras y n´umeros. Con cfdisk, usted usa el teclado de flechas para resaltar las opciones que desea, y pulsar Enter para ejecutar la orden. La u´ nica vez que use todo menos las teclas flechas y Enter es cuando especifica un n´umero para el tama˜no de la partici´on. Para iniciados, todos los disquetes de arranque de GNU/Linux son creados en esencia id´enticos. Rearranque el ordenador con el disquette de arranque en la unidad. Ser´a saludado con una pantalla con algunas instrucciones y un indicador LILO boot:

y un cursor parpadeante. Si usa la tecla Tab , deber´ıa ver una lista de nombres. Los nombres difieren dependiendo de la distribuci´on, pero busque uno que diga “rescue” o “expert.” La etiqueta “install” inicia el programa de instalaci´on depu´es de cargar el n´ucleo, as´ı que si desea permitir al programa de instalaci´on guiarle a trav´es del proceso de particionado e inicializaci´on del sistema de ficheros, puede usar la etiqueta “install”; de lo contrario, elija una etiqueta diferente. Puede tambi´en necesitar suministrar a GNU/Linux algunos par´ametros de arranque, Para nuestros prop´ositos, esto no deber´ıa ser necesario, pero pronto averiguar´a si e´ ste es el caso. Introduzca un nombre de etiqueta y pulse /keyReturn. Cuando el n´ucleo de GNU/Linux finaliza el proceso de arranque, puede ser obsequiado con cualquiera de un n´umero de indicadores, dependiendo de la distribuci´on. Si tiene un indicador de shell, como el signo libra (#) o el signo d´olar ($), est´a donde necesita estar. Si

38

Obtenci´on e instalaci´on de Linux

no, pruebe pulsando Alt - F2 o Alt - Shift -F2. Deber´ıa poder activar una de las consolas virtuales del sistema. Una vez que tiene un indicador (no necesitar´ıa iniciar la sesi´on), estar´a trabajando como “root” (m´as informaci´on en el Cap´ıtulo 4). Introduzca la orden # fdisk

´ es la utilidad de particionado de discos. Por defecto trabaja con Si es devuelto un error, pruebe cfdisk. Esta /dev/hda, as´ı que si necesita trabajar con el segundo disco duro, use la orden # fdisk /dev/hdb

Dentro de fdisk, pulse m para ver un men´u. Los o´ rdenes que usar´a son: n para crear una nueva partici´on; d para eliminar una partici´on ; t para cambiar el tipo de partici´on (83 es Linux Nativo (ext2), 82 es Linux intercambio (swap)); p imprime en la pantalla la informaci´on de la partici´on actualmente en memoria (no la que est´a en el disco); w escribe la tabla de partici´on en el disco; y q salir.

Hasta que no pulse la orden w , no se modifica nada y puede hacer cambios o salir sin hacerlos. Preste atenci´on a los prefijos y sufijos del tama˜no de la tabla de particiones. Con el tama˜no de la partici´on necesita especificar “+” si el tama˜no estar´a dentro del n´umero de partici´on, y un sufijo de “k” o “M” ( la may´uscula o min´uscula no importa) para especificar KB o MB. Una nota final sobre particiones: puede crear hasta cuatro particiones primarias. Si necesita m´as de cuatro, deber´ıa crear tres particiones primarias y una partici´on extendida. El n´umero de partici´on extendida comienza con el 5, asi que puede tener /dev/hda1, /dev/hda2, /dev/hda3, /dev/hda5, y /dev/hda6 si necesita cinco particiones. Como comprobaci´on final, antes de escribir la tabla de particiones, aseg´urese que sus particiones no se solapan. Siempre y cuando el comienzo y final de un tramo no se solape con ning´un otro, puede estar seguro que los l´ımites de las particiones est´an bien. El n´umero 1024 puede ser mostrado al comienzo para particiones que comiencen a partir del cilindro 1024. Por ahora, tan s´olo considere eso como un recordatorio de que la BIOS no ser´a capaz de leer (o cargar desde) esa partici´on. cfdisk hace exactamente lo mismo que fdisk, pero muestra en pantalla el estado de la tabla de particiones en memoria (no en una partici´on con la que trabajar, y las teclas Flecha Derecha y Flecha Izquierda para seleccionar la acci´on a realizar. Entonces pulse Enter para realizar la acci´on. Tendr´a que introducir la cantidad para el tama˜no con el que desea hacer la partici´on, pero toda la informaci´on es dada en pantalla, justo despu´es de las instrucciones. cfdisk por defecto act´ua sobre /dev/hda, as´ı que debe dar el argumento /dev/hdb si quiere cambiar la tabla de particiones de un segundo disco duro. Recuerde escribir la tabla de particiones antes de salir. Esta es la parte m´as dura de cfdisk. No se solicita confirmaci´on antes de salir. As´ı que seleccione “Escribir” y pulse Enter antes de elegir Salir y pulsar Enter .

2.2.

Distribuciones de GNU/Linux

Ud. se encuentra ahora con la tarea de decidirse por una distribuci´on en particular de GNU/Linux que se ajuste a sus necesidades. No todas las distribuciones son iguales. Muchas de ellas incluyen pr´acticamente todo el software que Ud. necesitar´ıa para poner en marcha un sistema completo— y otras distribuciones son “peque˜nas” distribuciones orientadas a usuarios sin grandes cantidades de espacio en disco. Muchas distribuciones solamente contienen lo esencial del software de GNU/Linux, y se espera que Ud. instale paquetes de software m´as grandes, tales como el sistema X Window. (En el cap´ıtulo 5 le mostraremos c´omo.) El Linux Distribution HOWTO (vea el Ap´endice C) contiene una lista de las distribuciones de GNU/Linux disponibles a trav´es de Internet as´ı como por correo. Si tiene acceso a las noticias de USENET, o a otro sistema electr´onico de informaci´on, puede querer pedir all´ı opiniones personales de gente que haya instalado GNU/Linux. Adem´as, Linux Journal mantiene una tabla de revisiones de distribuciones (consulte http://www.linuxjournal.com/selected.html para leer las versiones on-line de la tabla y los art´ıculos. Incluso mejor, si conoce a alguien que haya instalado GNU/Linux, p´ıdale ayuda y consejo. Existen muchos factores a considerar al elegir una distribuci´on; sin embargo, las necesidades y opiniones de cada uno son diferentes. En la actualidad, la mayor parte de

2.3. Debian GNU/Linux

39

Directorio ./stable/ ./stable/binary-i386 ./stable/disks-i386 ./stable/disks-i386/current ./stable/disks-i386/special-kernels

./stable/msdos-i386

Contenido ´ Ultima versi´on estable de Debian. Paquetes de Debian para la tecnolog´ıa Intel i386. Disquetes de arranque y disquetes ra´ız necesarios para la instalaci´on de Debian. Conjunto de disquetes de arranque actuales. N´ucleos y disquetes de arranque especiales para hardware determinado. Configuraciones que no funcionan con los disquetes de arranque normales. Nombres cortos de ficheros de DOS para los paquetes de Debian.

Cuadro 2.1: Estructura del directorio de Debian GNU/Linux. las distribuciones de GNU/Linux m´as populares incluyen pr´acticamente el mismo software, por lo que la distribuci´on que elija es m´as o menos arbitrario.

2.3.

Debian GNU/Linux

Esta secci´on sobre GNU/Linux fue escrita por Boris Beletsky.

2.3.1.

Debian GNU/Linux: instalaci´on y caracter´ısticas

Dependencias: M´etodos de arranque para la instalaci´on: M´etodos de instalaci´on: Sistema de inicio: Dificultad de instalaci´on: Herramientas gr´aficas de instalaci´on: Utilidad de instalaci´on: Utilidad de mantenimiento de paquetes:

2.3.2.

S´ı Disquetes CD, disco duro, NFS, FTP Sys V init Desafiante No dselect dselect/dpkg

Conseguir las im´agenes de disquete

Si se dispone de un acceso a Internet r´apido y barato, la mejor forma de conseguir Debian es a trav´es de FTP an´onimo (vea el ap´endice C). El sitio FTP principal de Debian est´a en ftp.debian.org en el directorio /pub/debian y su estructura se encuentra descrita en la tabla de la p´agina 39.

La instalaci´on b´asica de Debian necesita unos 12 megabytes de espacio libre en el disco duro y algunos disquetes. Pero antes de nada, usted necesitar´a las im´agenes de los disquetes de arranque y los disquetes de controladores de dispositivo. Debian ofrece dos conjuntos de disquetes de arranque, uno para discos de 1.2 Mb y otro para discos de 1.44 Mb, Adem´as existe otro conjunto de im´agenes base que funcionan con cualquiera de los dos tipos de disquete. Compruebe qu´e tipo de unidad utiliza su sistema en el arranque y descargue las im´agenes adecuadas para su caso.

Elija el conjunto de disquetes apropiado para su hardware seg´un la tabla de la p´agina 40 y copie las im´agenes a los discos de la misma forma que se describe en la p´agina 36.

40

Obtenci´on e instalaci´on de Linux

Nombre de fichero rsc1440.bin drv1440.bin base-1.bin base-2.bin base-3.bin base-4.bin base-5.bin root.bin

Etiqueta Rescue Floppy Device Drivers Base 1 Base 2 Base 3 Base 4 Base 5 Root Disk

rsc1440r.bin

Rescue Floppy

rsc1200r.bin drv1200.bin base-1.bin base-2.bin base-3.bin base-4.bin root.bin

Rescue Floppy Device Drivers Base 1 Base 2 Base 3 Base 4 Root Disk

Descripci´on

Conjunto de disquetes para sistemas con una unidad de 1.44MB y 5MB de RAM como m´ınimo.

Imagen de disco de rescate opcional para sistemas con poca memoria (menos de 5MB de RAM).

Conjunto de disquetes para sistemas con unidades de 1.2MB.

Cuadro 2.2: Disquetes de instalaci´on de Debian GNU/Linux.

2.3.3.

La descarga de paquetes

Para instalar y usar debian, necesitar´a m´as que el sistema base, deber´a decidir qu´e paquetes quiere instalar. Para ello descargue el fichero Packages: ftp://ftp.debian.org/pub/debian/stable/Packages

Este fichero es una lista actualizada de los paquetes Debian disponibles en la distribuci´on estable. El fichero tiene un formato especial: cada paquete tiene su propia entrada separada por una l´ınea en blanco y la informaci´on de cada uno de ellos est´a diferenciada en distintos campos. La tabla de la p´agina 47 describe cada campo y sus posibles valores. Esto le dar´a una idea de como preparar su propia lista de descarga. Cuando ya tenga su lista de paquetes preparada, necesitar´a decidir como descargarlos. Si usted es un usuario experimentado, es posible que prefiera descargar el paquete netbase —y SLIP y PPP, si fuese necesario— y despu´es, descargar el resto de paquetes a trav´es del nuevo GNU/Linux. De cualquier forma, tambi´en puede descargar todos los paquetes que desee con su sistema operativo actual e instalarlos m´as tarde desde una partici´on montada.

2.3.4.

Arrancar con los disquetes e instalar Debian GNU/Linux

El disco de rescate Introduzca el disco de rescate en la unidad de arranque y reinicie. En un minuto o dos, ver´a una pantalla de presentaci´on del disquete de rescate y el s´ımbolo de espera de o´ rdenes “boot”. Se le llama disco de Rescate porque puede usarse para iniciar su sistema y realizar reparaciones si hay alg´un problema que haga que el disco duro no pueda arrancar. Por esta raz´on es recomendable guardar este disquete despu´es de la instalaci´on. Una vez con el s´ımbolo boot: en pantalla, puede hacer dos cosas: pulsar las teclas de funci´on F1 hasta F10 para ver algunas p´aginas con informaci´on de ayuda, o arrancar el sistema. Si tiene cualquier dispositivo hardware al que GNU/Linux no acceda de forma correcta en el momento del arranque, puede intentar encontrar alg´un par´ametro en las pantallas que se visualizan pulsando F3 , F4 , y F5 y a˜nadirlo en la l´ınea de o´ rdenes del arranque. Si desea introducir un par´ametro en la l´ınea de o´ rdenes, aseg´urese de teclear la palabra “linux” y un espacio antes del primer par´ametro. Pulsar simplemente Enter tiene el mismo efecto que si hubiese

Debian GNU/Linux

41

tecleado “linux” sin ning´un par´ametro determinado. Si es la primera vez que inicia el sistema, pulse Enter y observe si este arranca correctamente, es probable que lo haga. En caso contrario, puede reiniciar y buscar alg´un par´ametro especial que informe al sistema del hardware que tiene su equipo. Una vez haya pulsado Enter , deber´a ver los siguientes mensajes: Loading... Uncompressing linux...

despu´es ver´a un listado de informaci´on cr´ıptica sobre el hardware presente en su sistema. Puede que haya muchos mensajes de la forma: “can’t find 4 algo,” “algo not present 5 ,” “can’t initialize 6 algo”, o incluso “this driver release depends on 7 algo,” La mayor´ıa de estos mensajes no ocasionar´an ning´un problema. Este tipo de discos de arranque de instalaci´on se hace de modo que sean capaces de funcionar en ordenadores con dispositivos perif´ericos muy distintos. Obviamente, no todos los ordenadores tienen todos los dispositivos posibles, y el sistema operativo demanda aquellos que no encuentra en el ordenador. El sistema puede detenerse tambi´en durante alg´un tiempo, esto ocurre cuando espera la respuesta de un dispositivo que no est´a presente. Si el tiempo que tarda el sistema en arrancar es excesivamente largo, puede crear un n´ucleo personalizado despu´es de la instalaci´on que no tenga los controladores de los dispositivos no existentes. Sistemas con poca memoria En el caso de que su sistema tenga 4MB de RAM, aparecer´a en pantalla un texto que trata de la poca memoria y un men´u de tres opciones a elegir. Sin embargo, si su sistema cuenta con memoria RAM suficiente, aparecer´a directamente un cuadro de di´alogo que le dar´a a elegir el tipo de monitor: en color o monocromo. Si ve el men´u de poca memoria, deber´a elegir las opciones adecuadas en su caso, particionar su disco duro, activar la partici´on de intercambio8 e iniciar el sistema gr´afico de instalaci´on. El programa que se usa para particionar el disco se llama cfdisk; deber´ıa verse la p´agina de manual de cfdisk y las instrucciones que se muestran en la p´agina 37 como ayuda adicional. Usando cfdisk podr´a crear una partici´on GNU/Linux de intercambio (tipo 82) en el disco duro. Esta partici´on es necesaria durante la instalaci´on como memoria virtual, ya que probablemente, el proceso usar´a una cantidad de memoria superior a la memoria RAM f´ısica de la que usted dispone. Seleccione la cantidad de memoria virtual que tiene intenci´on de usar una vez instalado el sistema; esa cantidad ser´a exactamente igual al espacio de disco requerido. Diecis´eis megabytes es probablemente la partici´on m´as peque˜na aconsejable, pero mejor usar 32 megabytes si puede permit´ırselo, y 64 megabytes si su disco es lo suficientemente grande y dispone del espacio de disco suficiente. Monitor en color o monocromo Una vez que el sistema termine de iniciarse, deber´a ver el cuadro de di´alogo del tipo de monitor. Si su monitor es monocromo, es decir, visualiza solo blanco y negro, pulse Enter y contin´ue con la instalaci´on. En caso contrario, seleccione Color en el men´u moviendo el cursor con las flechas del teclado y pulse Enter : la pantalla cambiar´a de blanco y negro a color. Pulse Enter otra vez y contin´ue con la instalaci´on. El menu´ principal Lo pr´oximo que ver´a ser´a un cuadro de di´alogo que dice 9 : The installation program is determining the current state of your system.

En algunos ordenadores, este mensaje aparecer´a y desaparecer´a demasiado r´apido para leerlo. Se muestra entre algunos pasos del proceso de instalaci´on, el programa comprueba el estado del sistema despu´es de cada 4 N.

del T.: “no se puede encontrar” del T.: “no est´a presente”. 6 N. del T.: “no se puede iniciar”. 7 N. del T.: “la versi´ on de este controlador depende de” 8 N. del T.: del ingl´ es “swap”. 9 N. del T.: el siguiente mensaje se puede traducir como: “El programa de instalaci´ on est´a determinando el estado actual de su sistema”. 5 N.

42

Obtenci´on e instalaci´on de Linux

uno de estos pasos. Esto le permitir´ıa reiniciar la instalaci´on sin perder el trabajo realizado hasta entonces en el caso de apagar el sistema en mitad de la instalaci´on. Si necesitara reiniciar todo el proceso, deber´ıa seleccionar el tipo de monitor de nuevo, configurar el teclado, reactivar la partici´on de intercambio y montar otra vez cualquier disco que haya iniciado anteriormente. Sin embargo, cualquier otro cambio efectuado en el sistema se salvar´a. Durante todo este proceso, se le mostrar´a el men´u principal. Sus elecciones ir´an cambiando en la parte de arriba del men´u para indicarle el progreso en la instalaci´on del sistema. Phil Hughes escribi´o en Linux Journal que se puede ense˜nar a una gallina a instalar Debian, lo que quiso decir con esto es que el proceso de instalaci´on es como picotear en la tecla Enter . Deber´ıa poner Next10 , y... en este momento, la siguiente opci´on debe ser11 : Configure the Keyboard

Configurar el teclado Aseg´urese de que la opci´on Next est´e seleccionada y pulse Enter para acceder al men´u de configuraci´on del teclado. Seleccione un teclado que concuerde con la disposici´on usada por su idioma o seleccione algo similar si no encuentra el que desea, despu´es de la instalaci´on podra elegir un teclado de una lista m´as amplia. Seleccione entonces su elecci´on y pulse Enter . Use las flechas para mover el cursor—´estas est´an en el mismo sitio en los teclados de todos los idiomas y son independientes de la configuraci´on idiom´atica. El int´erprete de o´ rdenes Si usted es un usuario experimentado en UNIX o GNU/Linux, pulse las teclas Alt y F2 al un´ısono para acceder a la segunda consola virtual. Es decir, debe pulsar la tecla Alt a la izquierda de la barra espaciadora y la tecla de funci´on F2 . Ver´a una pantalla independiente en la que se ejecuta un clon del int´erprete de o´ rdenes Bourne llamado ash. En ese punto, el sitema de ficheros raiz est´a en el disco RAM y hay un conjunto limitado de utilidades UNIX disponibles para su uso. Podr´a ver cuales son estos programas disponibles con la orden siguiente: ls /bin /sbin /usr/bin /usr/sbin

El int´erprete y los o´ rdenes solo deben utilizarse en caso de que algo vaya mal. Normalmente, se usa siempre el men´u —no el int´erprete de o´ rdenes— para activar la partici´on de intercambio, ya que el programa del men´u no puede detectar lo que usted haga desde el int´erprete. Pulse Alt - F1 para volver al men´u. GNU/Linux ofrece m´as de 64 consolas virtuales, pero en el disco de rescate solo est´an disponibles unas pocas. ´ ¡El ultimo paso! ¿Ha hecho una copia de seguridad de sus datos?. Este ser´a el primer paso para borrar todos los datos de sus discos duros y el u´ ltimo para salvar su viejo sistema. De forma que si no ha hecho copia de seguridad de sus discos, retire el disquete de la unidad, reinicie el sistema y h´agala. Particionar los discos duros Si todav´ıa no ha particionado sus discos en una partici´on nativa de linux12 y otra de intercambio, la opci´on Next ser´a13 : Partition a Hard Disk

En el caso de que haya creado al menos una partici´on nativa de linux y otra de intercambio, la opci´on Next ser´a14 : Initialize and Activate the Swap Disk Partition

o puede que se salte este paso si su sistema tiene poca memoria y el programa de instalaci´on ya activ´o la partici´on de intercambio al principio. Sea cual sea la opci´on Next, podr´a usar la flecha hacia abajo para seleccionar: 10 N.

del T.: “next” se puede traducir al castellano como “siguiente”. del T.: “Configuraci´on del teclado”. 12 N. del T.: linux native. 13 N. del T.: “Particionar el disco duro”. 14 N. del T.: “Iniciar y activar una partici` on de intercambio”. 11 N.

Debian GNU/Linux

43

Partition a Hard Disk

El men´u Partition a Hard Disk le ofrecer´a una lista de unidades de disco que usted puede particionar y ejecutar´a el programa cfdisk (vea la p´agina 37) que le permite crear y editar las particiones de disco. Debe crear al menos una partici´on de Linux (tipo 83). La partici´on de intercambio se usar´a para proveer de memoria virtual al sistema y debe ser de entre 16 y 128 megabytes, dependiendo del espacio de disco del que disponga y de cuantos programas grandes quiera ejecutar. Linux no usar´a m´as de 128 megabytes de memoria de intercambio, por lo que no hay raz´on para hacer la partici´on de intercambio mayor que esa cantidad. Este tipo de partici´on es enormemente recomendable, pero puede obviarla si lo desea y si su sistema tiene m´as de 16 Mb de RAM. Iniciar y activar la partici´on de intercambio Esta es la opci´on Next despu´es de crear una partici´on en el disco. Tiene la elecci´on de iniciar y activar una partici´on de intercambio nueva, activar una partici´on previamente iniciada o no usar ninguna partici´on de intercambio. Siempre es posible re-inicializar una partici´on de intercambio, as´ı que seleccione Initialize and Activate the Swap Disk Partition a no ser que est´e seguro de que sabe lo que est´a haciendo. Esta opci´on le permitir´a inspeccionar la partici´on en busca de bloques que no puedan ser le´ıdos a causa de defectos en la superficie de los platos del disco. Esto es u´ util si tiene discos MFM, RLL, o IDE m´as antiguos, adem´as, verificar el disco nunca es malo. Un disco SCSI que funcione correctamente no necesitar´a ser verificado. Tienen su propio mecanismo interno para marcar los bloques de disco defectuosos. La partici´on de intercambio proporciona memoria virtual para complemetar la RAM en su sistema y se usa incluso durante la instalaci´on. Esta es la raz´on por la que debe ser inicializada primero. Iniciar una partici´on Linux En este punto, la opci´on Next deber´ıa ser: Initialize a Linux Disk Partition15

Si no lo es, entonces no ha completado el proceso de particionado de disco o no ha hecho alguna de las elecciones relacionadas con la partici´on de intercambio. Puede iniciar un partici´on Linux, o puede montar una partici´on inicializada previamente. Los disquetes de arranque no pueden actualizar el sistema antiguo sin borrar los ficheros—Debian ofrece un procedimiento distinto del de usar estos disquetes para actualizar un sistema Debian ya existente. As´ı que, si se est´an usando tiene particiones antiguas que no est´en vac´ıas, deber´ıa iniciarlizarlas, lo que borrar´a todos los datos en ellas. Se debe inicializar cualquier partici´on haya creado cuando particion´o el disco. La u´ nica raz´on para montar una partici´on sin inicializarla en este momento deber´ıa ser montar una partici´on en la que tenga ficheros de usuario, como por ejemplo /home, que no quiera borrar. Seleccione la opci´on Next para inicializar y montar la partici´on ra´ız (el directorio “/”). La primera partici´on que el sistema monte o inicie despu´es de la partici´on de intercambio, si la est´a usando, es la partici´on montada como ra´ız. Despu´es de inicializar la partici´on se le dar´a la oportunidad de buscar en ella bloques da˜nados, al igual que cuando inici´o la partici´on de intercambio. Nunca hace da˜no inspeccionar una partici´on. Tenga en cuenta que este paso puede tardar 10 minutos o m´as si se trata de un disco duro grande. Instalar el sistema base Una vez haya montado la partici´on ra´ız, la opci´on Next ser´a: Install the Base System16 .

a no ser que ya haya realizado alguno de los pasos de instalaci´on. Usando las flechas puede seleccionar la opci´on para iniciar o montar particiones de disco en caso de que tenga que configurar particiones adicionales. Si ha creado particiones independientes para /var, /usr, u otros sistemas de ficheros ahora es el momento de inicializarlas y montarlas. Habr´a una pausa mientras el sistema busca una copia local del sistema base. Esta b´usqueda no tendr´a e´ xito ya que est´a preparada para instalaciones desde CD-ROM y se le ofrecer´a un men´u de unidades desde las que 15 N. 16 N.

del T.: “Inicializar una partici´on Linux”. del T.: “Instalar el sistema base”

44

Obtenci´on e instalaci´on de Linux

leer los disquetes base, seleccione la unidad apropiada y cuando el programa lo requiera, introduzca los disquetes base 1, 2, 3, 4, y 5 si est´a usando disquetes de 1.2MB. Si uno de los disquetes base est´a da˜nado y no puede leerse, necesitar´a crear un disquete que lo sustituya e introducir los 5 discos otra vez. Despu´es de leer los disquetes, el sistema instala los ficheros, lo que le llevar´a 10 minutos o m´as en un sistema lesto. ´ Instalar el nucleo del sistema operativo Llegado este punto, la opci´on Next debe ser: Install the Operating System Kernel17

Selecci´onela y se le pedir´a que elija una unidad de disquete e inserte el Disquete de Rescate. Esto, copia el n´ucleo en el disco duro. Este mismo n´ucleo se usar´a m´as tarde para crear un disco de arranque personalizado para su sistema y para hacer el disco duro iniciable sin depender de un disquete. Instalar los controladores de dispositivo Seleccione la opci´on para instalar los controladores de dispositivo. Se le pedir´a que inserte el Disquete de Controladores y los controladores se copiar´an en el disco duro. Seleccione Configure Device Drivers18

para buscar los dispositivos que est´en en el sistema. Config´urelos, de forma se cargar´an cada vez que el sistema arranque. Hay tambi´en una categor´ıa para controladores de dispositivos PCMCIA, pero no los necesitar´a. Despu´es de la instalaci´on puede instalar el paquete pcmcia-cs que detectar´a las tarjetas PCMCIA y configurar´a las que encuentre autom´aticamente. Este programa tambi´en reconoce tarjetas cambiadas en caliente, es decir, cuando el sistema est´a funcionando—todas estas ser´an configuradas cuando sean conectadas y desconfiguradas cuando sean desconectadas. Configurar el sistema base En este punto el sistema de instalaci´on ha copiado todos los ficheros que forman un sistema Debian m´ınimo, pero deben realizarse algunas configuraciones antes de arrancar el sistema, de modo que seleccione: Configure the Base System19

Esto le preguntar´a por su zona horaria. B´usquela o seleccione la regi´on del mundo adecuada en el men´u y escr´ıbala en el indicador. Puede que esto le lleve a otro men´u donde deba seleccionar informaci´on m´as espec´ıfica. Despu´es, se le preguntar´a si el reloj de su sistema debe ajustarse con el horario medio de Greenwich (Greenwich Mean Time, GMT) o el horario local. Seleccione GMT si est´a usando s´olo GNU/Linux o alg´un otro sistema UNIX o seleccione el horario local si est´a usando otro sistema operativo como MS-DOS o Microsoft Windows. Los sistemas UNIX mantienen el horario GMT en el reloj del sistema y lo convierten en horario local mediante software. Esto les permite seguir la pista del cambio de horas del horario de ahorro de energ´ıa y los a˜nos bisiestos, e incluso permite a usuarios que se registren desde otra zona horaria configurar su zona horaria individualmente en su terminal. Si pone el reloj del sistema en GMT y su localidad usa cambios de hora para ahorrar energ´ıa, el sistema ajustar´a estos cambios horarios en los d´ıas adecuados. Configurar la red local Debe configurar la red local aunque no tenga ninguna, en este caso solo tendr´a que responder a las dos primeras preguntas: >Cu´ al es el nombre de su ordenador? >Su sistema est´ a conectado a una red?

Si est´a conectado a una red local, compruebe la siguiente informaci´on y si desconoce algo pregunte al administrador de su sistema o a su ISP: 17 N.

del T.: “Instalar el n´ucleo del sistema operativo” del T.: “Configurar Controladores de Dispositivo” 19 N. del T.: “Configurar el sistema base” 18 N.

Debian GNU/Linux

45

el nombre de anfitri´on20 de su ordenador; el nombre de dominio de su ordenador o su ISP; la direcci´on IP de su ordenador; la m´ascara de red que usa su red local; la direcci´on IP de su red local; la direcci´on de difusi´on que usa su red local; ´ en el caso de que su red tenga pasarela, su direcci´on IP. Esta ser´a la direcci´on a la que se enruten los paquetes; el sistema en su red local que se usar´a como servicio de nombres de dominio (Domain Name Service, DNS); y si se va a conectar a la red local usando Ethernet o no. El programa supondr´a que la direcci´on IP de la red es el resultado de la operaci´on AND bit a bit entre la direcci´on IP de su sistema y la m´ascara de red. Supondr´a que la direcci´on de difusi´on es el resultado de la operaci´on OR bit a bit entre la IP de su sistema y la operaci´on NOT bit a bit de la m´ascara de red. Tambi´en supondr´a que su sistema de pasarela es tambi´en su servidor DNS. Si no conoce la respuesta a alguna de las preguntas anteriores utilice las suposiciones del sistema—si es necesario, puede cambiar todo esto despu´es de la instalaci´on editando el fichero /etc/init.d/network. Hacer el disco duro arracable Si decide que GNU/Linux arranque directamente desde el disco duro, se le pedir´a que instale el registro de arranque maestro.21 Si no est´a usando un gestor de arranque (si no sabe qu´e es un gestor de arranque es probable que no lo est´e usando) responda que “s´ı” a esta pregunta. La siguiente pregunta es si quiere arrancar GNU/Linux autom´aticamente desde el disco duro cuando encienda el sistema. Esto configura a GNU/Linux como la partici´on iniciable—la u´ nica que ser´a cargada desde el disco duro. Si responde que “no” podr´a seleccionar despu´es la partici´on iniciable usando el programa de MS-DOS FDISK.EXE o los programas de GNU/Linux fdisk o activate. Crear un disquete de arranque Es aconsejable crear un disquete de arranque aunque pretenda arrancar el sistema desde el disco duro. La raz´on es que es posible que el sistema de arranque se instale incorrectamente en el disco duro. Sin embargo, un disquete de arranque casi siempre funciona. Seleccione: Make a Boot Floppy22

en el men´u e inserte un disquete vac´ıo en la unidad. Asegurese de que no est´a protegido contra escritura. El programa intentar´a formatearlo y escribir en e´ l. Etiquete el disco como “disco de arranque personal” y prot´ejalo contra escritura una vez haya acabado la operaci´on. El momento de la verdad Esto es lo que los ingenieros el´ectricos llaman “la prueba de humo”23 — es lo que ocurre cuando se enciende un nuevo sistema por primera vez. Retire el disquete de la unidad y seleccione24 : Reboot the System25

en el men´u. Si GNU/Linux no arranca, inserte el disquete de arranque personalizado que cre´o en el paso anterior y reinicie el sistema. Ahora deber´ıa iniciar y deber´ıan verse los mismos mensajes que se vieron cuando arranc´o con el disquete de instalaci´on seguidos de otros nuevos. 20 N.

del T.: del ingl´es “host”. del T.: del ingl´es “master boot record” (MBR). 22 N. del T.: “Crear un Disquete de arranque” 23 N. del T.: del ingl´ es “smoke test”. 24 N. del T.: “Reiniciar el sistema”. 25 N. del T.: “Reiniciar el sistema”

21 N.

46

Obtenci´on e instalaci´on de Linux

˜ Anadir una cuenta de usuario y su clave Despu´es de que haya registrado los usuarios (el cap´ıtulo 4 trata esto con m´as detalle), se lanzar´a dselect, el programa de Debian para el mantenimiento de paquetes. Deber´a leer el tutorial antes de intentar instalar paquetes con dselect. dselect le permite seleccionar los paquetes que quiere instalar en su sistema. El software de mantenimiento de paquetes de Debian se describe en detalle a partir de la p´agina 46. Si tiene un CD-ROM o un disco duro con los paquetes Debian adicionales o si est´a conectado a Internet, es posible que quiera leer esa secci´on ahora. De no ser as´ı, salga de dselect. Puede usar el software de mantenimiento de paquetes a´un despu´es de haber copiado los ficheros de paquete de Debian en su sistema. Debe ser superusuario (root) para usar dselect. Si instala el sistema X-Window y no usa un teclado estadounidense lea la nota de la versi´on de X11 para teclados no estadounidenses. Registr´andose Despu´es de salir de dselect, aparecer´a el s´ımbolo login:. Reg´ıstrese en el sistema usando el nombre de usuario personal y la clave que eligi´o. El sistema est´a preparado para su uso.

2.3.5.

Usando Debian GNU/Linux

Esta secci´on describe el sistema de paquetes de Debian y las utilidades espec´ıficas de Debian. El formato de fichero de los Paquetes de Debian/GNU Linux se muestra en la tabla de la p´agina 47.

La distribuci´on Debian se encuentra en ficheros llamados paquetes26 . Cada paquete es un conjunto de ficheros (programas normalmente) que pueden instalarse usando dpkg o dselect. Adem´as, el paquete contiene informaci´on sobre e´ l mismo que es le´ıda por las utilidades de instalaci´on. Clasificaci´on de los paquetes Los paquetes que se incluyen en Debian GNU/Linux se clasifican de acuerdo con lo esenciales que sean (su prioridad) y su funci´on (su secci´on o categor´ıa general). La prioridad de un paquete indica lo esencial o necesario que es. Debian GNU/Linux clasifica todos los paquetes en cuatro niveles de prioridad distintos:

Requeridos Estos paquetes deben instalarse para que el sistema funcione correctamente y deben ser instalados como parte del sistema base. Nunca borre un paquete requerido del sistema a no ser que est´e totalmente seguro de lo que hace. Recu´erdelo repitiendo: Nunca, nunca, nunca borre un paquete requerido del sistema a no ser que est´e totalmente seguro de lo que hace.. Es posible que haci´endolo su sistema quede completamente inutilizable. Los paquetes requeridos se abrevian en dselect como Req. Importantes Los paquetes importantes se encuentran en casi todos los sistemas tipo UNIX. Estos paquetes incluyen cron, man, y vi. Los paquetes importantes se abrevian en dselect como Imp. Est´andar Los paquetes est´andar son los que, m´as o menos, comprenden el sistema Debian GNU/Linux “est´andar” caracter´ıstico. El sistema est´andar incluye un software de entorno de desarrollo bastante completo y GNU Emacs. Los paquetes est´andar se abrevian en dselect como Std. Opcionales Los paquetes opcionales comprenden un sistema bastante completo. Este sistema opcional incluye TEX y el sistema X-Window. Los paquetes opcionales se abrevian en dselect como Opt. 26 N.

del T.: Packages

Debian GNU/Linux

Package Priority

47

Nombre del paquete Importancia del paquete Required Important Optional Extra

Section

Maintainer Version Depends Recommends Suggests Filename MS-DOS-Filename Size Md5sum Description

Debe ser instalado para el funcionamiento de las operaciones del propio sistema. No requerido pero importante. No necesario pero u´ til. Puede tener conflictos con otros paquetes prioritarios.

Categor´ıa general Base Devel X11 Admin Doc Comm Editors Electronics Games Graphics Hamradio Mail Math

Sistema base. Herramientas de desarrollo. Paquetes para el sistema X Window. Utilidades de Administraci´on. Documentaci´on. Varias utilidades de comunicaci´on. Varios editores. Utilidades para electr´onica. Juegos. (Lo sab´ıa, ¿verdad?) Utilidades gr´aficas. Utilidades para ham radio. Clientes y servidores de correo electr´onico. Utilidades para matem´aticas. (como calculadoras, etc. . . ) Net Varias herramientas para conectar a una red (normalmente TCP/IP). News Servidores y clientes para noticias en Internet (NNTP). Shells Int´erpretes de o´ rdenes como tcsh y bash. Sound Cualquier aplicaci´on para el sonido (como reproductores de CD’s de audio). TeX Cualquier cosa que pueda leer, escribir o convertir TEX. Text Aplicaciones para manipular texto (como nroff). Misc Todo lo que no encaja en las categor´ıas anteriores. Nombre de la persona que mantiene el paquete y su direcci´on de e-mail. Versi´on del paquete en el formato upstream-version–debian-version. Lista de los dem´as paquetes de los que depende y sin los que funcionar´ıa. Otro nivel de dependencia—es muy recomendable que los paquetes listados en este campo sean instalados si se va a usar este paquete. Estos paquetes pueden ser u´ tiles para el paquete que se describe. Nombre del fichero de este paquete en el FTP o el CD-ROM. Nombre del fichero de este paquete en el formato corto de DOS. Tama˜no del paquete despu´es de la instalaci´on. El md5sum comprueba o asegura que el paquete es oficial. Este campo describe el paquete—no lo descargue sin leerlo.

Cuadro 2.3: Campos en la estructura del fichero Packages de Debian/GNU GNU/Linux.

48

Obtenci´on e instalaci´on de Linux

Extra Los paquetes extra son u´ tiles solo para un grupo peque˜no de gente selecta, o se incluyen para un prop´osito espec´ıfico. Los paquetes extra pueden incluir aquellos programas como los dedicados a la electr´onica o a ham radio27 . Los paquetes extra se abrevian en dselect como Xtr. dselect selecciona autom´aticamente por omisi´on el sistema est´andar si el usuario no quiere indicar individualmente los paquetes a instalar. La secci´on del paquete indica su funci´on. Los paquetes en el CD-ROM y en el FTP est´an ordenados en subdirectorios de acuerdo con su funci´on. Los nombres de los directorios casi explican su contenido: por ejemplo, el directorio admin contiene los paquetes para la administraci´on del sistema y el directorio devel contiene los paquetes de software de desarrollo28 y programaci´on. A diferencia de los niveles de prioridad, hay muchas secciones, y probablemente se a˜nadan m´as en el futuro, por lo que no se pueden describir individualmente en esta gu´ıa. Las relaciones entre los paquetes Cada paquete incluye informaci´on acerca de c´omo se relaciona con los otros paquetes del sistema. Hay cuatro tipos de relaci´on de paquetes en Debian GNU/Linux: conflictos, dependencias, recomendaciones y sugerencias. Un conflicto ocurre cuando dos o m´as paquetes no pueden coexistir en el mismo sistema. Un buen ejemplo de paquetes que entran en conflicto es los agentes de transferencia de correo (mail transfer agents, MTAs). Un MTA es un programa que se encarga de enviar correo a usuarios en el sistema y a otras m´aquinas en la red. Debian GNU/Linux tiene dos agentes de transferencia de correo: sendmail y smail. Solo puede haber instalado un agente de transferencia de correo a la vez. Los dos hacen el mismo trabajo y no est´an dise˜nados para coexistir. Por lo tanto, los paquetes sendmail y smail entran en conflicto. Si intenta instalar sendmail cuando smail ya est´a instalado el sistema de mantenimiento de paquetes de Debian GNU/Linux rehusar´a dicha instalaci´on. En el caso contrario, si intenta instalar smail cuando sendmail ya est´a instalado, dselect (o dpkg; vease m´as adelante) rehusar´a la instalaci´on. Una dependencia ocurre cuando un paquete requiere otro para funcionar correctamente. Siguiendo con el ejemplo del correo electr´onico, los usuarios leen el correo con unos programas llamados agentes de correo de usuario (mail user agents, MUAs). Los MUAs m´as populares son elm, pine, y emacs con el modo RMAIL. Es normal instalar varios MUAs ya que estos no entran en conflicto entre s´ı, pero los MUAs no envian correo—este es el trabajo de los MTA. Por lo que todos los paquetes de agentes de correo de usuario dependen de un agente de transferencia de correo. Un paquete tambi´en puede recomendar o sugerir otro paquete relacionado con e´ l.

2.3.6.

dselect

Esta secci´on es un breve tutorial de dselect de Debian. Si desea obtener informaci´on m´as detallada, consiga el manual de dselect en: ftp://ftp.debian.org/debian/Debian-1.2/disks-i386/current/dselect.beginner.6.html

dselect es simple y cuenta con una interfaz a modo de men´u que ayuda a instalar los paquetes. Le llevar´a a trav´es del proceso de instalaci´on siguiendo el men´u de la pantalla: Debian GNU/Linux dselect package handling front end. 0. [A]ccess Choose the access method to use. 1. [U]pdate Update list of available packages, if possible. 2. [S]elect Request which packages you want on your system. 3. [I]nstall Install and upgrade wanted packages. 4. [C]onfig Configure any packages that are unconfigured. 5. [R]emove Remove unwanted software. 6. [Q]uit Quit dselect. 27 N. 28 N.

del T.: se denomina “ham radio” al uso de sistemas de radio para la conexi´on a Internet del T.: desarrollo en ingl´es es “development”, de ah´ı “devel”.

Debian GNU/Linux

49

Hay dos formas de seleccionar una opci´on en el men´u: eligi´endola con las flechas o pulsando la tecla que corresponda a la letra entre par´entesis. Acceso29

En este men´u puede elegir el m´etodo de acceso para obtener e instalar los paquetes. Abreviatura cdrom nfs harddisk mounted floppy ftp

Descripci´on instalaci´on desde CD-ROM instalaci´on desde un servidor NFS (no montado a´un) instalaci´on desde una partici´on de disco duro (no montada a´un) instalaci´on desde un sistema de ficheros ya montado instalaci´on desde un grupo de disquetes instalaci´on a trav´es de FTP

Actualizaci´on30 dselect lee la base de datos de los paquetes (descrita anteriormente) y crea otra base de datos de los paquetes disponibles en su sistema. Selecci´on31 Esta secci´on del programa sirve para seleccionar los paquetes. El´ıjala y pulse Enter . Si su ordenador es lento puede que la pantalla permanezca en negro durante 15 segundos. Lo primero que aparecer´a despu´es sar´a la p´agina 1 del fichero de ayuda. Puede ver esta pantalla en cualquier momento de la selecci´on pulsando “?” o puede ver el resto de las pantallas de ayuda pulsando la tecla . . Para salir de la pantalla de selecci´on despu´es de que todas las selecciones se completen pulse Enter . Esto le devolver´a al men´u principal si no hay ning´un problema con sus selecciones. Debe resolver esos posibles problemas antes de nada. Cuando est´e satisfecho con las pantallas que vayan surgiendo, pulse Enter . Es muy normal que haya alg´un conflicto de dependencias. Si selecciona el paquete A y este requiere el paquete sin seleccionar B, en vez de continuar, dselect le advertir´a del problema, es m´as, probablemente sugiera una soluci´on. Si el paquete A entra en conflicto con el B debe elegir uno de los dos. Instalaci´on32 dselect le muestra los 800 paquetes al completo e instala los que usted seleccione. Deber´a tomar decisiones durante este proceso y es u´ til cambiar a una shell distinta para comparar, por ejemplo, un fichero de configuraci´on antiguo con uno nuevo. Si el fichero antiguo se llama conf.modules, por ejemplo el nuevo puede llamarse conf.modules.dpkg-new. La instalaci´on ser´a con mucho m´as r´apida en ordenadores m´as potentes. Puede parar el proceso pulsando Control - S y reiniciarlo con Control - Q . Al final de la ejecuci´on, deber´a listarse cualquier paquete desinstalado. Configuraci´on33 La mayor´ıa de los paquetes se configuran en el tercer paso, sin embargo, cualquier configurai´on pendiente se har´a aqu´ı. Borrar34 Salir35

2.3.7.

Borra los paquetes que no son necesarios. Au revoir.

dpkg

Esta es la herramienta en l´ınea de o´ rdenes para instalar y manipular los paquetes Debian. Tiene varias opciones que le permitir´an instalar, configurar, actualizar, borrar y realizar otras operaciones con los paquetes Debian. Incluso puede construir sus propios paquetes. dpkg tambi´en permite listar los paquetes disponibles, los ficheros pertenecientes a cada paquete, a qu´e paquete pertenece un fichero y dem´as. 29 N.

del T.: del T.: 31 N. del T.: 32 N. del T.: 33 N. del T.: 34 N. del T.: 35 N. del T.: 30 N.

referido a la opci´on Access del men´u. opci´on Update Select Install Config Remove Quit

50

Obtenci´on e instalaci´on de Linux

Instalar o actualizar paquetes nuevos o ya existentes Escriba el siguiente comando: # dpkg -i nombre de fichero.deb

donde nombreFichero es el nombre del fichero que contiene el paquete Debian, por ejemplo tcsh 6.06-11 i386.deb. dpkg es parcialmente interactivo; durante la instalaci´on le puede hacer preguntas adicionales, como si instalar la versi´on nueva de un fichero de configuraci´on o si mantener la versi´on antigua. Tambi´en puede desempaquetar un paquete sin configurarlo en absoluto: # dpkg --unpack nombreFichero

Si el paquete depende de otro no intalado o de una versi´on m´as reciente de un paquete ya instalado, o si ocurre cualquier otro problema de dependencia durante la instalaci´on, dpkg no lo configurar´a. Configuraci´on de paquetes instalados Si dpkg se interrumpe durante la instalaci´on y deja alg´un paquete instalado, este paquete se queda sin configurar. El sistema de paquetes de Debian requiere que el paquete est´e configurado para evitar problemas de dependencia. Algunos paquetes tambi´en necesitan ser configurados para funcionar correctamente. Para configurar un paquete, escriba: dpkg --configure paquete

donde paquete es el nombre del paquete, por ejemplo tcsh (observe que este no es el nombre original del fichero desde el que tcsh fue instalado, aquel era m´as largo, inclu´ıa un n´umero de versi´on y terminaba en .deb). Desinstalar paquetes El sistema de paquetes de Debian cuenta con dos formas de eliminar paquetes: remove y purge. La opci´on remove borra el paquete propiamente dicho, la opci´on purge borra tanto el paquete como sus ficheros de configuraci´on. La forma de usar estas opciones es: # dpkg -r paquete # dpkg --purge paquete

Si hay alg´un paquete instalado que dependa de otro que desea borrar, el paquete no ser´a borrado y dpkg se interrumpir´a con un mensaje de error. Informaci´on del estado de los paquetes Para conocer el estado de un paquete (p. e. instalado, no instalado o no configurado), escriba: # dpkg -s paquete

Listar los paquetes disponibles escriba:

Para listar los paquetes instalados que coincidan con alg´un patr´on,

# dpkg -l patr´onPaquete

donde patr´onPaquete es un argumento opcional que especifica un patr´on para los nombres de paquete a coincidir, como *sh. Se aceptan los caracteres comod´ın normales de un int´erprete de o´ rdenes. Si no especifica el patr´on, se listar´an todos los paquetes instalados. Listar los ficheros pertenecientes a un paquete Para listar todos los ficheros pertenecientes a un paquete determinado, simplemente escriba: # dpkg -L paquete

De cualquier forma, esto no listar´a los ficheros creados por los scripts de instalaci´on de un paquete determinado.

Debian GNU/Linux

51

Buscar el paquete al que pertenece un fichero Para encontrar el paquete al que pertenece un fichero determinado, escriba el comando siguente: # dpkg -S patr´onFichero

donde patr´onFichero es el patr´on con el que buscar los nombres de paquete a coincidir. En este caso tambi´en se permiten los caracteres comod´ın normales. Resumen El uso de dpkg es simple y se prefiere por encima de dselect cuando todo lo que se necesita hacer es instalar, actualizar o borrar una cantidad peque˜na de paquetes. Tambi´en tiene funciones que dselect (una interfaz para dpkg) no tiene, como buscar a qu´e paquete pertenece un fichero. Si desea una lista de opciones completa vea la p´agina de manual dpkg(8).

2.3.8.

Acerca de Debian GNU/Linux

El proyecto Debian GNU/Linux fue iniciado por Ian Murdock en 1993, inicialmente bajo el patrocinio del proyecto GNU de la Free Software Foundation36 . M´as tarde, Debian se separ´o de la FSF. Debian es el resultado de un esfuerzo voluntario para crear un sistema operativo de una compatibilidad con UNIX de alta calidad y libre, basado en el n´ucleo Linux, completado con un conjunto de aplicaciones. La comunidad Debian es un grupo de m´as de 150 voluntarios sin sueldo de todas las partes del mundo que colaboran a trav´es de Internet. Los fundadores del proyecto han formado la organizaci´on Software in the Public Interest37 (SPI) para patrocinar el desarrollo de Debian GNU/Linux. Software in the Public Interest es una organizaci´on no lucrativa formada cuando la FSF retir´o su patrocinio de Debian. El prop´osito de esta organizaci´on es desarrollar y distribuir software libre. Sus objetivos son muy parecidos a los de la FSF, y anima a los programadores a usar la General Public License38 de GNU para sus programas. De cualquier modo, SPI tiene un enfoque ligeramente diferente por el hecho de construir y distribuir un sistema GNU/Linux que diverge en muchos detalles t´ecnicos del sistema GNU planeado por FSF. SPI sigue en contacto con FSF y coopera enviando cambios en software GNU y pidiendo a sus usuarios que hagan donaciones a favor de FSF y del proyecto GNU. Se puede poner en contacto con SPI por correo en: Software in the Public Interest P.O. Box 70152 Pt. Richmond, CA 94807-0152

2.3.9.

Listas de correo

Hay varias listas de correo relacionadas con Debian GNU/Linux: [emailprotected] Moderada. Anuncios importantes del sistema. Normalmente cerca de un mensaje al mes. [emailprotected] Anuncios de nuevas versiones de paquetes para la distribuci´on estable. Normalmente varios mensajes al d´ıa. [emailprotected] Anuncios de nuevas versiones de paquetes para la distribuci´on inestable. Normalmente varios mensajes al d´ıa. [emailprotected] Una lista de correo donde los usuarios de Debian piden y consigen soporte. Normalmente sobre 50 mansages al d´ıa. 36 N.

del T.: Fundaci´on de Software Libre. del T.: Software para el Inter´es P´ublico. 38 N. del T.: Licencia P´ ublica General. 37 N.

52

Obtenci´on e instalaci´on de Linux

[emailprotected] [emailprotected] [emailprotected] Listas para aquellos que est´an implicados en portar software Debian a las plataformas SPARC, DEC Alpha, y Motorolla 680x0. Tambi´en hay varias listas de correo para desarrolladores de Debian. Puede subscribirse a aquellas listas de correo por correo o por World Wide Web. Para m´as informaci´on, por favor visite http://www.debian.org/.

2.3.10.

´ Sistema de busqueda de errores

El proyecto Debian tiene un sistema de b´usqueda de errores que se encarga de los errores de los que informan los usuarios. Tan pronto como se informa del error, se numera y toda la informaci´on conocida del error en particular se guarda en un fichero y se env´ıa al encargado de mantener el paquete. Cuando el error sea arreglado, el encargado lo marca como hecho (“closed39 ”). Si se cierra por equivocaci´on, debe ser reabierto. Para recibir m´as informaci´on sobre el sistema de b´usqueda de errores, env´ıe un e-mail a [emailprotected] con help en el cuerpo del mensaje.

2.3.11.

Muestras de agradecimiento de Debian

Muchas gracias a Bruce Perens y a los otros autores del material relacionado con Debian usado para escribir este cap´ıtulo. Gracias tambi´en a Vadik Vygonets, mi querido primo, que me ayudo un poco. Por u´ ltimo, las gracias tambi´en merecidas a los miembros de la comunidad Debian por su duro trabajo. Esperemos que Debian GNU/Linux llegue a ser cada vez mejor.

2.3.12.

´ Ultima nota

Debian GNU/Linux cambia muy r´apido, y muchos factores pueden cambiar m´as r´apido que este libro. El texto fuente de esta secci´on se actualiza regularmente. Puede encontrarlo en: http://www.cs.huji.ac.il/˜ borik/debian/ligs/

2.4. Red Hat Linux

TM

Esta secci´on sobre Linux Red Hat, fue escrita por Henry Pierce.

2.4.1.

Caracter´ısticas de la instalaci´on de Linux Red HatTM

Dependencias: M´etodos de arranque de la instalaci´on: M´etodos de instalaci´on: Inicio del sistema: Facilidad de la instalaci´on: Herramientas Gr´aficas de administraci´on: Tipo de utilidad de instalaci´on: Utilidades de mantenimiento de los paquetes: 39 N.

del T.: “cerrado”.

S´ı CD, disquete,loadin (desde DOS) CD, disco duro, NFS, FTP, SMB Sys V init F´acil Muchas Un script que llama al RPM RPM, glint

Linux Red Hat

2.4.2.

53

El sistema RPM de administraci´on de paquetes

El sistema de administraci´on de paquetes RPM de Linux Red Hat, administra el software definiendo c´omo se crea un paquete para la instalaci´on y almacena informaci´on acerca de sus componentes y la forma de instalaci´on durante el proceso de construcci´on. Un paquete RPM contiene un bloque organizado de datos ´ en su encabezado. Estos pueden agregarse a una base de datos que describa, por ejemplo, a d´onde pertenece el paquete, qu´e paquetes de soporte se requieren, si los paquetes requeridos est´an instalados, y proporciona una forma de determinar las dependencias del software. El Administrador de Paquetes de Red Hat (RPM) da a los administradores de sistema la habilidad de: Actualizar componentes individuales o sistemas enteros manteniendo la configuraci´on actual. Buscar en la base de datos la ubicaci´on de ficheros, paquetes, o informaci´on relacionada. Realizar verificaciones que comprueben que el software fue correctamente instalado. Mantener “pr´ıstinos” los paquetes de c´odigo fuente, (es decir, proporcionar de forma separada el c´odigo original del autor y el modificado por otras personas), de modo que pueda hacerse un seguimiento de las dificultades que surjan al portar el programa a otras plataformas. Debido a que RPM hace esto, se pueden instalar, actualizar o eliminar paquetes con una simple l´ınea de o´ rdenes en modo de texto o con unas pocas pulsaciones del rat´on en la herramienta de administraci´on de paquetes X-Window. Ejemplos de uso de RPM desde la l´ınea de o´ rdenes son: # rpm --install paquete.rpm # instala a paquete # rpm --upgrade paquete.rpm # actualiza a paquete # rpm --erase paquete.rpm # elimina a paquete

Hay cosas mucho m´as complicadas que RPM puede hacer, como pedir a un paquete que descubra si est´a instalado y su versi´on, o pedir informaci´on a un paquete no instalado. En esencia, hace casi cualquier cosa que una herramienta de administraci´on de paquetes deber´ıa hacer. Y Red Hat ha puesto RPM bajo la Licencia P´ublica General GNU. Convenciones en el nombre de un paquete Esencialmente, RPM funciona manteniendo una base de datos central de paquetes instalados, los ficheros de los paquetes y su versi´on. Un paquete.rpm construido correctamente, tiene la particularidad de que su nombre pone de manifiesto, adem´as del nombre del software, su n´umero de versi´on y de revisi´on, la arquitectura de ordenador para la que fue construido y la extensi´on .rpm, la cu´al lo identifica como un paquete RPM. Tomemos, por ejemplo el fichero bash-1.14.7-1.i386.rpm. El nombre en s´ı, ya nos da informaci´on u´ til: el paquete es bash (Bourne Again SHell), su versi´on es 1.14.7, y fue construido por primera vez para la versi´on actual de Linux Red Hat. Est´a hecho para ejecutarse en m´aquinas con procesadores Intel o compatibles, de velocidades iguales o mayores que la de un 80386, y est´a en formato RPM. De modo tal que, si se encuentra un paquete con el nombre bash-1.14.7-2.i386.rpm, entonces se estar´a en conocimiento de que se trata de una segunda construcci´on de bash, versi´on 1.14.7. Probablemente este paquete no contenga los errores que se encontraron en la primera construcci´on y est´e m´as al d´ıa. Aunque la organizaci´on interna de un fichero *.rpm, est´a m´as all´a de los cometidos de esta secci´on, diremos que un paquete debidamente construido contiene un fichero ejecutable, algunos ficheros de configuraci´on, la documentaci´on (o por lo menos las p´aginas de manual), los distintos ficheros relacionados directamente con el programa, un registro con los lugares donde los ficheros del paquete ser´an instalados, y un registro de todos los paquetes requeridos. Tras una instalaci´on exitosa, toda esta informaci´on ser´a registrada en la base de datos RPM del sistema. Se puede encontrar un an´alisis m´as exhaustivo sobre el sistema administrador de paquetes RPM en el RPM COMO (ver Ap´endice A). Dicho material tambi´en est´a disponible en http://www.redhat.com/support/docs/rpm/RPM-HOWTO/RPM-HOWTO.html

54

Obtenci´on e instalaci´on de Linux

2.4.3.

Algunos comentarios sobre la actualizaci´on de Linux Red Hat

Las actualizaciones para Linux Red Hat, s´olo son posibles desde la versi´on 2.0 en adelante. Esto es, debido a cambios grandes en el formato binario de Linux. Por lo dem´as, las actualizaciones pueden ser realizadas utilizando los mismos m´etodos: CD-ROM, NFS, FTP o disco duro. Desde la versi´on 4.0 de Linux Red Hat, la opci´on de actualizaci´on est´a incorporada en el mismo disco de arranque, en vez de en un programa separado. Es por esto que, si se ha actualizado de v2.1 a v3.0.3 y se desea actualizar nuevamente a la versi´on 4.0, se necesita crear un disco de arranque, en lugar de buscar o realizar un script de actualizaci´on. Este disco ser´a el mismo que se usar´a para instalar Linux Red Hat 4.x desde cero. El m´etodo de actualizaci´on no reformatear´a las particiones, ni tampoco borrar´a los ficheros de configuraci´on.

2.4.4.

Creando los disquetes de instalaci´on

Para crear un juego de disquetes de instalaci´on, se necesitar´a lo siguiente: 1.

La imagen del “Disquete de Arranque” de Red Hat, boot.img, la cual puede encontrarse en: ftp//ftp.redhat.com/pub/redhat/current/i386/images/boot.img

o en el directorio images del CD-ROM de una distribuci´on Red Hat. 2.

La imagen del “Disquete Adicional” de Red Hat, supp.img que est´a disponible en: ftp://ftp.redhat.com/pub/redhat/current/i386/images/supp.img

o en el directorio images del CD-ROM de una distribuci´on Red Hat. Este disquete se usar´a s´olo si el m´etodo de instalaci´on no es desde CD-ROM, o si se necesita soporte PCMCIA para alg´un dispositivo, como por ejemplo una lectora CD-ROM en un port´atil. Este disquete tambi´en se usa, junto con el disquete de arranque, en el caso especial de querer iniciar un sistema GNU/Linux ya instalado en un disco duro. 3. El programa RAWRITE.EXE, el cu´al puede encontrarse en: ftp://ftp.redhat.com/pub/redhat/current/i386/dosutils/rawrite.exe

o en el directorio DOS del CD-ROM de una distribuci´on Red Hat. 4.

Los usuarios de MS-DOS y Windows 95 que instalen Linux Red Hat por primera vez en la m´aquina, la cual tendr´a a GNU/Linux instalado como segundo sistema operativo, deber´an tambi´en obtener: ftp://ftp.redhat.com/pub/redhat/dos/fdips11.zip

y descomprimir el fichero en C:\FIPS Esto es en el caso de que se necesite liberar espacio en el disco duro para crear las particiones de GNU/Linux. 5. Se deber´a crear tambi´en un disco de arranque de emergencia para uno de los sistemas operativos existentes en la m´aquina, la cu´al tendr´a, como ya se dijo, a GNU/Linux instalado como segundo sistema operativo.

2.4.5.

Medios de instalaci´on

Despu´es de crear los disquetes de instalaci´on usando RAWRITE.EXE o dd, tal como se describi´o en la p´agina 36 se deber´a asegurar que el m´etodo de instalaci´on est´e configurado para funcionar correctamente con los disquetes de instalaci´on de Red Hat. Para los m´etodos de instalaci´on por CD-ROM, NFS, FTP y disco duro, el origen debe tener el directorio RedHat coo nivel superior, el cu´al contendr´a a los directorios /base y /RPMS, del siguiente modo:

Linux Red Hat

55

/RedHat |----> /RPMS (contiene los .rpm binarios que se instalar´ an) |----> /base (contiene la base del sistema y los ficheros \\ necesarios para preparar el disco duro)

Los CD-ROMs tendr´an, por supuesto, directorios adicionales, pero los directorios clave que se necesitan para la instalaci´on son RedHat en el nivel superior del CD-ROM junto con /base y bajo /RPMS en CDROMs de terceras partes. Obiamente Red Hat Software asegurar´a que su CD-ROM Official Red Hat Linux tendr´a la estructura de directorios apropiada. As´ı que si est´a instalando desde CD-ROM, deber´ıa ir a “Preparando su sistema para la instalaci´on”. Para los otros tipos de instalaciones, lea las secciones apropiadas para su medio de instalaci´on. Instalaci´on por NFS Para una instalaci´on NFS se necesitar´a una m´aquina con el CD-ROM de Red Hat, (por ejemplo una m´aquina GNU/Linux ya existente), la cu´al soporte y sea capaz de exportar el sistema de ficheros ISO-9660 con las extensiones Rockridge. De manera alternativa, se podr´a hacer la instalaci´on NFS utilizando un sitio de r´eplica de las distribuciones Red Hat, con el a´ rbol de directorios organizado como se describi´o arriba —y por supuesto con los ficheros correctos en cada uno de los directorios. El directorio /RedHat necesitar´a ser exportado a la o las m´aquinas de la red en que se instalar´a o actualizar´a Linux Red Hat. Esta m´aquina deber´a estar necesariamente en una Ethernet; no se podr´a instalar v´ıa NFS utilizando un enlace por conexi´on telef´onica.

Instalaci´on por disco duro Las instalaciones por disco duro deber´an tener el directorio /RedHat creado en el directorio ra´ız, (no importa de qu´e partici´on). Este directorio incluir´a la distribuci´on Red Hat obtenida ya sea de un CD-ROM o de un sitio FTP. Por ejemplo, en la primera partici´on de DOS, la ruta al directorio \RedHat deber´ıa ser C:\RedHat. En un sistema de ficheros MS-DOS, no tiene importancia el hecho de que el nombre de un paquete.rpm est´e truncado. Todo lo que se necesitar´a hacer es asegurarse de que el directorio \RedHat\base contiene los ficheros base de un CD-ROM o un sitio FTP, y que el directorio \RedHat\RPMS contiene todos los ficheros paquete.rpm de un CD-ROM o un sitio FTP. Despu´es de esto, se podr´a instalar o actualizar tranquilamente el sistema desde esa partici´on. Si se tuviese una partici´on ext2 existente que no se necesite para el proceso de instalaci´on o la actualizaci´on, se la podr´ıa usar para instalar el sistema en ella, o para otros prop´ositos. Instalar desde un disco duro o por NFS puede proporcionar mayor flexibilidad en los paquetes disponibles para instalaci´on, porque estos m´etodos implican que se puede ser selectivo acerca de qu´e paquetes se colocan en el directorio RPMS. Por ejemplo, si s´olo se quiere un sistema basado en texto, entonces los paquetes basados en X pueden excluirse. Tambi´en si hay actualizaciones para el sistema Red Hat que se quiere instalar, pueden situarse en el directorio RPMS en el luchar de los paquetes originales de la distribuci´on. La u´ nica advertencia para personalizar los paquetes disponibles para la instalaci´on o actualizaci´on de Red Hat Linux es asegurarse de que las dependencias se encuentren. Esto es, si el paquete A necesita que se instale el paquete B, ambos paquetes deben estar presentes para encontrar las interdependencias. De esta manera, sin embargo, toma un poco de experimentaci´on para asegurarse de que todas las dependencias son satisfechas. para m´as informaci´on, lee la secci´on “Personalizando la instalacion en disco duro o NFS” m´as abajo. Instalaci´on v´ıa FTP Para realizar una instalaci´on v´ıa FTP por Internet, todo lo que se necesitar´a es la direcci´on IP de un servidor FTP y el camino al directorio ra´ız del sistema Linux Red Hat que se desee instalar. V´ease el Ap´endice C, para obtener una lista de los sitios FTP y sus r´eplicas. Si se pretende realizar una instalaci´on v´ıa FTP usando una conexi´on de ancho de banda reducido, (cualquier cosa m´as lenta que un enlace ISDN a 128K), es muy recomendable que los ficheros obtenidos v´ıa FTP se copien primero a una partici´on MS-DOS, y luego se realice con e´ stos una instalaci´on desde el disco duro. El tama˜no total de los paquetes del directorio /RedHat/RPMS es aproximadamente 170MB, y usando una conexi´on FTP el proceso de instalaci´on durar´a muchas horas. Si pasara algo durante la instalaci´on, como por ejemplo una ca´ıda en la conexi´on, se necesitar´a empezar todo nuevamente desde el principio. Si por el contrario, se obtienen los ficheros y se los acomoda en un disco duro, y se usa el modo de instalaci´on desde e´ l, si algo pasara, nos costar´ıa menos trabajo y menos confusi´on empezar de nuevo con el proceso. Para realizar una instalaci´on

56

Obtenci´on e instalaci´on de Linux

´ m´ınima, no se necesitar´a obtener todos los ficheros de /RedHat/RPMS. Estos podr´an descargarse luego, seg´un nuestras necesidades. La siguiente secci´on da m´as detalles.

2.4.6.

Personalizando la instalaci´on por NFS o por disco duro

Se puede personalizar el proceso de instalaci´on. Esto no es recomendable para los haraganes—s´olo deber´ıan intentarlo aquellos usuarios que ya conozcan GNU/Linux. A partir de la versi´on 4.x, de Linux Red Hat, el directorio /RedHat/RPMS contiene aproximadamente 170 Mb de ficheros .rpm. Como RPM comprime estos paquetes, asume que un paquete de 1MB de tama˜no necesitar´a de 2 a 3Mb de espacio en el disco duro. Entonces, si por ejemplo tuvi´eramos un package.rpm de 6MB de tama˜no, se necesitar´an entre 12 y 18Mb de espacio libre para instalarlo. Si sabes el software que quieres y el que no quieres, la mayor´ıa del software proporcionado no tendr´a valor para la instalaci´on, y para conexiones de bajo ancho de banda, no es una opci´on bajar todo el a´ rbol. Con esto en mente, una instalaci´on puede ser personalizada para quitar el software no deseado. Personalizar qu´e paquetes est´an disponibles para instalaci´on es una opci´on cuando se instala un sistema por FTP, NFS y disco duro. Los CD-ROMs (t´ıpicamente) no admiten escritura, pero se pueden copiar los ficheros al disco duro e instalar desde all´ı con una lista de paquetes personalizada. Las instalaciones a trav´es de NFS o FTP se pueden dise˜nar si se tiene acceso como superusuario a los servidores de tu red o tu administrador quiere trabajar contigo. Las siguientes situaciones de instalaci´on hacen una instalaci´on a medida deseable: cuando se obtiene Red Hat Linux por FTP sobre una conexi´on de bajo ancho de banda o cuando dise˜namos una suite de software para que se use en un conjunto de estaciones Red Hat Linux en una red. Para hacer una instalaci´on a medida, se debe obtener el fichero /base/comps que nos proporciona una lista de los paquetes que una instalaci´on completa incluye normalmente. Entonces los paquetes que se desean instalar desde /base/comps se descargan. El fichero /base/comp se edita para reflejar los paquetes que se han obtenido y se van a instalar. Si se dispone de paquetes RPM locales, se pueden a˜nadir al fichero comps tambi´en. El fichero comps El programa de instalaci´on de Red Hat usa el fichero /RedHat/base/comps (el fichero aqu´ı es un ejemplo de Red Hat Linux versi´on 4.0) para determinar qu´e paquetes est´an disponibles para ser instalados en el directorio /RedHat/RPMS para cada categor´ıa. El fichero se organiza en categor´ıas, y cada categor´ıa contiene una lista de paquetes que RedHat cree que son el m´ınimo requerido para esa secci´on. NOTA: s´olo la parte del paquete de la secci´on del nombre del paquete (paquete-version-compilaci´ on.rpm) se lista en el fichero. Esto signifiga generalmente que el fichero comps se puede usar de una versi´on de Red Hat a la siguiente. Una secci´on de este fichero tiene la estructura siguiente: n´ umero categor´ ıa paquete ... end

Esto es una etiqueta para identificar el n´umero de categor´ıa, la categor´ıa, una lista de los nombres de paquetes en la categor´ıa, y la etiqueta “end” para marcar el final de la categor´ıa. Sin excepci´on, todo el mundo necesita los paquetes de software listados en la secci´on Base del fichero. Las otras secciones, sin embargo, pueden ser personalizadas o eliminadas para ajustarse a una necesidad particular. Por ejemplo, hay tres tipos de Estaciones en Red (Networked Stations): “Plain”, “Management”, y “Dial-up”. Un examen de estas secciones muestra que muchos de los paquetes de software se encuentran en las tres categor´ıas mientras que s´olo algunos paquetes son espec´ıficos de de la categor´ıa. Si est´as creando una Dial-Up Networked Station, entonces puedes eliminar con toda seguridad las secciones “Plain” y “Management” y cualquier software u´ nico de estas dos categor´ıas. Al contrario, si solo se necesita una capacidad b´asica de red para estaciones de trabajo interconectadas, las otras secciones pueden ser eliminadas del fichero as´ı como el software exclusivo de esas secciones. Todo lo que se necesita hacer es asegurarse de que se

Linux Red Hat

57

tienen todos los paquetes de software listados en cada categor´ıa. Si se tienen paquetes locales personalizados (aquellos que no son proporcionados por Red Hat Software), se deber´ıan a˜nadir a una categor´ıa existente que sea apropiada antes que crear una nueva categor´ıa. Debido a que la lista de paquetes en cada categor´ıa s´olo contiene el nombre del paquete (no el nombre completo paquete-nombre-versi´ on-compilaci´ on.rpm), se puede sustituir cualquier actualizaci´on que Red Hat haga disponible en el directorio updates en: ftp://ftp.redhat.com/pub/redhat/current/updates

o cualquiera de los sitios de r´eplica para los paquetes originales encontrados en el directorio original de la distribuci´on /RedHat/RPMS. El programa de instalaci´on es relativamente independiente de las versiones. La u´ nica advertencia es asegurarse de que se satisfa*gan las dependencias entre paquetes. Cuando se construye un paquete RPM, RPM por s´ı mismo intenta determinar qu´e paquetes deben ser instalados para que el paquete funcione (El desarrollador del RPM tambi´en tiene control directo de e´ sto, as´ı que —´el o ella puede a˜nadir dependencias que RPM quiz´as no detecte). Aqu´ı donde un poco de experimentaci´on o investigaci´on puede necesitarse. Por ejemplo, una manara de determinar dependencias de paquetes (si tiene acceso a un servidor NFS en una m´aquina RedHat) es hacer telnet o login en ella (o si se tiene un CD-ROM, montarlo e ir directamente al directorio RedHat/RPMS) y pedir informaci´on al paquete acerca de sus dependencias: [root@happy RPMS] rpm -q -p -R bash-1.14.7-1.i386.rpm libc.so.5 libtermcap.so.2

La opci´on “-q” pone a rpm en modo “query”(petici´on), la opci´on ‘-p” le ordena a rpm preguntar a un paquete no instalado, y la opci´on “-R” ordena a rpm listar las dependencias del paquete en cuesti´on. En este ejemplo, vemos que se requieren libc.so.5 y libtermcap.so.2. Debido a que libc y termcap son parte de la base de software requerido (como lo es bash) , se debe asegurar que los paquetes libc y libtermcap (los paquetes de dependencia) est´an presentes a la hora de ser capaz de instalar bash (el objetivo). Tan pronto como tengas el sistema base instalado, se puede iniciar el sistema cuando el programa de instalaci´on termina. Se pueden a˜nadir paquetes adicionales a Red hat Linux tan pronto como se requieran, incluso si el programa de instalaci´on informa de que un paquete fall´o al instalarse porque sus dependencias no se encontraron. La tabla en la p´agina 58 describe las categor´ıas de software encontradas en /base/comps en RedHat 4.0:

2.4.7.

Instalaci´on m´ınima recomendada

Es dif´ıcil determinar cu´anto espacio requerir´a una instalaci´on. Sin embargo, cualquiera que instale por FTP deber´ıa obtener al menos el sistema Base y el Dialup Networked Station e instalar e´ stos. Entonces, puede obtenerse software adicional y a˜nadirse tan pronto como aparezca la necesidad. Desde luego, si se quiere hacer programaci´on en C, se deber´ıan obtener los paquetes relevantes y editar el fichero comp apropiadamente. Si se encuentra un paquete durante la instalaci´on que requiere otro paquete que no est´a disponible, o comete una equivocaci´on en el fichero comps, se puede generalmente terminar la instalaci´on y obtener un sistema arrancable. Se puede corregir el problema manualmente a˜nadiendo los paquetes que fallaron y sus dependencias despu´es. Sobre todo, obtenga el sistema Base completo y uno de los paquetes Networked Station instalados, y se podr´a a˜nadir cualquier cosa que se necesite despu´es.

58

Obtenci´on e instalaci´on de Linux

Categor´ıas RPM BASE C Development Development Libs C++ Development Networked Workstation

¿Es necesario? S´ı Altamante Recomendado Altamente Recomendado Opcional Recomendado; Requerido por otro software de red

Comentarios No deber´ıa personalizarse. Necesitado por el sistema para compilar un n´ucleo. Necesitado por el sistema para compilar un n´ucleo. Desarrollo en C++. Se necesita tanto para pertenecer a una Ethernet o para conectarse a una red v´ıa telef´onica No deber´ıa personalizarse.

Anonymous FTP/Gopher Server Web Server

Opcional Opcional

Si GNU/Linux va ha servir ficheros por FTP o Gopher ´ para Desarrolladores Web para desarollo local Util requerido si se sirven p´aginas web.

Network Management Workstation

Opcional Recomendado Opcional Opcional Opcional Opcional

contiene herramientas adicionales u´ tiles para marcado telef´onico as´ı como redes Ethernet. Requerido si se usa el marcador telef´onico. ¿Necesito decir m´as? Fortunes se requieren para el humor Si dispones de hardware soportado. Si quieres ejecutar X. Si se tiene hardware soportado.

Opcional Recommendado Recomendado

La instalaci´on del paquete completo se recomienda. ´ El Unico y Verdadero Entorno de Edici´on. Requiere X

Opcional Requerido

¿Huh? Las p´aginas del manual deber´ıan instalarse siempre

Dialup Workstation Game Machine Multimedia Machine X Window System X Multimedia Support TEX Document Formatting emacs emacs with X support MS-DOS and Microsoft Windows Connectivity Extra Documentation

Cuadro 2.4: Paquetes Importantes Red Hat Linux.

2.4.8.

¿Cu´anto espacio se necesita realmente?

La tabla en la p´agina 59 da una aproximaci´on del espacio en disco que requiere Red Hat y varios subsistemas.

2.4.9.

Instalaci´on

En este momento se tendr´ıa que haber creado ya el Disco del Kit de Instalaci´on, preparado el disco duro y el medio de instalaci´on dispuesto. Los detalles de la instalaci´on contin´uan. Primero empieza iniciando el sistema y configurando el programa de instalaci´on para instalar desde el medio seleccionado. Despu´es de esto la instalaci´on procede con los mismos pasos para todos. Se necesita para empezar, iniciar la computadora con el disquete etiquetado como “Boot disquete.”

2.4.10.

Acerca del medio de instalaci´on otra vez

Mientras el disco de arranque empieza, el n´ucleo intenta detectar cualquier hardware para el que eltenga controladores compilados directamente dentro de e´ l. Una vez completado el proceso, un mensaje aparece preguntando si se tiene una pantalla a color. (si se tiene, seleccione “OK”). Despu´es viene la pantalla de bienvenida de Red Hat. Escoja “OK” para continuar. La siguiente cuesti´on le pregunta si necesita soporte PCMCIA. Se debe responder “s´ ı” si se est´a instalando en un port´atil, insertando el diskete suplementario cuando se le indique. Una vez que el soporte PCMCIA est´a activado, si es necesario, se presenta una pantalla

Linux Red Hat

59

Uso de Partici´on Intercambio Swap

Recomendado 2 x RAM F´ısica

Sistema ra´ız, sin X

100 - 200MB

Sistema ra´ız, con X

250-350MB

/home /var /usr/local

5 - Infinito MB 5 - Infinito 25 - 200MB

/usr

350+ MB

˜ Comentarios al Tamano Si menos de 16MB de RAM instalados, 16MB de swap es imperativo. Si el espacio es escaso, y hay 16MB RAM instalados, 1 x RAM F´ısica es el m´ınimo recommendado. Dependiendo de las herramientas como compiladores que se necesiten. Dependiendo de las herramientas como compiladores, que se necesiten. Dependiendo de los usuarios y sus necesidades Dependiendo del tr´afico de noticias, n´umero de usuarios, correos, etc. Empleado para los programas quen o est´an en formato RPM o para los que se quiere separar del resto de Red Hat. Aqu´ı van muchos de los ficheros de los paquetes RPM

Cuadro 2.5: Requerimientos de espacio t´ıpicos de un sistema Red Hat Linux. que pregunta qu´e m´etodo de instalaci´on se quiere usar. Siga las instrucciones en las siguientes secciones para elegir el m´etodo. Instalaci´on por CD-ROM Para instalar desde CD-ROM, marque “Local CD-ROM” de la lista de tipos de instalaci´on. Entonces pulse “OK”. Se le preguntar´a si posee un CD-ROM SCSI, IDE/ATAPI, o propietario. Aqu´ı donde algunas de las investigaciones en hardware se pagan: si se tiene un CD-ROM 4X o m´as r´apido que se haya fabricado recientemente y se ha vendido junto con una tarjeta de audio SoundBlaster u ´ es una de las cosas m´as confusas que se encontrar´a. otra, seguramente tenga un CD-ROM IDE/ATAPI. Esta Si elige SCSI, se debe saber qu´e clase de tarjeta controladora SCSI tiene y se le presentar´a una lista. Baje por la lista hasta que encuentre su tarjeta SCSI. Despu´es de seleccionarla, se le preguntar´a si desea hacer un AUTOPROBE o si desea especificar opciones SPECIFY OPTIONS. La mayor´ıa de la gente deber´ıa elegir AUTOPROBE, que hace que el programa busque su tarjeta SCSI y active el soporte SCSI para la tarjeta en cuesti´on cuando se encuentre. Despu´es de que el Programa de Instalaci´on haya localizado exitosamente el CD-ROM, deber´ıa leer la siguiente secci´on. Instalaci´on desde el Disco Duro Para instalar desde el disco duro, marque esta opci´on y elija “OK”. Si no ha elegido soporte PCMCIA, se le pedir´a que inserte el disco suplementario.

Instalaci´on por NFS Para instalar por NFS, seleccione la opci´on correspondiente y elija “OK”. Se debe elegir la tarjeta Ethernet instalada en la m´aquina objetivo de la instalaci´on para que el programa de instalaci´on pueda cargar el controlador correcto. Marque la tarjeta de red apropiada de la lista y seleccione “OK”, para que el programa de instalaci´on busque los par´ametros adecuados de la tarjeta, seleccione AUROPROBE. Si la m´aquina se cuelga, se puede pulasar Ctrl - Alt - Delete para reiniciar el sistema. La mayor´ıa de las veces cuando esto ocurre es porque la prueba interfiere con una tarjeta no Ethernet. Si esto pasa, int´entelo otra vez y elija SPECIFY OPTIONS, y d´e los datos acerca de su tarjeta de esta forma: ether=IRQ,IO PORT,eth0

Esto ordena al programa que busque la tarjeta Ethernet en la localizaci´on especificada por los valores IRQ y IO PORT. Si su tarjeta Ethernet est´a configurada para IRQ 11 y IO PORT 0x300, especifique: ether=11,0x300,eth0

Despu´es de que la tarjeta haya sido encontrada satisfatoriamente, se le pedir´a que introduzca su informaci´on TCP/IP acerca de su m´aquina y el servidor NFS con los paquetes de instalaci´on de GNU/Linux. Primero, se

60

Obtenci´on e instalaci´on de Linux

le preguntar´a para proporcionar los datos de la m´aquina que est´a instalando: direcci´on IP, M´ascara, Pasarela (Gateway) predeterminado y Servidor de Nombres primario (DNS). Por ejemplo: IP Address: Netmask: Default Gateway: Primary Nameserver:

192.168.181.21 255.255.255.0 192.168.181.1 192.168.181.2

Despu´es de seleccionar OK, se le preguntar´a por el Nombre de Dominio y el Nombre del host de la m´aquina sobre la que se va a instalar. Por ejemplo, si su nombre de dominio es infomagic.com y el nombre del host es vador, introduzca: Domainname: Host name: Secondary nameserver IP: Tertiary nameserver IP:

infomagic.com vador.infomagic.com Introducir si se necesita Introducir si se necesita

La u´ ltima pantalla le pide el servidor NFS y el directorio exportado conteniendo la distribuci´on Red Hat. Por ejemplo, si el servidor NFS es redhat.infomagic.com, introduzca: NFS Server name: Red Hat Directory:

redhat.infomagic.com /pub/mirrors/linux/RedHat

si no conoce estos valores, pregunte a su adminstrador del sistema. Despu´es de introducir estos valores, seleccione OK para continuar. si el programa de instalaci´on reporta alg´un error al localizar la distribuci´on, aseg´urese de haber puesto los valores correctos y de que su administrador de red le ha dado permiso de exportaci´on para la m´aquina objeto de la instalaci´on.

Instalaci´on por FTP La instalaci´on por FTP es similar a la instalaci´on mediante NFS descrita antes. Se le pide informaci´on acerca de su tarjeta Ethernet y su configuraci´on TCP/IP. Sin embargo se le preguntar´a por el Nombre del sitio FTP y el directorio Red Hat en el servidor de r´eplica, en vez de la informaci´on del servidor NFS. Una advertencia acerca de la instalaci´on FTP: encuentre el m´as servidor FTP m´as cercano y menos ocupado respecto a su posici´on geogr´afica. Vea el Ap´endice C para una lista de los servidores FTP de GNU/Linux. Si no se detecta su hardware, quiz´a necesite anular el hardware problem´atico para activarlo m´as tarde. Quiz´a quiera revisar: http://www.redhat.com/pub/redhat/updates/version/images

para ver si Red Hat ha actualizado los discos de arranque para su hardware

2.4.11.

El resto de la instalaci´on

1.

Despu´es, se le preguntar´a si est´a instalando un sistema nuevo o actualizando un sistema RedHat 2.0 o m´as moderno. Si se est´a actualizando, no se le ofrecer´a la oportunidad de particionar el disco duro o configurar cualquier otra cosa exceptuando el LILO. Seleccione cualquiera INSTALAR o ACTUALIZAR para continuar.

2.

Si se est´a actualizando, se le preguntar´a por la partici´on ra´ız del sistema Red Hat existente. Marque la partici´on apropiada y presione OK. Si se est´a instalando por primera vez, se necesita particionar su disco duro con el espacio libre determinado arriba.

3. Despu´es de crear las particiones Linux Native y Linux Swap necesarias, es necesario inicializarlas y activar la partici´on de intercambio. Entonces se le preguntar´a en qu´e partici´on(es) se pretende instalar GNU/Linux. Si se est´a actualizando, seleccione la particion ra´ız. Se debe configurar y elegir al menos una partici´on, que ser´a la partici´on ra´ız. Entonces, a no ser que se est´e actualizando, se le presentar´a una tabla con otras particiones disponibles. escoja las particiones apropiadas y elija EDITAR para indicar qu´e particiones se usar´an para qu´e directorios. Si tienes m´as de una partici´on para la instalaci´on de GNU/Linux, ahora es el momento para designar e´ stas tambi´en.

Linux Red Hat

61

4.

Despu´es, se presenta una lista de categor´ıas de software para instalar seguida por una oportunidad para personalizar qu´e paquetes de software de cada categor´ıa va a ser instalada. Si no ha instalado Red Hat Linux u otra distribuci´on de GNU/Linux antes, simplemente elija una categor´ıa de software para instalar y deje que el programa instale las opciones predeterminadas para cada categor´ıa. Si se necesita un paquete que no fue instalado originariamente, siempre se puede instalar m´as tarde. Mientras el software se est´a instalando, se podr´a ver un indicador de progreso, y quiz´a sea buena idea tomarse una taza de caf´e mientras tanto. La instalaci´on puede tomar desde treinta minutos hasta una hora o m´as dependiendo de las elecciones de software y la configuraci´on del hardware.

5.

Despu´es de la instalaci´on del software, se le preguntar´a para que configure su rat´on. Una discusi´on acerca de protocolos de rat´on y dispositivos puede encontrarse en la p´agina 30.

6.

Lo siguiente es la configuraci´on del sistema X-Window. Se recomienda que se espere hasta que se entre en el sistema por primera vez antes de configurarlo. Si algo va mal con la configuraci´on de X, quiz´a necesite iniciar el proceso de instalaci´on desde el principio si el programa de instalaci´on no es capaz de recuperarse.

7. Si no se posee una tarjeta Ethernet, no configure su red ahora. si se tiene una tarjeta de red y no se configur´o la red antes, se deber´ıa hacer ahora. La configuraci´on para una red de marcado a trav´es de tel´efono, deber´ıa hacerse despu´es de que finalice la instalaci´on. 8.

Lo siguiente es la configuraci´on del reloj del sistema. Si se est´a en una red y se quiere que los cambios de hora se manajen adecuadamente, elija UTC. Si su computadora no pertenece a una red, o convive con otros sistemas operativos, elija la hora local.

9. Si no se tiene un teclado estadounidense, se tentr´a que especificar el teclado local.

10.

Se le pedir´a la contrase˜na de root o superusuario. No la olvide. Recuperar la contrase˜na no es trivial (Aunque no es imposible, N del T.). Se necesitar´a la clave de root para acceder al sistema tras el primer rearranque.

11.

Para terminar, se proceder´a a configurar el gestor de arranque LILO.

Si no se ha instalado una particion ra´ız que empiece y acabe entre el cilindro 0 y el 1023, No instale LILO. Cuando reinicia el sistema por primera vez, si LILO no permite arrancar su sistema correctamente, utilice el disco de arranque de emergencias de MS-DOS o Windows 95 y en A:\> introduzca FDISK /mbr. Esto permite al sistema arrancar en un sistema existente de DOS o Windows 95 tal como se hizo antes de instalar LILO. Entonces se puede usar el disquete de arranque de Red Hat con los siguientes par´ametros en el indicador de espera boot: para iniciar su sistema desde el disco duro: boot: rescue root=/dev/xxxx ro load ramdisk=0

Donde xxxx es la partici´on ra´ız. A d´ıa de hoy, las distribuciones modernas de GNU/Linux (estoy hablando ya de Red Hat la 7.3) no tienen este problema con los discos duros de m´as de 1024 cilindros, por lo que este problema puede obviarse. Por otra parte recurrir a un disco de arranque de Windows o MS-DOS, aparte de ser una verdadera chapuza, no aporta una soluci´on real al problema (adem´as de ser imposible si no se tienen estos sistemas operativos) ya que s´olo se consigue que la m´aquina arranque en Windows o DOS. Lo m´as inteligente es tener un disco de rescate preparado siempre, o mejor dos guardados en lugares distintos. En cuanto a LILO, como gestor de arranque tiene los d´ıas contados, puesto que en un futuro ser´a reemplazado por GRUB que es tecnol´ogicamente superior y ser´a el gestor de arranque de GNU/Hurd en el futuro.(N del T) Despu´es de que el proceso de instalaci´on est´e completado, se est´a preparado para rearrancar el sistema y usar GNU/Linux.

2.4.12.

Despu´es de la instalaci´on

Ahora que se ha instalado GNU/Linux y reiniciado el sistema por primera vez, hay algunas cosas u´ tiles que debe saber para usar su sistema.

62

Obtenci´on e instalaci´on de Linux

Entendiendo el indicador de LILO Cuando encienda o reinicie el sistema, aparecer´a en la pantalla el indicador de LILO, el cu´al deber´ıa estar configurado para un retardo de 30 segundos o as´ı antes de que se inicie el sistema. Cuando LILO aparece en la pantalla, si no se hace nada, el sistema operativo predeterminado arrancar´a cuando prescriba el periodo de tiempo seleccionado. Sin embargo, desde LILO, se puede controlar varios aspectos relacionados con c´omo arranca Linux, o indicarle a LILO arrancar un sistema operativo alternativo. Si se desea anular el comportamiento predeterminado de LILO, presionando la tecla Shift cuando aparezca LILO en la pantalla, se har´a que aparezca un indicador, “boot:”. Presionando la tecla Tab se mostrar´a una lista de los sistemas operativos disponibles. LILO boot: dos linux boot:

Esto nos indica que “dos” es el sistema operativo predeterminado, el cu´al arrancar´a si no se teclea nada; para arrancar Linux, que anular´a la selecci´on predeterminada, teclee “linux en el indicador. Si alguna vez comete un error serio de configuraci´on y no puede arrancar normalmente, hay una opci´on de Linux en la que el n´ucleo arranca sin leer ning´un fichero de configuraci´on. para iniciar Linux en este modo teclee “linux single” en el indicador de LILO. boot: linux single

arranca el sistema en modo monousuario, para que se pueda llevar a cabo una acci´on correctora.

Registr´andose en el sistema por primera vez Ahora se encuentra con el indicador de entrada al sistema login: por primera vez. Se estar´a preguntando c´omo entrar dentro del sistema. En este punto en un sistema nuevo, s´olo hay una cuenta para acceder al sistema—la cuenta administrativa, “root”. Esta cuenta se usa para administrar el sistema y hacer cosas como configurar el sistema, a˜nadir y quitar usuarios, software y esas cosas. Para entrar en la cuenta, introduzca “root” en el indicador de presentaci´on login: y presione la tecla Enter . Se le pregunta entonces por la contrase˜na. Introduzca la contrase˜na en el indicador password:. El indicador del sistema [root@localhost]# aparece despu´es de haber negociado con e´ xito el proceso de validaci´on de usuario (login). El indicador del sistema indica dos cosas: Ha entrado como root, y en este caso, su m´aquina se llama localhost. Si nombr´o su m´aquina durante el proceso de instalaci´on, su nombre de host aparecer´a en vez de localhost. Ahora que ya est´a dentro, puede usar o´ rdenes como ls para listar ficheros, cd para cambiar de directorio y more para ver ficheros de texto por pantalla. La cuenta de root tambi´en tiene su directorio de inicio, “/root”. Un directorio de inicio es donde una cuenta de acceso v´alida le sit´ua en el sistema de ficheros nada m´as entrar. Algunos sistemas UNIX usan “/” en cambio, as´ı que no se sorprenda si no ve ning´un fichero si teclea “ls”—-no hay ninguno en el directorio de inicio de root. En el texto original no se menciona que la cuenta de administrador debe usarse exclusivamente para tareas administrativas. Hay un riesgo grande en usar la cuenta de root como si fuera una cuenta m´as, y es que inadvertidamente podemos descuajaringar (como lo oye) el sistema completo sin vuelta atr´as, as´ı que lo dicho, la cuenta de root para administrar y una cuenta de usuario normal para trabajar. Para crear una cuanta de usuario, la orden adduser es indispensable. No espere, h´agalo ahora y cree su cuenta de usuario. Para ver la ayuda en l´ınea, teclee man adduser

Y la ayuda en l´ınea le dar´a m´as informaci´on.

2.5.

Caldera OpenLinux

TM

Caldera Openlinux Esta secci´on sobre Caldera OpenLinuxTM fue escrita por Evan Leibovitch. Esta secci´on pretende ser un complemento de las Getting Started Guides que Caldera env´ıa con todos sus productos basados en Linux. Las alusiones a la Getting Started Guide for Caldera Open Linux Base se indican atrav´es de esta secci´on como “la Gu´ıa”.

Caldera OpenLinux

2.5.1.

63

Obtener Caldera OpenLinuxTM

A diferencia de muchas otras distribuciones GNU/Linux, Caldera OpenLinuxTM no est´a disponible para descargarla de Internet, ni se puede distribuir libremente, ni repartirse. Esto es a causa de los paquetes comerciales que forman parte de COL; mientras la mayor´ıa de los componentes de COL est´an bajo la GNU Public License, los componentes comerciales, tales como Looking Glass y Metro-X, no. En la lista de paquetes incluidos en la COL a partir de la p´agina 196 de la Gu´ıa, los paquetes comerciales se diferencian con un asterisco. COL est´a disponible directamente desde Caldera o atrav´es de una red de socios alrededor del mundo que se ha comprometido a dar asistencia t´ecnica a productos Caldera. Estos socios normalmente pueden ofrecer asistencia profesional, configuraci´on y formaci´on para usuarios de Caldera. Si desea ver la lista actual de socios dirijase al web site de Caldera.

2.5.2.

Prepar´andose para instalar Caldera OpenLinuxTM

Caldera soporta el mismo hardware que cualquier otra versi´on basada en los n´ucleos 2.0 de Linux. El ap´endice A de la Gu´ıa lista la mayor´ıa de los puestos SCSI soportados y los par´ametros de configuraci´on necesarios para muchas combinaciones de hardware. La Gu´ıa de Caldera ofrece una hoja de trabajo en la instalaci´on que le ayudar´a mostr´andole todos los detalles del sistema que necesitar´a en la instalaci´on. Es muy recomendable completarla antes de comenzar la instalaci´on; aunque algunos par´ametros, tales como los referentes a la configuraci´on de la red, no son requeridos para la instalaci´on, hacerlo todo a la vez es normalmente mucho m´as facil que tener que volver a ello luego. A veces esto no es posible, pero haga tanto como pueda en el momento de la instalaci´on.

2.5.3.

Creaci´on de los disquetes de arranque/m´odulos

La distribuci´on COL no viene con los disquetes necesarios para la instalaci´on. Hay dos disquetes involucrados; uno se usa para arrancar, y el otro es un disquete de “m´odulos” que contiene muchos controladores de hardware. Aunque la Gu´ıa recomiende que se creen los disquetes copi´andolos desde el CD-ROM, es mejor conseguir versiones m´as nuevas de los discos del web site de Caldera. Las im´agenes de disquetes en CD-ROMs ant´ıguos tienen errores que causan problemas, especialmente en instalaciones usando discos SCSI y particiones grandes. Para conseguir versiones m´as nuevas de las im´agenes de los disquetes desc´argelas del sitio FTP de Caldera. En el directorio pub/col-1.0/updates/Helsinki, encontrar´a un grupo de directorios numerados. Compruebe los directorios en orden descendiente—as´ı se asegurar´a de conseguir la u´ ltima versi´on. Si se encuentra con que alguno de estos directorios tiene un subdirectorio llamado bootdisk, el contenido de ese directorio es lo que estamos buscando. Deber´a ver dos ficheros: install-2.0.25-XXX.img modules-2.0.25-XXX.img

XXX es el n´umero de versi´on de la imagen de disco. En el momento de escribir estas l´ıneas, las im´agenes actuales son 034 y se localizan en el directorio 001. Despu´es de tener las im´agenes, transfi´eralas a dos disquetes como se describe para instalaciones gen´ericas en la p´agina 36, usando el programa de MS-DOS RAWRITE.EXE desde el CD-ROM de Caldera o dd desde un sistema GNU/Linux. El CD-ROM de Caldera es iniciable si la BIOS de su sistema lo permite, pero use los ficheros descargados si es posible. Son m´as actuales y tendr´an errores reparados que no lo estar´an en las versiones en CD.

2.5.4.

Preparar el disco duro

Este procedimiento no es diferente del de otras distribuciones GNU/Linux. Deber´a usar fdisk en el disco duro iniciado para crear al menos dos particiones GNU/Linux, una para el espacio swap y otra para el

64

Obtenci´on e instalaci´on de Linux

sistema de ficheros raiz. Si planea que su sistema tenga arranque dual: COL con otro sistema operativo, como Microsoft Windows, MS-DOS, u OS/2, normalmente es preferible instalar COL el u´ ltimo. Los programas fdisk de GNU/Linux reconocen tipos de sistemas operativos “extra˜nos” mejor que las herramientas de particionado de disco de la mayor´ıa de los otros sistemas operativos. Para ejecutar el fdisk de GNU/Linux, deber´a iniciar su sistema con el disquete de arranque (y quiz´as el de m´odulos) descrito anteriormente. Deber´a decirle a COL qu´ee tipo de disco y controlador de disco tiene. ¡No podr´a hacer nada con fdisk si GNU/Linux no reconoce su disco! Para hacer esto, siga las instrucciones de arranque de la Gu´ıa, desde el paso 2 en las p´aginas correspondientes. No se moleste con la instalaci´on o detecci´on de CD-ROMs o tarjetas de red en este momento; todo lo que importa en este punto es que GNU/Linux “vea” el disco duro de arranque para que se pueda particionar con fdisk. Hay una descripci´on breve del uso del fdisk de GNU/Linux en la Gu´ıa. Recuerde que cuando ejecute fdisk, necesitar´a configurar las dos particiones, la del sistema de ficheros raiz como GNU/Linux Native (tipo 83) y la de espacio Swap (tipo 82) como particiones nuevas. Hay una discusi´on breve sobre cuanto espacio swap reservar en la Gu´ıa. Tan pronto como haya creado la particiones y haya escrito la informaci´on de la tabla de particiones para hacerla permanente, deber´a reiniciar.

2.6. Slackware

TM

Esta secci´on sobre Linux Slackware fue escrita por Sean Dreilinger.

2.6.1.

Slackware no es para ti. (O quiz´a si)

¡Bienvenido a la distribuci´on de GNU/Linux Slackware! Esta secci´on pretende ayudar a evaluar la distribuci´on Slackware tanto al usuario novel de GNU/Linux como al administrador, planificar el despliegue de un sistema Slackware, e instalar Linux SlackwareTM . La decisi´on de elegir Slackware como el ”sabor”de GNU/Linux a usar es una consideraci´on seria. Puede parecer como una decisi´on trivial por el momento, sin embargo los sistemas GNU/Linux son una manera de tomar m´as y m´as responsabilidad en los entornos computacionales de las empresas. Muchos de los experimentos sobre GNU/Linux han evolucionado en su primer a˜no hasta convertirse en m´aquinas de misi´on cr´ıtica sirviendo a muchos m´as usuarios y prop´ositos que los que originalmente se pretend´ıan. Slackware es una de las distribuciones de GNU/Linux m´as ampliamente difundidas. Cuando es hora de encontrar la m´as nueva, la m´as f´acil o la distribuci´on m´as cuidadosamente planificada de GNU/Linux, Slackware quiz´as sea “la mejor de las mejores” . Algunos antecedentes de la historia de SlackwareTM pone las cosas en perspectiva.

2.6.2.

Una breve historia

En 1993, Soft Landing System cre´o una de las primeras distribuciones de GNU/Linux organizadas. Aunque tuvo un gran comienzo, la distribuci´on SLS ten´ıa muchos puntos flacos (no funcionaba exactamente para los que se iniciaban) SlackwareTM , una distribuci´on de Patrick Volkerding, como llovida del cielo, resolvi´o muchos de estos problemas, se hicieron copias por FTP, se edit´o en muchos CD-ROMs por todo el mundo, y r´apidamente se convirti´o en uno de los sabores de GNU/Linux m´as ampliamente usados. En ese instante, SlackwareTM era la u´ nica soluci´on de GNU/Linux con todas las caracter´ısticas deseables. Otros mantenedores de distribuciones GNU/Linux comerciales o sin beneficio tienen distribuciones gradualmente desarrolladas que tambi´en pueden merecer su consideraci´on. Alrededor de enero de 1994, Slackware hab´ıa logrado extender su uso tanto que obtuvo una notoriedad popular reservada a las estrellas de rock. Tambi´en ayud´o el rumor difundido por Usenet sugiriendo que todo el proyecto Slackware era el trabajo de ¡brujas y demonios! “¡GNU/Linux, el SO gratuito. . . excepto por tu ALMA! MOUHAHAHAHA!” From: [emailprotected] Date: 7 Jan 1994 15:48:07 GMT

Linux SlackwareTM

65

Bromas aludiendo al RFC 666, el hecho de que los servicios de la m´ aquina de denominen ‘‘daemons’’, y la especulaci´ on de que Pat Volkerding era L. Ron Hubbard disfrazado eran conocidos por todos. Todo el divertido incidente probablemente ayud´ o a SlackwareTM a ganar cuota de mercado: ========================================================================

El transferir Slackware en su sistema desde aqu´ı deber´ıa incluir un poco m´as que seleccionar qu´e quiere de los men´us. Rellenando la Secci´on 3 de la hoja de trabajo en previsi´on, deber´ıa ser capaz de avanzar r´apidamente a trav´es de cada men´u en orden, hasta llegar a la opci´on INSTALL, en ese punto las cosas quiz´a se e n l e n t e z c a n: est´as avisado para seleccionar la caracter´ıstica PROMPT y leer acerca de cada paquete de software, decidiendo si quieres o no incluirlo en tu sistema Slackware. La u´ ltima parte de una instalaci´on usual es la secci´on CONFIGURE en el men´u “setup”, y las preguntas que se deben responder son parecidas a las de la segunda mitad de la secci´on 3 de la hoja de trabajo.

2.6.12.

¿Eso es todo?

¡Definitivamente no! En este momento, quiz´a tenga algunos obst´aculos que est´en impidiendo que el programa de instalaci´on termine, o m´as parecido, est´as mirando al indicador de o´ rdenes de root darkstar˜#

y pregunt´andote “¿Y ahora qu´e?” Bien, si los problemas te sobrepasan, quiz´a quieras proseguir directamente por la siguiente secci´on en resoluci´on de problemas. Si las cosa aparentan estar funcionando en orden, todav´ıa se deben tener en cuenta algunos detalles. Es como la compra de un autom´ovil nuevo— despu´es de seleccionar y pagar por un coche, hay todav´ıa algunas cosas que se necesitan antes de que pueda conducirlo con confianza— un seguro, un tiempo al volante...

2.6.13.

Solucionando algunos problemillas

No todas las instalaciones de Slackware acaban como lo esperan los administradores del sistema. He pasado algunas noches enteras, sentado despu´es del trabajo toda una noche para actualizar un sistema Slackware y todav´ıa hay problemas para hacer que la maldita cosa vuelva a estar en l´ınea y funcionando, antes de que la gente empiece a quejarse de su correo perdido. Esta secci´on se centrar´a en los problemas de instalaci´on m´as comunes, soluciones y d´onde buscar asistencia adicional. Preguntas frecuentes Patrick Volkerding, el padre de Slackware, ha tratado con muchas preguntas de usuarios novatos escuchando, respondiendo y anticip´andose a preguntas repetidas. Para interceptar a los

Linux SlackwareTM

79

usuarios novatos de Slackware antes de que hagan la misma pregunta por en´esima v´ez, Patrick ha creado documentaci´on y la ha incluido con la distribuci´on Slackware. Tres ficheros que encontrar´a u´ tiles respondiendo sus preguntas iniciales son FAQ.TXT, INSTALL.TXT, y BOOTING.TXT. Soporte web para SlackwareTM La manera m´as f´acil de encontrar documentos de GNU/Linux en general es la p´agina web del Linux Documentation Project Home Page. Mira la p´agina 212 para una descripci´on de la P´agina Inicial del LDP. En este momento, la ayuda espec´ıfica de Slackware que puedes encontrar en Internet tiende a estar altamente personalizada—al estilo de c´omo montar una distribuci´on NFS en computadoras de cierta universidad o c´omo cablear tu dormitorio en una WAN residencial determinada usando Slackware. Grupos de Usenet para Slackware La jerarqu´ıa comp.os.linux de Usenet es un tesoro para encontrar informaci´on sobre GNU/Linux, pero no necesariamente espec´ıficamente sobre Slackware. Actualmente, 11 forums distintos sobre GNU/Linux manejan un alto volumen de discusi´on en esta jerarqu´ıa, la cu´al se escribe en la p´agina 22. Listas de correo para Slackware En este momento, no hay discusiones por correo electr´onico dedicadas “per se”. Se puede participar en algunas excelentes charlas via e-mail, intenta http://www.linux.org, y pregunta en los grupos de noticias Usenet por unas buenas listas de suscripci´on. Hay un servidor general de listados de correo, [emailprotected]. Mira en la p´agina 23 para una descripci´on de c´omo suscribirse a las listas de correo por medio de este servidor. Obtienes lo que pagas (soporte comercial) El soporte comercial para GNU/Linux est´a disponible desde algunos de los vendedores de CD-ROM y una lista enorme de Consultores de GNU/Linux, con los que se puede entrar en contacto a trav´es de los siguientes documentos HOWTO: http://sunsite.unc.edu/LDP/HOWTO/Consultants-HOWTO.html http://sunsite.unc.edu/LDP/HOWTO/Commercial-HOWTO.html

2.6.14.

Disfrutando del momento despu´es

No te duermas en los laureles todav´ıa, especialmente si tu m´aquina Slackware se comparte o est´a conectada en una red. Preparar una computadora para un uso compartido o para un uso dentro de una red es un poco m´as complicado que ejecutar el programa de configuraci´on y olvidarse de todo. Proporcionamos algunas indicaciones para asegurar y compartir su sistema Slackware nuevo.

2.6.15.

¡Considere reinstalar!

S´e que acabamos de terminar lo que ha sido una larga sesi´on de instalaci´on. Sin embargo antes de entrar en la casa que acabas de levantar, considera tirarla abajo otra vez y levantarla de nuevo otra vez. Friedrich Nietzsche dec´ıa: Un hombre aprende lo que necesita saber acerca de construir su casa s´olo despu´es de haberla terminado. Si en el proceso de instalaci´on del sistema, ten´ıa alguna idea acerca de c´omo hacerlo de forma diferente, quiz´a ahora es el momento. Si tu sistema Slackware va a ser una m´aquina multiusuario o un servidor de red, nunca habr´a una oportunidad tan conveniente para reinstalar o reconfigurar el sistema de una manera radical.

80

Obtenci´on e instalaci´on de Linux

2.6.16.

Asegurar el sistema.

Salir de la LAN de una vez Desde fuera de la caja, Slackware es un sistema inseguro. Aunque Patrick Volkerding hace lo mejor que puede para crear una distribuci´on segura, unos cuantos agujeros inevitables se hacen conocidos, se ponen disponibles los parches correspondientes en las comunidades de administradores de sistemas (y en las comunidades de crackers). Si se instal´o Slackware desde un origen en red, como un disco montado a trav´es de NFS, deber´ıas desconectar la m´aquina de la red despu´es de una instalaci´on exitosa mientras tapas algunos agujeros. ˜ Dar al root una contrasena Por omisi´on, un sistema Slackware no requiere una contrase˜na para el administrador. Cuando est´es seguro de que el sistema Slackware es estable (despu´es de unas horas, no d´ıas o semanas), ponle una contrase˜na para proteger la cuenta de administrador. Entra como administrador y escribe: # passwd root

Otorgarse una cuenta a si mismo En sistemas grandes, compartidos, la cuenta de administrador root no se usa como una cuenta de trabajo login por cualquier persona. Si te interesa la administraci´on de sistemas o est´as en una m´aquina conectada en red este es un buen consejo a seguir. Utiliza el programa /sbin/adduser y hazte una cuenta de entrada login para ti en vez de trabajar con la cuenta de root. Siempre sonr´ıo cuando veo estudiantes y aficionados poniendo mensajes en Usenet como [emailprotected]. S´e humilde y seguro: Crea otra cuenta login para tu trabajo diario y utiliza su (mejor que login) para entrar en la cuenta de root lo menos posible. Lee el Cap´ıtulo 4 para una discusi´on de qu´e se deber´ıa hacer con la cuenta de root (y qu´e no). Denegar los accesos root. No s´olo es infrecuente trabajar como usuario administrador, sino que no se considera seguro acceder como root a trav´es de la red. Los usuarios administradores normalmente se conectan a una m´aquina UNIX usando su nombre de usuario normal en el login, entonces usan su para pasar a la cuenta root como lo necesiten. Para prevenir que crackers, hackers, y usuarios ignorantes entren directamente como root, edite el fichero /etc/securetty y comente (anteponga el s´ımbolo (#)) a todos los terminales exceptuando los locales: console tty1 tty2 # ttyS0 # ttyS1

Despu´es de este arreglo, a los usuarios que intenten entrar como root a trav´es de la red se les denegar´a el paso: Linux 2.0.29 (durak.interactivate.com) (ttyp4) durak login: root root login refused on this terminal. durak login:

Aplicar las soluciones sencillas Slackware se instala con algunos problemas de seguridad realmente serios. Mejor que aprender por ti mismo seguridad UNIX e investigar estas vulnerabilidades por ti mismo, puedes saltar directamente al proceso de tapar agujeros visitando un recurso Web mantenido para este prop´osito, llamado Slackware SimpleFixes: http://cesdis.gsfc.nasa.gov/linux-web/simplefixes/simplefixes.html

2.7. S.u.S.E.TM

81

Comprueba los parches en ftp.cdrom.com Como distribuci´on mantenida activamente, las actualizaciones Slackware y los parches est´an disponibles en: ftp://ftp.cdrom.com/pub/linux/slackware/patches/

Mantenerse alerta. Quiz´a desee suscribirse a alguna de las listas de correo electr´onico que alertan a los usuarios de los acontecimientos en la administraci´on de GNU/Linux, como: GNU/[emailprotected] GNU/[emailprotected]

2.6.16.1.

Copias de respaldo.

¿Le gusta saber como funcionan las cosas? Gu´ardelas para cuando se necesiten mediante copias de respaldo. Amanda (Advanced Maryland Automatic Network Disk Archiver) es uno de las distintas opciones de copias de respaldo para instalaciones GNU/Linux. Puede encontrar m´as informaci´on sobre Amanda en: http://www.cs.umd.edu/projects/amanda/index.html

2.7.

S.u.S.E.

TM

Esta seccion sobre S.u.S.E Linux fue escrita por Larry Ayers. La distribuci´on S.u.S.E. comenz´o unos a˜nos atr´as como una adaptaci´on de Slackware. Patrick Volkerding, de Slackware, ayud´o a los desarrolladores de S.u.S.E. al principio, pero m´as tarde la distribuci´on empez´o a asumir una identidad propia. Algunas caracter´ısticas intentaron ayudar al usuario novel, incrementando la posibilidad de que una instalaci´on no tuviera que ser inmediatamente rehecha. Dada la “polinizaci´on-cruzada” end´emica en el mundo del software libre, no me sorprender´ıa que algunas de estas caracter´ısticas hayan aparecido en las distribuciones Slackware modernas.

2.7.1.

Comenzando la instalaci´on

Al arrancar la m´aquina desde un disco de instalaci´on sencillo, se est´a arrancando realmente un sistema GNU/Linux miniaturizado para este prop´osito. Una pantalla coloreada aparece, lista para hacer una serie de preguntas las cu´ales con algo de suerte le guiar´an a trav´es del proceso. YAST (Yes Another Setup Tool) muestra sus or´ıgenes Slackware en tanto como usa el programa dialog. Esta herramienta activa scripts de shell para presentar cajas de di´alogo, botones de radio y listas de opciones que permiten a un usuario hacer elecciones y dirigir el curso de una instalaci´on. Aunque ninguna distribuci´on puede garantizar una instalaci´on sin problemas, los desarrolladores de S.u.S.E. GmbH han tratado de anticipar varios problemas que los usuarios nuevos de GNU/Linux son propensos a experimentar. Uno de los m´as frustrantes es encontrarse con que el CD-ROM no es reconocido. Copiar los paquetes necesarios para iniciar en un disco duro e instalarlos desde all´ı es una soluci´on, pero es una chapuza y consume tiempo. Mejor que proporcionar una selecci´on de varias im´agenes de disco, una de las cuales probablemente tenga el controlador que soporte su CD-ROM, el disco u´ nico de arranque de S.u.S.E. contiene un n´ucleo peque˜no, b´asico, con todos los controladores disponibles—si se necesitan—en forma de m´odulos. El demonio del n´ucleo es un proceso que se ejecuta en segundo plano y que asegura que el m´odulo necesario ser´a cargado si una funci´on modular se necesita. Esto ayuda a eliminar un factor de bloqueo. Otro problema com´un es estimar por debajo el espacio de disco que se necesita. Esto fuerza a abortar la instalaci´on por falta de espacio. Cuando se produce e´ sto, los cruciales pasos finales (como la instalaci´on de LILO) no se han alcanzado, y normalmente es necesario empezar de nuevo. Las instalaciones basadas en scripts son necesariamente secuenciales en su naturaleza; quiz´a sepa que saltarse un paso no estropear´a nada pero, es dificil anticipar cada eventualidad en un proceso por lotes, y si las cosas van mal, el proceso por lotes normalmente se aborta. Durante la instalaci´on de S.u.S.E. un contador del espacio restante de la partici´on se muestra en la pantalla de YAST; mientras se seleccionan los paquetes, se pueden intentar varias combinaciones mientras se tiene

82

Obtenci´on e instalaci´on de Linux

en cuenta cu´anto espacio libre del disco prefiere que permanezca libre. El particionado y el formateo de los discos, as´ı como la creaci´on y activaci´on de una partici´on de intercambio son procesos que no son muy diferentes a otras distribuciones. Todas se apoyan en las mismas herramientas; el proceso se ha convertido m´as o menos en un est´andar. Dependencias El uso de dependencias, que consiste en informaci´on inclu´ıda en un paquete de software concerniente a qu´e otros paquetes son necesarios para que funcione, se ha extendido r´apidamente entre las distribuciones de GNU/Linux. Desafortunadamente, no ha aparecido ning´un formato universal de dependencias. Cada distribuci´on usa un formato distinto. El formato RPM de Red Hat, empleado en varias distribuciones, es potente y efectivo, pero tiene algunas contrapartidas. Funciona mejor en un sistema basado completamente en RPM, porque el chequeo de dependencias realizado por el programa rpm s´olo entiende de paquetes RPM. S.u.S.E. 5.1 utiliza el formato srpm. Las dependencias s´olo son revisadas si un paquete se instala desde el programa YAST, permitiendo la opci´on (para un usuario experimentado) de desempaquetarlo en otra localizaci´on, y comprobar los ficheros y configuraciones antes de la instalacion final. Las dependencias son m´as u´ tiles durante la instalaci´on y configuraci´on inicial. Una vez que se ha usado el sistema por un tiempo, se tiene una idea de qu´e programas y bibliotecas se encuentran disponibles. La mayor´ıa de los paquetes de software para GNU/Linux tambi´en contienen informaci´on como qu´e se necesita que est´e presente en el sistema para que el paquete funcione. Es inteligente leer el fichero rc.config antes de ejecutar suseconfig y realizar cualquier cambio. Algunas de las acciones predeterminadas que el script realizar´a, quiz´a prefiera hacerlas usted mismo, las cu´ales son desactivadas f´acilmente editando el fichero. Los usuarios que est´en familiarizados con el esquema de ficheros de inicializaci´on de Slackware necesitar´an hacer algunos ajustes; los ficheros situados normalmente en /etc/rc.d se encuentran en /sbin/init.d.

2.7.2.

Post-instalaci´on de S.u.S.ETM

YAST est´a tambi´en dise˜nado para ser utilizado despu´es de la instalaci´on para el mantenimiento rutinario del sistema. La multiplicidad de ficheros de recursos necesarios por GNU/Linux para arrancar y funcionar pueden ser un desaf´ıo para los principiantes. YAST ofece un interfaz basado en men´us para estos ficheros, incluyendo el fichero de configuraci´on de sendmail, los ficheros de cron (Programacion de tareas), sripts de inicializaci´on, y varios ficheros de la red. Los cambios realizados en una sesi´on YAST se escriben en los diversos ficheros de configuraci´on “reales” por un script llamado suseconfig. Este script es ejecutado autom´aticamente por YAST al final de la sesi´on YAST; si /etc/rc.config es editado directamente, suseconfig debe ser iniciado manualmente. Esto parece un proceso complejo, pero es m´as f´acil que buscar los ficheros individuales, aprender la sintaxis correcta necesaria para editarlos, y hacer que hagan lo que t´u quieres. Despu´es de lograr tener funcionando S.u.S.E., es una buena idea instalar las fuentes del n´ucleo (disponibles en el CD-ROM, es un paquete opcional que puede instalarse durante la configuraci´on inicial). S.u.S.E. instala un n´ucleo gen´erico, y normalmente s´olo se necesitan unos cuantos de los m´odulos que lo acompa˜nan. Es una excelente oportunidad para familiarizarse con la mec´anica de la compilaci´on del c´odigo fuente, de esta manera terminar´a con un n´ucleo m´as peque˜no personalizado s´olo con las caracter´ısticas que necesite. El compilador gcc y las herramientas acompa˜nantes deben instalarse para compilar un n´ucleo; estas herramientas son una necesidad en un sistema GNU/Linux incluso si no se es programador. La revisi´on de dependencias de YAST ayudar´a a asegurarse de que todas las herramientas de compilaci´on necesarias est´an instaladas. La compilaci´on del n´ucleo puede parecer dif´ıcil para un principiante, pero es un proceso f´acil e intuitivo. Hay tres interfaces disponibles para el paso de configuraci´on inicial. El primero (y m´as antiguo) es un script en modo consola invocado desde la l´ınea de o´ rdenes, make config. Este script pregunta una serie de cuestiones y usa los resultados para escribir un fichero que gu´ıa al compilador en su trabajo. Necesita saber dos hechos b´asicos acerca de su hardware como qu´e tipo de disco duro y CD-ROM tiene. Si quiere soporte de sonido, necesitar´a saber la IRQ que usa su tarjeta, as´ı como unos pocos par´ametros que pueden ser extra´ıdos del manual de la tarjeta o de la salida de la utilidad de MS-DOS msd. Los otros dos interfaces son menuconfig y xconfig. El primero emplea una versi´on modificada del

2.8. Procedimientos post-instalaci´on

83

programa dialog mencionado arriba, el cu´al corre en una consola virtual o en un xterm y se asemeja a la herramienta YAST.xconfig es una versi´on basada en Tk dise˜nada para funcionar bajo X-Window. Las tres cumplen el mismo prop´osito. Las dos u´ ltimas permiten hacer las selecciones sin tener que escribir demasiado. Las fuentes del n´ucleo est´an bien documentadas. El fichero README en el directorio del nivel superior contiene suficiente informaci´on para garantizar una compilaci´on exitosa.

2.7.3.

Configurando las X

Configurar exitosamente el sistema X-Window (espec´ıficamente XFree86, que est´a incluido con S.u.S.E. y otras muchas distribuciones) puede ser una tarea tediosa. Hay tanta multiplicidad de monitores y tarjetas de v´ıdeo que cada instalacion de X debe ser configurada individualmente. La dificultad se ha facilitado en algo con la liberaci´on de la versi´on XFree86 3.2, que es la que se incluye en la m´as reciente liberaci´on de S.u.S.E. Una herramienta de configuraci´on basada en dialog puede usarse en vez del previo xf86config. Ambos est´an basados en scripts de shell similares al que se usa para configurar el n´ucleo de GNU/Linux. Sin embargo, todav´ıa necesitar´as saber el rango de refresco horizontal y vertical que tu monitor tolera, as´ı como el conjunto de chips que est´an instalados en tu tarjeta de v´ıdeo. Ayuda primero poner la configuraci´on lo m´as baja posible, por ejemplo, obtener las X funcionando a baja resoluci´on antes que intentar hacer un uso completo de las capacidades de la tarjeta de v´ıdeo. Los desarrolladores de S.u.S.E. se han estrujado las meninges en la configuraci´on de varios gestores de ventanas, por ejemplo fvwm95. La primara vez que inicie X, muchas de las aplicaciones que eligi´o para la instalaci´on estar´an disponibles desde el men´u de rat´on activado en la ventana ra´ız. Otra entrada en el men´u permite cambiar el fondo de la ventana. Muchos iconos bien dise˜nados son suministrados con la distribuci´on S.u.S.E. Esto da a los nuevos usuarios algo de respiro. Despu´es de tener GNU/Linux y X funcionando finalmente, hay suficiente para hacer tan s´olo aprendiendo el sistema sin sentirse llamado a personalizar el entorno, ¡en orden de hacerlo tolerable a la vista!

2.7.4.

´ Ultimas actualizaciones

Al minuto de finalizar la instalaci´on de incluso la m´as actualizada distribuci´on, comienza a estar incre´ es un proceso lento, pero eventualmente sentir´as la necesidad de actualizar alguna mentalmete desfasada. Este parte de tu sistema. Con S.u.S.E. 5.1 YAST puede ahora actualizar la distribuci´on por FTP. Algunas distribuciones funcionan mejor cuando el formato nativo del fichero de actualizaci´on se usa, pero S.u.S.E. se comporta bien usando el formato est´andar *.tar.gz. S.u.S.E sigue el camino marcado por Slackware respecto a esto. La mayor´ıa de los paquetes de software se compilar´an e instalar´an bien (en un sistema GNU/Linux razonablemente puesto al d´ıa) desde los formatos tar o gzip que los desarrolladores usan. Hay pocos paquetes problem´aticos por ah´ı. En estos casos, se puede usar RPM. El chequeo de dependencias no funcionar´a, pero los RPM’s permiten aprovecharse de la experiencia m´as avanzada de los usuarios en editar los makefile y otras destrezas de configuraci´on.

2.8. Procedimientos post-instalaci´on En este punto es una buena idea explicar como reiniciar y apagar el sistema que est´as usando. Nunca debes reiniciar o apagar el sistema GNU/Linux presionando el bot´on de reset. Tampoco debes desconectar la electricidad nunca. Como con la mayor´ıa de los sistemas UNIX, Linux guarda las escrituras en disco en memoria. Por lo tanto, si reinicias de repente el sistema sin apagarlo limpiamente (correctamente), puedes corromper los datos de los discos duros, causando un da˜no incalculable. La manera m´as f´acil de apagar el sistema es con la orden shutdown. Por ejemplo, para apagar y reiniciar el sistema inmediatamente, usa la orden siguiente root: # shutdown --r now

Esto reinicia limpiamente el sistema. La p´agina del manual para shutdown describe las otras o´ rdenes y argumentos disponibles. Usa la orden man shutdown para ver la p´agina del manual para la orden shutdown.

84

Obtenci´on e instalaci´on de GNU/Linux

Observa, sin embargo, que muchas de las distribuciones de GNU/Linux no vienen provistas de la orden shutdown en la instalaci´on media (b´asica). Esto significa que la primera vez que reinicies el sistema despu´es de la instalaci´on, necesitas usar la combinaci´on de teclas Ctrl - Alt - Del . Despu´es de tener la ocasi´on de explorar y usar el sistema, hay varias tareas de configuraci´on que debes emprender. La primera es crear una cuenta de usuario para ti mismo (y, opcionalmente, alguna otra para usuarios que vayan a tener acceso al sistema). La creaci´on de cuentas de usuario est´a descrita en el cap´ıtulo 4. Normalmente, todo lo que tienes que hacer es registrarte como root (administrador), y ejecutar el programa ´ adduser (a veces useradd). Este te lleva a trav´es de varios indicadores para crear cuentas de usuario nuevas. Si creas m´as de un sistema de ficheros para GNU/Linux, o si est´as usando una partici´on de intercambio, quiz´a necesites editar el fichero /etc/fstab para que esos sistemas de ficheros est´en disponibles autom´aticamente despu´es de reiniciar. Si est´as usando sistemas de ficheros separados para /usr, y ninguno de esos ficheros que deber´ıan estar en /usr parecen estar presentes, simplemente necesitas montar esos sistemas de ficheros. Consulta la p´agina 139 para una descripci´on del fichero /etc/fstab.

2.9.

Cuando se tienen problemas

Casi todos hemos tenido alguna clase de problema o cuelgue cuando se intenta instalar GNU/Linux la primera vez. la mayor´ıa de las veces, el problema es causado por un simple malentendido. Sin embargo, a veces el problema puede ser algo m´as serio, como un descuido de uno de los desarrolladores o un bug. Si su instalaci´on parece ser exitosa pero se recibieron mensajes de error inesperados, e´ stos se describen aqu´ı. Si su intalaci´on aparenta haber sido exitosa pero se recibieron mensajes inesperados de error, e´ stos se describen aqu´ı.

2.9.1. Problemas arrancando el medio de instalaci´on Cuando se intenta iniciar el disquete de instalaci´on por primera vez, puede encontrarse con algunos problemas, los cuales se enumeran abajo. Por favor, tenga en cuenta que estos inconvenientes no est´an relacionados con el inicio de su sistema GNU/Linux nuevo y ya instalado. Consulte la p´agina 91 para m´as informaci´on sobre estos problemas. Error en el disquete o en otro dispositivo al intentar arrancar el sistema La causa m´as frecuente de esta clase de problema es que el disquete est´e corrupto. Si el disquete se encuentra f´ısicamente da˜nado, deber´ıa construirlo de nuevo usando un disquete en buen estado. Si los datos del disquete son los que se encuentran defectuosos, deber´ıa verificar que ha descargado y transferido los datos al disquete correctamente. Generalmente, para solucionar este problema, bastar´a simplemente con volver a crear el disquete de arranque. Repita todos los pasos, e intente nuevamente. Si ha recibido su disquete de arranque por correo o alg´un otro distribuidor en lugar de descargarlo y crearlo por usted mismo, comun´ıquese con el distribuidor para pedirle uno nuevo –pero s´olo despu´es de verificar que e´ ste es, efectivamente el problema. El sistema se cuelga durante el arranque, o despu´es de arrancar Despu´es de que el disquete arranca, ver´a un n´umero de mensajes del n´ucleo, indicando cu´ales dispositivos fueron detectados y configurados. Despu´es de e´ sto, normalmente, se le presentar´a un indicador de ingreso42 , permiti´endole proceder con la instalaci´on (en lugar de esto, algunas distribuciones le lanzar´an justo al programa de instalaci´on). El sistema puede parecer como si estuviera bloqueado, durante muchos de estos pasos. Tenga paciencia: cargar software desde un disquete es un proceso lento. En muchos casos el sistema puede no haberse colgado de ninguna manera, simplemente necesita algo de tiempo. Verifique que no hayaa ninguna actividad, ya sea en el disco o en el sistema, por lo menos por unos cuantos minutos, antes de suponer que el sistema est´a bloqueado. 42 N.

del T.: “login indicador de o´ rdenes” en el original

Cuando se tienen problemas

85

1.

Despu´es de iniciar el sistema desde el indicador LILO, se debe cargar la imagen del n´ucleo del disquete. Esto puede tomar unos cuantos segundos; usted podr´a asegurarse de que todo marcha bien si la luz de la disquetera est´a encendida.

2.

Cuando arranca el n´ucleo, los dispositivos SCSI deben ser detectados. Si no posee ning´un dispositivo SCSI, el sistema har´a un alto de 15 segundos, mientras contin´ua la detecci´on de los posibles SCSI; esto ocurre, generalmente, despu´es de que la l´ınea lp init: lp1 exists (0), using polling driver

aparece en pantalla. 3. Una vez que el n´ucleo halla terminado de cargarse, el control pasa a los ficheros de arranque que hay en el disquete. Al cabo de esto, usted podr´a ver un indicador de entrada 43 , o bien, se iniciar´a un programa de instalaci´on. Si se le presenta un indicador de ingreso como Linux login:

entonces deber´ıa entrar, (por lo normal es como root o install — esto var´ıa seg´un cada distribuci´on). Antes de ingresar el nombre de usuario, el sistema puede detenerse por 20 segundos o m´as, mientras el programa de instalaci´on o el int´erprete de o´ rdenes se carga desde el disquete. Nuevamente, si esto sucediera, la luz de la disquetera deber´a estar encendida. No suponga que el sistema est´a colgado. Cualquiera de las causas comentadas arriba, puede ser el origen de su problema. De todos modos, es posible que el sistema realmente se cuelgue mientras se inicia, lo cu´al puede deberse a muchas causas. En primer lugar, puede ser que usted no posea suficiente memoria RAM para iniciar el disquete de instalaci´on. (Vea el siguiente punto al respecto para m´as informaci´on acerca de c´omo desactivar el disco RAM (ramdisk) para liberar memoria.) La causa del cuelgue de muchos sistemas, es la incompatibilidad del hardware. El u´ ltimo cap´ıtulo muestra un vistazo general del hardware soportado en GNU/Linux. Incluso si sus dispositivos son soportados, usted puede meterse en problemas si tiene configuraciones incompatibles de hardware, las cu´ales pueden estar causando que el sistema se cuelgue. Vea la p´agina 86, adelante, para una discusi´on sobre incompatibilidades de hardware. El sistema informa de errores a causa de falta de memoria, mientras intenta arrancar o instalar el software Este punto trata sobre la cantidad de RAM con la que se dispone. En sistemas con 4 Mbytes o menos de RAM, se pueden tener problemas al arrancar el disquete, o al instalar el software. Esto se produce ya que muchas distribuciones usan un disco RAM (ramdisk), que se trata de un sistema de ficheros cargado directamente en la memoria RAM, para las operaciones que se ejecutan mientras el disquete de instalaci´on est´a siendo utilizado. La imagen entera del disquete de instalaci´on, por ejemplo, puede cargarse en un disco RAM (ramdisk), lo que puede requerir m´as de un Mbyte de memoria RAM. Puede suceder que, cuando se intenta iniciar o instalar el software, en lugar de un mensaje de error por falta de memoria, su sistema se bloquee inesperadamente durante el arranque. Si su sistema se cuelga, y ninguna de las explicaciones de la secci´on anterior parezcan ser la causa, trate de desactivar el disco RAM. Vea la documentaci´on de su distribuci´on para m´as detalles. Acu´erdese de que GNU/Linux necesita para s´ı mismo, por lo menos 2 Mbytes de memoria RAM para ejecutarse; distribuciones m´as modernas requieren 4 Mbytes o m´as. El sistema informa de errores como “permission denied44 ”, o “file not found45 ”, durante el arranque Esto es un indicio de que su disquete de instalaci´on est´a da˜nado o contiene datos corruptos. Si usted est´a tratando de iniciar el sistema desde el disquete, (y est´a seguro de que est´a haciendo todo 43 N.

del T.: login del T.: permiso denegado 45 N. del T.: fichero no encontrado 44 N.

86

Obtenci´on e instalaci´on de GNU/Linux

correctamente), no deber´ıa estar viendo errores como este. Contacte con su distribuidor de software GNU/Linux e indague sobre el problema. Quiz´a pueda obtener otra copia del disquete de arranque si es necesario. Si usted ha descargado el disco de inicio, trate de construirlo nuevamente en un disquete sano. Posiblemente esto resuelva su problema. El sistema informa del error “VFS: Unable to mount root46 ” cuando se inicia Este mensaje de error indica que el sistema de ficheros ra´ız, (que se encuentra en el disquete de arranque), no puede ser localizado. Esto puede significar que su disquete de arranque est´a corrupto de alguna manera, o que el sistema no se est´a inicializando correctamente. Por ejemplo, muchas distribuciones de CD-ROM requieren que se encuentre el CD-ROM en la lectora, cuando se inicia la instalaci´on. Aseg´urese de que la lectora de CD-ROM est´e encendida y que funcione correctamente. Tambi´en es posible que el sistema no pueda localizar su unidad de CD-ROM cuando se inicia; para m´as informaci´on consulte la p´agina 86.

2.9.2.

Problemas con el hardware

El problema m´as com´un cuando se intenta instalar o usar GNU/Linux es una incompatibilidad con el hardware Incluso si todo su hardware est´a soportado por GNU/Linux, una configuraci´on err´onea o un conflicto con otro dispositivo puede algunas veces ocasionar resultados extra˜nos—los dispositivos pueden no ser detectados al arrancar, o el sistema se puede colgar. Es importante aislar estos problemas con el hardware si se sospecha que e´ stos pueden ser la fuente de sus problemas. Aislando problemas de hardware Si experimentas alg´un problema que creas que est´a relacionado con el hardware, lo primero que deber´ıas hacer es intentar aislar el problema. Esto significa eliminar todas las posibles variables y (usualmente) desmontar el sistema, pieza a pieza, hasta que el componente es aislado. Esto no es tan terrible como suena. B´asicamente, se deber´a retirar todo el hardware prescindible del equipo, y entonces determinar cu´al de los dispositivos est´a causando el problema, posiblemente reconectando cada dispositivo, uno cada vez. Esto quiere decir que se deber´a retirar todo el hardware excepto la unidad de disquettes y la tarjeta de v´ıdeo y por supuesto el teclado. Incluso los dispositivos aparentemente inocentes como los ratones pueden causar insospechados problemas a no ser que se les considere no esenciales. Por ejemplo, digamos que el sistema se cuelga durante la secuencia de detecci´on de la placa Ethernet en el arranque. Quiz´a pueda hipotetizar que hay un conflicto con la tarjeta Ethernet en su computadora. La manera r´apida y f´acil de encontrarlo es extraer la tarjeta Ethernet e intentar arrancar otra vez. Si todo va bien, entonces sabe que o (a) la tarjeta Ethernet no tiene soporte en Linux (ver p´agina 17), o (b) hay un conflicto de direcci´on o IRQ con la tarjeta. “¿Conflicto de direcci´on o IRQ?” ¿Qu´e diablos significa esto? Todos los dispositivos en un computador usan una IRQ, o Interrupt ReQuest line, 47 para decirle al sistema que necesitan algo hecho. Puedes pensar en la IRQ como un cordel del que el dispositivo tira cuando necesita que el sistema se haga cargo de alguna petici´on pendiente. Si m´as de un dispositivo est´a tirando del mismo cordel, el n´ucleo no es capaz de determinar cu´al de los dispositivos necesita su atenci´on. Desastre al instante. Entonces, hay que asegurarse de que todos los dispositivos instalados usan una u´ nica IRQ. En general la IRQ de un dispositivo puede establecerse mediante jumpers en la tarjeta; mira la documentaci´on para detalles espec´ıficos del dispositivo. Algunos dispositivos no requiereen el uso de una IRQ, pero se sugiere que si hay alguna disponible, se ponga. (Las controladoras SCSI Seagate ST01 y ST02 son buenos ejemplos). En algunoos casos, el n´ucleo proporcionado por tu medio de instalaci´on est´a configurado para usar ciertas IRQs para ciertos dispositivos. Por ejemplo, la controladora SCSI TMC-950, la controladora de CD-ROM Mitsumi y el driver del bus del rat´on. Si se quiere usar dos o m´as de estos dispositivos, habr´a que instalar primero GNU/Linux con s´olo uno de estos dispositivos activados, despu´es recompilar el n´ucleo para cambiar la IRQ predeterminada de uno de ellos. (Ver cap´ıtulo 4 para informaci´on acerca de recompilar el n´ucleo.) 46 N. 47 N.

del T.: no se puede montar ra´ız del T.: l´ınea de petici´on de interrupci´on

Cuando se tienen problemas

Device ttyS0 (COM1) ttyS1 (COM2) ttyS2 (COM3) ttyS3 (COM4) lp0 (LPT1) lp1 (LPT2) fd0, fd1 (disqueteras 1 y 2) fd2, fd3 (disqueteras 3 y 4)

87

I/O address 3f8 2f8 3e8 2e8 378 - 37f 278 - 27f 3f0 - 3f7 370 - 377

IRQ 4 3 4 3 7 5 6 10

DMA n/a n/a n/a n/a n/a n/a 2 3

Cuadro 2.8: Preajustes por omisi´on de dispositivos est´andar.

Otro a´ rea donde pueden aparecer conflictos de hardware es con los canales DMA (Direct Memory Access)48 , direcciones de E/S y direcciones de memoria compartida. Todos estos t´erminos describen mecanismos a trav´es de los cuales el sistema se comunica con los dispositivos f´ısicos. Algunas tarjetas Ethernet, por ejemplo, usan una direcci´on compartida de memoria as´ı como una IRQ para comunicarse con el sistema. Si cualquiera de e´ stas est´a en conflicto con otros dispositivos, entonces el sistema puede comportarse de manera err´atica. Deber´ıas ser capaz de cambiar el canal DMA, las direcciones de E/S o memoria compartida para varios dispositivos mediante los jumpers 49 de las tarjetas. (Desafortunadamente, algunos dispositivos no permiten cambiar estos ajustes.) La documentaci´on para varios dispositivos hardware deber´ıa especificar la IRQ, el canal DMA, direcci´on E/S o direcci´on de memoria compartida que el dispositivo usa, y c´omo configurarlo. Otra vez, la manera m´as simple de evitar estos problemas es deshabilitar temporalmente los dispositivos en conflicto hasta que se tenga tiempo de determinar la causa del problema. La tabla de m´as abajo es una lista de las IRQ y canales DMA utilizados por varios dispositivos “est´andar” en la mayor´ıa de sistemas. Casi todos los sistemas tienen alguno de estos dispositivos, as´ı que se puede evitar el poner la IRQ o el DMA de otro dispositivo en conflicto con estos valores. Problemas reconociendo la controladora de disco serie de mensajes en la pantalla como:

Cuando GNU/Linux arranca, se deber´ıa ver una

Console: colour EGA+ 80x25, 8 virtual consoles Serial driver version 3.96 with no serial options enabled tty00 at 0x03f8 (irq = 4) is a 16450 tty03 at 0x02e8 (irq = 3) is a 16550A lp init: lp1 exists (0), using polling driver ...

Aqu´ı, el n´ucleo est´a detectando los distintos dispositivos hardware presentes en el sistema. En alg´un punto se deber´ıa ver la l´ınea: Partition check:

seguida por una lista de las particiones reconocidas, por ejemplo: Partition check: hda: hda1 hda2 hdb: hdb1 hdb2 hdb3

Si por alguna raz´on, las unidades de disco o las particiones no se reconocen, entonces no se podr´a acceder a ellas de ninguna manera. Hay varias cosas que pueden causar que esto pase: La controladora del disco duro no est´a soportada. 48 N. 49 N.

del T.: acceso directo a memoria del T.: unas clavijas en la placa

88

Obtenci´on e instalaci´on de GNU/Linux

Si se tiene una controladora de disco (IDE,SCSI, o lo que sea) que no tenga soporte en Linux, el n´ucleo no reconocer´a las particiones al arrancar. Unidad o controladora no configurada incorrectamente. Incluso si la controladora est´a soportada por Linux, quiz´a no se haya configurado apropiadamente. (Este es un problema particular para las controladoras SCSI. La mayor´ıa de las controladoras no SCSI deber´ıan funcionar bien sin ninguna configuraci´on adicional). Echa un vistazo a la documentaci´on del disco duro o la controladora. En particular, muchos discos duros necesitan tener un jumper puesto para ser usado como unidad esclava (el segundo dispositivo en cualquiera del bus IDE primario o secundario) Una prueba para esta clase de condici´on es arrancar MS-DOS o alg´un otro sistema operativo que se sepa que funcina con la controladora y la unidad de disco. Si se puede acceder al disco duro y la controladora desde otro sistema operativo, entonces no es un problema de la configuraci´on de hardware. Consulta la p´agina 86, arriba, para informarte acerca de la posible resoluci´on de conflictos de dispositivos, y la p´agina 88 m´as abajo, para m´as informaci´on acerca de la configuraci´on de dispositivos SCSI. La controladora est´a configurada apropiadamente, pero no es detectada. Algunas BIOS de las controladoras SCSI requieren que el usuario especifique informaci´on acerca de la controladora al inicio. Hay una descripci´on de c´omo forzar la detecci´on de hardware para estas controladoras en la p´agina 88. No se reconoce la geometr´ıa del disco. Algunos sistemas como los IBM PS/Valuepoint, no guardan la informaci´on de la geometr´ıa del disco duro en la memoria CMOS, donde Linux espera encontrarla. Tambi´en ciertas controladoras SCSI necesitan que se las diga expl´ıcitamente d´onde encontrar la geometr´ıa de la unidad para que Linux reconozca la disposici´on del disco. Muchas distribuciones proporcionan una opci´on de arranque para especificar la geometr´ıa del disco. En general, cuando se arranca el medio de instalaci´on, se puede especificar la geometr´ıa de la unidad en el indicador de LILO con una orden como: boot: linux hd=cilindros,cabezas,sectores

donde cilindros, cabezas, y sectores corresponden al n´umero de cilindros, cabezas y sectores por pista del disco duro. Tras instalar GNU/Linux, deber´a instalar LILO, permiti´endole arrancar desde el disco duro. En este momento, se puede especificar la geometr´ıa de la unidad a LILO, haciendo innecesario introducir la geometr´ıa del disco cada vez que arranca. Consulta el Cap´ıtulo 4para m´as informaci´on acerca de LILO.

Problemas con las controladoras y los dispositivos SCSI Aqu´ı se presentan algunos de los problemas m´as comunes con las controladoras SCSI y los dispositivos como CD-ROMs, discos duros, y unidades de cinta. Si se tiene alg´un problema con GNU/Linux reconociendo un disco o controladora, siga leyendo. El COMO de Linux SCSI (ver Ap´endice A) contiene mucha informaci´on u´ til acerca de dispositivos SCSI en adici´on de lo que se muestra aqu´ı. SCSI puede ser dif´ıcil de configurar a veces. Un dispositivo SCSI se detecta en todos los posibles IDs. Esto es causado al poner el dispositivo con el mismo identificador que la controladora. Es necesario cambiar el ajuste del jumper para que el dispositivo use una direcci´on diferente que la controladora. Linux informa de errores, incluso si se sabe que los dispositivos est´an libres de errores. Esto puede ser causado por cables defectuosos o de baja calidad o una mala terminaci´on de la cadena SCSI. Si el bus SCSI no est´a terminado a ambos extremos, se pueden producir errores accediendo a los dispositivos SCSI. Si se tiene alguna duda, siempre revise los cables.

Cuando se tienen problemas

89

Los dispositivos SCSI informan de errores “timeout”. Los errores de tiempo de espera agotado, normalmente son producidos por un conflicto con una IRQ, DMA o direcci´on de dispositivo. Revisa las interrupciones de la controladora, a ver si est´an en su sitio. Las controladoras SCSI que usan BIOS no son detectadas. La detecci´on de las controladoras que usan BIOS fallar´a si la BIOS est´a deshabilitada, o si la firma del controlador no la reconoce el n´ucleo. Consulta el C´oMO Linux SCSI, disponible desde las fuentes de informaci´on disponibles en el Ap´endice A, para m´as informaci´on acerca de e´ sto. Las controladoras que usan memoria de E/S mapeada no funcionan. Esto ocurre cuando los puertos de E/S mapeados a memoria se cachean incorrectamente. Hay dos soluciones: una es marcar el espacio de direccionamiento de la tarjeta como no cacheable en los ajustes de la CMOS. La segunda soluci´on es deshabilitar toda la cach´e. Mientras se particiona, se obtiene una advertencia tipo “cylinders > 1024”, o no se puede iniciar desde una partici´on usando cilindros numerados por encima del 1023. La BIOS limita el numero de cilindros a 1024, y cualquier partici´on que use cilindros numerados por encima de esto no ser´a accasible por la BIOS. Esto s´olo afecta a Linux al arranque; una vez que el sistema ha arrancado se podr´a acceder a la partici´on. Las opciones son o arrancar Linux desde un disquete, o arrancar desde una partici´on usando cilindros por debajo del 1024. Al arrancar no se reconocen unidades de CD-ROM u otros dispositivos extra´ıbles. Intenta arrancando con un CD-ROM (o disco) en la unidad. Esto es necesario en algunos dispositivos. Si no se reconoce su controladora SCSI, quiz´a se necesite forzar la detecci´on de hardware al arrancar. Esto es particularmente importante para las controladoras SCSI que carecen de BIOS. Muchas distribuciones permiten especificar la IRQ de la controladora y la direcci´on de memoria compartida cuando se arranca el medio de instalaci´on. Por ejemplo, si se usa una controladora TMC-8xx, se podr´a introducir: boot: linux tmx8xx=interrupci´on,direcci´on

en el indicador de inicio de LILO, donde interrupci´on es la IRQ de la controladora, y direcci´on es la direcci´on de memoria compartida. Esto es o no posible dependiendo de la distribuci´on de GNU/Linux; consulta la documentaci´on para m´as detalles.

2.9.3.

Problemas instalando el software

Actualmente instalar el software GNU/Linux deber´ıa estar libre de problemas si se tiene suerte. Los u´ nicos problemas que quiz´a se puedan experimentar deber´ıan ser los relacionados con medios de instalaci´on defectuosos o la falta de espacio en los sistemas de ficheros de su GNU/Linux. aqu´ı hay una lista de estos problemas comunes. El sistema informa de “read error50 ”, “file not found51 ”, u otros errores mientras se intenta instalar el software Esto indica un problema con el medio de instalaci´on. Si se instala desde disquete, hay que tener en cuenta que los disquetes son muy susceptibles de tener errores de este tipo. Es conveniente asegurarse de utilizar un disquete nuevo de marca, reci´en formateado. Si se tiene una particion de MS-DOS en el disco, muchas distribuciones de GNU/Linux permiten la instalaci´on de software desde disco duro. Esto puede ser m´as r´apido y seguro que usar disquetes. Si se utiliza un CD-ROM, hay que asegurarse de verificar el disco buscando ara˜nazos, polvo o otros problemas que puedan causar errores en el medio. 50 N. 51 N.

del T.: error de lectura del T.: fichero no encontrado

90

Obtenci´on e instalaci´on de GNU/Linux

La causa del problema puede ser que el medio est´e en el formato incorrecto. Muchas distribuciones de GNU/Linux requieren que los disquetes est´en formateados en el formato MS-DOS de alta densidad. El disquete de arranque es la excepci´on; no est´a en formato MS-DOS en la mayor´ıa de los casos) Si todo lo dem´as falla, mejor obtener un nuevo conjunto de disquetes, o rehacer los disquetes (utilizandos disquetes nuevos) si se descarg´o el software usted mismo. El sistema informa de errores como “tar: read error52 ” o “gzip: not in gzip format53 ” Este problema est´a causado usualmente por ficheros corrompidos en el medio de instalaci´on. En otras palabras, los disquetes pueden estar libres de errores, pero los datos en los disquetes est´an de alg´un modo corrompidos. Si se descarg´o el software de GNU/Linux usando modo texto en vez de modo binario, entonces los ficheros estar´an corrompidos, y el programa de instalaci´on no podr´a leerlos. El sistema informa de errores como “device full54 ” mientras se instala Este es un s´ıntoma claro de que se ha acabado el espacio cuando se instala el software. No todas las distribuciones de GNU/Linux pueden solucionar el desastre limpiamente; no se podr´a abortar la instalaci´on y esperar que el sistema funcione. La soluci´on pasa por volver a crear el sistema de ficheros (con mke2fs) que borra el software parcialmente instalado. Se puede intentar una reinstalaci´on, seleccionando esta vez una menor cantidad de paquetes a instalar. En otros casos, quiz´a se necesite empezar completamente desde el principio, y replantearse el particionado y los tama˜nos de los sistemas de ficheros. El sistema informa de errores como “read intr: 0x1055 ” mientras se accede al disco duro Esto usualmente indica que hay bloques defectuosos en la unidad. Sin embargo, si se reciben estos errores mientras se usa mkswap o mke2fs, el sistema puede estar teniendo problemas accediendo a la unidad. Esto puede ser o un problema de hardware (ver p´agina 86), o puede quiz´a ser un caso de una geometr´ıa mal especificada. Si se utiliz´o la opci´on hd=cylindros,cabezas,sectores

en tiempo de arranque, para forzar la detecci´on de la geometr´ıa de la unidad, y se especific´o incorrectamente la geometr´ıa, se puede ser candidato a este problema. Esto tambi´en puede ocurrir cuando la geometr´ıa de la unidad est´a especificada incorrectamente en la CMOS del sistema. El sistema informa de errores como “file not found56 ” o “permission denied57 ” Este problema puede ocurrir cuando no todos los ficheros necesarios se encuentran presentes en el medio de instalaci´on (ver el siguiente p´arrafo) o si hay un problema de permisos con el software de instalaci´on. Por ejemplo, se sabe que algunas distribuciones de GNU/Linux tienen errores en el progra´ ma de instalaci´on mismo. Estas normalmente se solucionan r´apidamente, y son muy infrecuentes. Si se sospecha que el software de la distribuci´on contiene errores, y se est´a seguro de que no se ha hecho nada equivocadamente, contacte con el mantenedor de la distribuci´on para informar del error. Si se tienen otros errores extra˜nos cuando se instala GNU/Linux (especialmente si descarg´o el software usted mismo), aseg´urese de que se obtuvo todos los ficheros necesarios en la descarga. Por ejemplo, alguna gente utiliza la orden FTP mget *.* 52 N.

del T.: del T.: 54 N. del T.: 55 N. del T.: 56 N. del T.: 57 N. del T.: 53 N.

error de lectura no en formato gzip dispositivo lleno lectura interrumpida fichero no encontrado permiso denegado

Cuando se tienen problemas

91

cuando descarga el software de GNU/Linux por FTP. Esto descargar´a u´ nicamente aquellos ficheros que contengan un punto “.” en sus nombres de fichero; si alg´un fichero no tiene el punto “.”, no se descargar´a. El comando correcto para descargarlo todo en este caso es: mget *

La mejor advertencia es repasar los pasos que se han dado cuando algo va mal. Qu´ız´a se piense que se ha hecho todo correctamente, cuando de hacho se olvid´o un peque˜no pero importante paso en alg´un lugar a lo largo del proceso. En muchas ocasiones, volver a descargar y reinstalar el software puede resolver el problema. ¡No se d´e coscorrones frente a un muro m´as de lo necesario! Adem´as, si GNU/Linux se cuelga sin esperarlo durante la instalaci´on, quiz´a haya un problema de hardware de alguna clase. Consulte la p´agina 86 para m´as datos.

2.9.4.

Problemas despu´es de instalar GNU/Linux

Se ha pasado toda una tarde instalando GNU/Linux. Con el fin de dejar espacio para e´ ste, ha tenido que reducir sus particiones de MS-DOS y de OS/2, y con l´agrimas en sus ojos, borrar sus copias de SimCity y Wing Commander. Reinici´o el sistema pero no pasa nada; o peor a´un, algo pasa, pero no es lo que deber´ıa pasar. ¿Qu´e se debe hacer ahora? En la Secci´on 84, se han cubierto algunos de los problemas m´as comunes que pueden ocurrir al iniciar un sistema GNU/Linux nuevo desde los disquetes de instalaci´on —de los cu´ales algunos son puestos en pr´actica aqu´ı. Adem´as de e´ sos, se puede ser una v´ıctima de alguna de las siguientes dificultades. Problemas al iniciar GNU/Linux desde el disquete Si se usa un disquete para iniciar Linux, cuando el sistema arranca tal vez necesite especificar la ubicaci´on de la partici´on ra´ız de GNU/Linux. Esto ser´a realmente necesario, si se est´a usando el disquete original de la instalaci´on, y no el disquete com´un, creado durante la misma. Mientras se inicia el disquete apriete las teclas Shift o Ctrl . Esto deber´ıa mostrarle un men´u de inicio. Presione la tecla Tab para ver una lista con las opciones disponibles. Por ejemplo, muchas distribuciones le permitir´an escribir boot: linux hd=partici´on

en dicho men´u de inicio, en donde partici´on es el nombre de la partici´on ra´ız de GNU/Linux, por ejemplo, /dev/hda2. Para m´as informaci´on, consulte la documentaci´on de su distribuci´on. Problemas al iniciar GNU/Linux desde el disco duro Si ha optado por instalar LILO, en lugar de crear un disquete de arranque, deber´ıa ser capaz de iniciar Linux desde el disco duro. De todos modos, el procedimiento de instalaci´on autom´atico de LILO que poseen muchas distribuciones, no siempre es perfecto. La instalaci´on pudo haber usado informaci´on incorrecta de su esquema de particiones, haciendo que LILO se configure de forma incorrecta. Si es as´ı, entonces se necesitar´a reinstalar LILO para conseguir que todo funcione bien. La instalaci´on de LILO se analiza en el Cap´ıtulo 4. El Sistema informa “Drive not bootable---Please insert system disk.58 ” Esto es indicio de que el registro maestro de arranque del disco duro (MBR), est´a mal por alguna causa. En la mayor´ıa de los casos, esto no es un problema da˜nino y por lo general todos los dem´as datos de su disco deber´ıan estar intactos. Hay varias causas para que esto haya sucedido: 1.

Mientras estuvo reparticionando su disco usando fdisk, se pudo haber borrado la partici´on que estaba marcada como “activa”. MS-DOS y otros sistemas operativos intentan siempre arrancar la partici´on “activa” cuando se inicia el sistema, (a Linux le da igual si la partici´on es “activa” o no lo es). Una de las maneras para solucionar este problema, puede ser iniciar MS-DOS desde un disquete y ejecutar FDISK.EXE, para establecer como activa, la partici´on de MS-DOS. Tambi´en podr´a tratar con el siguiente comando (en versiones de MS-DOS 5.0 o posteriores) :

58 N.

del T.: Disco no iniciable—por favor inserte disco de sistema.

92

Obtenci´on e instalaci´on de GNU/Linux

FDISK /MBR

Este comando intentar´a reconstruir el registro maestro de arranque del disco duro para que se inicie MS-DOS, borrando a LILO. Si usted no posee MS-DOS, entonces necesitar´a arrancar GNU/Linux desde un disquete e intentar instalar LILO nuevamente. 2.

Es muy probable que la causa de este error tenga que ver con el hecho de haber creado una partici´on MS-DOS usando la versi´on fdisk de GNU/Linux, o viceversa. Se deber´ıan crear particiones MS-DOS solamente utilizando la versi´on de FDISK.EXE de MS-DOS. (Esto se aplica tambi´en para otros sistemas operativos distintos de MS-DOS). La mejor soluci´on es, empezar desde cero y reparticionar el disco correctamente, o simplemente borrar y crear nuevamente las particiones corruptas, siempre con la versi´on correcta de fdisk.

3.

Pudo haber sucedido que el proceso de instalaci´on de LILO haya fallado. Si fuera as´ı, usted deber´ıa iniciar GNU/Linux usando el disquete de arranque (si es que posee uno), o desde el medio de instalaci´on original. En cualquiera de los dos casos, usted deber´ıa proporcionar opciones para especificar la partici´on ra´ız que GNU/Linux debe usar para arrancar. Presione las teclas Shift or Ctrl al arrancar el sistema, y en el men´u presione Tab para ver las opciones disponibles.

Cuando el sistema arranca desde el disco duro, se inicia MS-DOS (u otro sistema operativo) en vez de GNU/Linux Antes que nada, aseg´urese de que realmente ha instalado LILO durante el proceso de instalaci´on de GNU/Linux. Si no es as´ı, entonces el sistema seguir´a arrancando MS-DOS (o el sistema operativo que usted posea), cuando se intente cargar desde el disco duro. Para que GNU/Linux pueda iniciarse desde el disco duro, usted necesitar´a instalar LILO (see Chapter 4). Si por otro lado, ha instalado LILO, pero arranca otro sistema operativo en lugar de GNU/Linux, puede ser que se tenga configurado LILO para que arranque ese sistema operativo por defecto. Para que LILO se presente en el arranque, apriete las teclas Shift o Ctrl , y en el indicador apriete Tab . Esto deber´ıa mostrarle una lista con los sistemas operativos disponibles. Elija la opci´on apropiada (usualmente “linux”)) para iniciar GNU/Linux. Si desea tener a GNU/Linux como el sistema operativo de arranque por defecto, tendr´a que reinstalar LILO. Vea el cap´ıtulo 4. Asimismo, puede ser posible que usted haya intentado instalar LILO, pero que el procedimiento de instalaci´on haya fallado de alguna manera. Vea el asunto anterior. Problemas al registrarse en GNU/Linux de o´ rdenes de registro, login, similar a

Despu´es de iniciar Linux, ser´a presentado ante un indicador

linux login:

En este punto, tanto la documentaci´on de su distribuci´on como el sistema, le dir´an qu´e debe hacerse. En muchas distribuciones, simplemente tendr´a que registrarse como root, sin ninguna contrase˜na. Otros nombres de usuario posibles son guest o test. Generalmente, un sistema GNU/Linux reci´en instalado, no nos deber´ıa pedir una contrase˜na en el indicador de o´ rdenes de login inicial. De cualquier modo, si el sistema le pide una, puede que haya un problema con su nuevo sistema. Antes que nada, trate de usar una contrase˜na equivalente al nombre de usuario; por ejemplo, si usted ha utilizado root para ingresar, use “root” como contrase˜na. Si sencillamente usted no puede entrar, es muy posible que exista un problema. Consulte la documentaci´on de su distribuci´on: el nombre de usuario y la contrase˜na para entrar pueden estar perdidos por ah´ı. Tambi´en pudo haber sucedido, que durante el proceso de instalaci´on, el sistema le haya mostrado el nombre de usuario y la contrase˜na para ingresar por primera vez, o que ambos datos est´en justo delante suyo, en el indicador de login. Otra de las causas de esta dificultad puede ser un problema con la instalaci´on del programa login de GNU/Linux y sus ficheros de inicio. Si es as´ı, necesitar´a reinstalar (por lo menos algunas partes de) GNU/Linux, o arrancar el programa de instalaci´on e intentar resolver el problema a mano—vea el Cap´ıtulor 4 para algunas sugerencias.

Cuando se tienen problemas

93

Problemas al usar el sistema Si se ha logrado ingresar exitosamente al sistema, podr´a ver un indicador del int´erprete de o´ rdenes (shell), (como por ejemplo “#” o “$”), y podr´a felizmente, deambular por su nuevo sistema. De todos modos, hay algunos problemas iniciales, que a veces pueden complicarnos la vida. El m´as com´un de estos inconvenientes es el permiso incorrecto que se tiene sobre algunos ficheros o directorios. Esto puede ser la causa del mensaje de error Shell-init: permission denied

que se nos presente despu´es de ingresar al sistema, (de hecho, cuando veamos cualquier mensaje que diga algo como “permission denied”59 , podremos estar seguros de que se trata de un problema con los permisos de los ficheros) En casi todos los casos, se puede resolver este problema simplemente usando chmod, para ajustar los permisos de los ficheros o directorios adecuados. Por ejemplo, en algunas distribuciones de GNU/Linux se ha usado (incorrectamente) el modo de fichero 60 0644 para el directorio ra´ız (/). El arreglo para esto fue introducir la orden # chmod 755 /

como root. Sin embargo, para poder ejecutar dicho comando, se necesitar´a arrancar el sistema desde el disquete de instalaci´on, y montar el sistema de ficheros ra´ız de GNU/Linux a mano —lo que puede ser una tarea algo dura para los m´as principiantes. Conforme utilice el sistema, podr´a encontrar lugares de su sistema, en donde los permisos para los ficheros y directorios sean incorrectos, o programas que no se ejecuten como se los configur´o. ¡Bienvenido al mundo de GNU/Linux! Mientras que la mayor´ıa de las distribuciones pr´acticamente no dan problemas, muy pocas de ellas son perfectas. No queremos cubrir aqu´ı todos estos problemas. En su lugar, le ayudaremos a resolver la mayor´ıa de estos obst´aculos de configuraci´on a lo largo del libro, ense˜na´ ndole c´omo encontrarlos y repararlos por usted mismo. En el Cap´ıtulo 1, se ha comentado parte de esta filosof´ıa. En el Cap´ıtulo 4, se dar´an algunas pistas para arreglar muchos de estos frecuentes problemas de configuraci´on.

59 N. 60 N.

del T.: permiso denegado del T.: file mode

94

Obtenci´on e instalaci´on de GNU/Linux

Cap´ıtulo 3

Tutorial de GNU/Linux 3.1. Introducci´on Si es nuevo en UNIX y GNU/Linux, puede que est´e un poco intimidado por el tama˜no y la aparente complejidad del sistema que tiene delante suya. Este cap´ıtulo no profundiza en muchos detalles ni cubre temas avanzados. Por contra, queremos que aterrice corriendo. Aqu´ı se asume que posee pocos conocimientos, salvo quiz´as algo de familiaridad con ordenadores personales, y MS-DOS. Sin embargo, incluso si no es un usuario de MS-DOS, deber´ıa ser capaz de entender todo esto. A primera vista, GNU/Linux se parece mucho a MS-DOS—despu´es de todo, hay partes de MS-DOS basadas en el sistema operativo CP/M, que a su vez se basaba en UNIX. Sin embargo, s´olo las caracter´ısticas m´as superficiales de GNU/Linux se parecen a MS-DOS. Incluso si es completamente nuevo en el mundo del PC, este tutorial deber´ıa serle de ayuda. Y, antes de que comencemos: No tenga miedo a experimentar El sistema no le morder´a. No se puede destrozar todo s´olo por trabajar con el sistema. GNU/Linux tiene incorporadas caracter´ısticas de seguridad para evitar que usuarios ”normales”da˜nen ficheros que sean imprescindibles para el sistema. Aun as´ı, lo peor que puede ocurrir es que borre todos o algunos de sus ficheros y tenga que reinstalar el sistema. As´ı que, en este punto, no tiene nada que perder.

3.2. Conceptos b´asicos de GNU/Linux GNU/Linux es un sistema operativo multitarea y multiusuario, lo que significa que mucha gente puede ejecutar diferentes aplicaciones en un ordenador al mismo tiempo. En esto se diferencia de MS-DOS, donde s´olo una persona puede usar el sistema en un momento dado. Bajo GNU/Linux, para identificarse en el sistema, debe registrarse “log in”, lo que requiere que introduzca su nombre de usuario login name (el nombre que el sistema usa para identificarle), y que introduzca su password, que es su contrase˜na personal para acceder a su cuenta. Como s´olo usted conoce su contrase˜na, nadie m´as puede acceder al sistema con su nombre. En los sistemas UNIX tradicionales, los administradores del sistema le asignan un nombre de usuario y una contrase˜na inicial cuando se le da una cuenta en el sistema. De todos modos, como en GNU/Linux usted es el administrador del sistema, usted debe poner en marcha su propia cuenta antes de que pueda acceder a ella. Para las pr´oximas discusiones, usaremos el nombre de usuario imaginario, “larry.” Adem´as, cada sistema tiene asignado un nombre de host . Es e´ ste nombre de ”host” le da nombre a la m´aquina adem´as de car´acter y encanto. El ”host name” se usa para identificar m´aquinas individuales en una red, pero incluso si su m´aquina no est´a conectada a una, deber´ıa tener un nombre ”host”. Para los ejemplos siguientes, el nombre ”host” de la m´aquina es “mousehouse”.

95

96

Tutorial de GNU/Linux

3.2.1.

Creaci´on de una cuenta

Antes de que pueda usar un sistema GNU/Linux reci´en instalado, debe configurar una cuenta para s´ı mismo. No suele ser una buena idea usar la cuenta root para un uso diario; deber´ıa reservar la cuenta root para ejecutar o´ rdenes privilegiados y para el mantenimiento del sistema, como veremos m´as adelante. Para crear una cuenta para usted mismo, acceda al sistema como root y use el orden useradd o adduser. Vea Section 4.6 para informaci´on acerca de este procedimiento.

3.2.2.

Registrarse en el sistema

A la hora de entrar en el sistema, ver´a algo como esto: mousehouse login:

Introduzca su nombre y pulse la tecla Enter . Nuestro h´eroe, larry, escribir´ıa: mousehouse login: larry Password:

Seguidamente, introduzca su contrase˜na. Los car´acteres que introduzca no ser´an mostrados en la pantalla, as´ı que escriba con cuidado. Si se equivoca con la contrase˜na, ver´a: Login incorrect

y tendr´a que probar de nuevo. Una vez que haya introducido correctamente su nombre y contrase˜na, usted ha entrado oficialmente en el sistema, y podr´a comenzar a trabajar.

3.2.3.

Consolas Virtuales

La consola del sistema es el monitor y el teclado conectados directamente al sistema, (debido a que GNU/Linux es un sistema operativo multiusuario, puede tener otros terminales conectados a los puertos serie de su sistema, pero e´ stos no constituir´an la consola). GNU/Linux, como otras versiones de UNIX, facilita el acceso a consolas virtuales (o CVs), que le permiten tener m´as de una sesi´on en la consola a la vez. Para comprobar esto, entre en el sistema. Entonces, pulse Alt-F2 . Deber´ıa ver login: de nuevo. Usted est´a viendo la segunda consola virtual. Para cambiar a la primera CV, pulse Alt-F1 . Voila!. Ha vuelto a su primera sesi´on. Un sistema GNU/Linux reci´en instalado le permite acceder s´olo a las primeras seis (m´as o menos) CVs, presionando de Alt-F1 hasta Alt-F4 , o hasta cuantas CVs est´en configuradas en su sistema. Es posible habilitar hasta 12 CVs —una para cada tecla de funci´on en su teclado. Como puede ver, el uso de CVs puede ser muy poderoso porque puede trabajar en diferentes sesiones a la vez. Aunque el uso de CVs es algo limitado (despu´es de todo, s´olo puede ver una CV a la vez), deber´ıa permiterle hacerse una idea de las capacidades multiusuario de GNU/Linux. Mientras est´e trabajando en la primera CV, puede cambiar a la segunda CV y trabajar en otra cosa diferente.

3.2.4.

Int´erpretes de o´ rdenes y o´ rdenes

Para la mayor´ıa de sus exploraciones en el mundo de GNU/Linux, usted le hablar´a al sistema a trav´es de un shell (int´erprete de o´ rdenes), un programa que recibe las o´ rdenes que escribe y los traduce en instrucciones al sistema operativo. Esto se puede comparar al programa COMMAND.COM de MS-DOS, que hace esencialmente lo mismo. Un int´erprete de o´ rdenes es u´ nicamente un interfaz para GNU/Linux. Hay muchos interfaces disponibles —como el sistema X Window, que le permite ejecutar orden usando el rat´on y el teclado. A la vez que entra en el sistema, e´ ste inicia el int´erprete de o´ rdenes, y usted ya puede comenzar a introducir o´ rdenes. Aqu´ı tenemos un ejemplo r´apido. Larry entra en el sistema y el indicador “ indicador de o´ rdenes” del int´erprete de o´ rdenes queda a la espera de o´ rdenes.

Conceptos B´asicos de GNU/Linux

97

mousehouse login: larry Password: larry’s password Welcome to Mousehouse! /home/larry#

La u´ ltima l´ınea de este texto es el indicador del int´erprete de o´ rdenes, comunicando que est´a listo para recibir o´ rdenes. (M´as adelante veremos m´as cosas acerca del indicador). Probemos a decirle al sistema que haga algo interesante: /home/larry# make love make: *** No way to make target ‘love’. Stop. /home/larry#

Bien, como podemos ver, make es el nombre de un programa que hay en el sistema, y el int´erprete de o´ rdenes ejecut´o este programa cuando le dimos el orden. (Desgraciadamente, el sistema se mostr´o antip´atico.) Esto nos lleva a la siguiente pregunta: ¿Qu´e es un orden? ¿Qu´e ocurre cuando escribe “make love”? La primera palabra en la l´ınea de o´ rdenes, ”make”, es el nombre dla orden que debe ser ejecutado. Todo lo dem´as en la l´ınea de o´ rdenes se toma como argumentos para este orden. Ejemplo: /home/larry# cp foo bar

El nombre de este orden es “cp”, y los argumentos son “foo” y bar”. Cuando introduce un orden, el int´erprete de o´ rdenes hace varias cosas. Primero, comprueba la orden para ver si es interno al int´erprete de o´ rdenes. (Es decir, un orden que el int´erprete de o´ rdenes sabe ejecutar por s´ı mismo. Hay muchos de estos o´ rdenes, y los veremos m´as adelante). El int´erprete de o´ rdenes tambi´en comprueba si la orden es un alias, o nombre sustitutorio, para otro orden. Si no se cumple ninguna de estas dos condiciones, el int´erprete de o´ rdenes busca un programa, en el disco, que tenga el nombre especificado. Si tiene e´ xito, el int´erprete de o´ rdenes ejecuta el programa, mand´andole los argumentos especificados en la l´ınea de o´ rdenes. En nuestro ejemplo, el int´erprete de o´ rdenes busca un programa llamado make, y lo ejecuta con el argumento love. El orden make es un programa usado a menudo para compilar grandes programas, y toma como argumentos el nombre de un ”objetivo”para compilar. En el caso de ”make love”, le dijimos a make que compilara el objetivo love. Como make no puede encontrar un objetivo con ese nombre, falla con un divertido mensaje de error, y nos lleva de nuevo al indicador del int´erprete de o´ rdenes. ¿Qu´e ocurre si escribimos una orden en el int´erprete de o´ rdenes y e´ ste no puede encontrar un programa que tenga el nombre especificado? Bien, podemos probar lo siguiente: /home/larry# eat dirt eat: command not found /home/larry#

Bastante simple, si el sistema no puede encontrar un programa con el nombre dado en la l´ınea de o´ rdenes (aqu´ı, ”eat”), imprime un mensaje de error. A menudo se encontrar´a con ese mensaje de error si se equivoca con la orden (por ejemplo, si hubiera escrito “mkae love” en lugar de “make love”).

3.2.5.

Salida del sistema

Antes de que sigamos, deber´ıamos decirle c´omo salir del sistema. En el indicador del int´erprete de o´ rdenes, use la orden /home/larry# exit

para salir del sistema. Hay otras formas de salir, pero e´ sta es la m´as facilita.

98

Tutorial de GNU/Linux

3.2.6.

˜ Cambiar la contrasena

Tambi´en deber´ıa saber c´omo cambiar su contrase˜na. El orden passwd le pide su antigua contrase˜na y una nueva. Adem´as le pide que vuelva a introducir la nueva contrase˜na para darla por v´alida. Tenga cuidado de no olvidar su contrase˜na—si lo hace, tendr´a que pedirle al administrador del sistema que la reinicie por usted. (Si usted es el administrador del sistema, vea la p´agina 142.)

3.2.7.

Ficheros y directorios

Bajo la mayor´ıa de sistemas operativos (incluyendo GNU/Linux), existe el concepto de fichero, que es simplemente un conjunto de informaci´on con un nombre (llamado nombre de fichero). Ejemplos de ficheros podr´ıan ser su examen de historia, un correo electr´onico (e-mail), o un programa que pueda ser ejecutado. B´asicamente, cualquier cosa almacenada en el disco es guardado en un fichero individual. Los ficheros se identifican por sus nombres de fichero. Por ejemplo, el fichero que contiene su examen de historia podr´ıa estar almacenado con el nombre de fichero history-paper. Estos nombres normalmente identifican el fichero y su contenido de una forma que tenga alg´un significado para usted. No existe ning´un formato est´andar para los nombres de fichero, al contrario de lo que ocurre bajo MS-DOS y algunos otros sistemas operativos; en general, un nombre de fichero puede contener cualquier caracter (excepto el car´acter /—vea la discusi´on acerca de los nombres de las rutas, m´as adelante) y est´a limitado a 256 car´acteres de longitud. Junto con el concepto de ficheros tenemos el concepto de directorios. Un directorio es una colecci´on de ficheros. Puede entenderse como una ”carpeta” que contiene muchos ficheros diferentes. Los directorios tienen nombres, con los que se les identifica. Adem´as, los directorios se mantienen en una estructura de tipo a´ rbol; es decir, los directorios pueden contener otros directorios. Por tanto, puede referirse a un fichero por su nombre de ruta, que est´a compuesto del nombre del fichero, precedido por el nombre del directorio que lo contiene. Por ejemplo, supongamos que Larry tiene un directorio llamado papers, que contiene tres ficheros: history-final, english-lit, and masters-thesis. Cada uno de estos tres ficheros contiene informaci´on para tres proyectos de Larry. Para referirnos al fichero english-lit, Larry puede especificar el nombre de la ruta del fichero: papers/english-lit

Como puede ver, el directorio y el nombre del fichero est´an separados por una u´ nica barra (/). Por esta raz´on, los nombres de los ficheros no pueden contener el car´acter /. Los usuarios de MS-DOS encontrar´an familiar est´a convenci´on, aunque en el mundo de MS-DOS se usa la barra invertida (\) en su lugar. Como ya mencionamos, los directorios pueden anidarse unos en otros. Por ejemplo, supongamos que hay otro directorio en papers, llamado notes. El directorio notes contiene los ficheros math-notes y cheat-sheet. El nombre de la ruta del fichero cheat-sheet ser´ıa papers/notes/cheat-sheet

Por tanto, el nombre de la ruta es realmente como la ruta hasta el fichero. El directorio que contiene un subdirectorio dado es conocido como directorio padre. En nuestro caso, el directorio papers es el padre del directorio notes.

3.2.8.

El a´ rbol de directorios

La mayor´ıa de los sistemas GNU/Linux usa una distribuci´on de ficheros est´andar para los ficheros de forma que los recursos del sistema y los programas puedan ser f´acilmente localizados. Esta distribuci´on forma el a´ rbol de directorios, que comienza en el directorio “/”, tambi´en conocido como ”directorio ra´ız”. Directamente debajo de / est´an importantes subdirectorios: /bin, /etc, /dev, y /usr, entre otros. Estos directorios contienen otros directorios que contienen ficheros de configuraci´on del sistema, programas, etc´etera. En particular, cada usuario tiene un directorio de usuario, que es el directorio preparado para que el usuario almacene sus propios ficheros. En los ejemplos de arriba, todos los ficheros de Larry (como

Conceptos B´asicos de GNU/Linux

99

Figura 3.1: Un t´ıpico a´ rbol de directorio GNU/Linux (resumido). cheat-sheet y history-final) est´an contenidos en el directorio de usuario de Larry. Normalmente, los directorios de usuario est´an contenidos bajo /home, y se nombran con el nombre de usuario al que pertenecen. El directorio de usuario de Larry es /home/larry. El diagrama en la P´agina 99 muestra un a´ rbol de directorios de ejemplo, que podr´ıa darle una idea de c´omo se organiza el a´ rbol de directorios de su sistema.

3.2.9.

Directorio de trabajo actual

En cualquier momento, se asume que los o´ rdenes que introduce se refieren a su directorio de trabajo actual. Puede entender directorio de trabajo como el directorio en el que ”se encuentra” en ese momento. Cuando accede por primera vez al sistema, su directorio de trabajo se configura como su directorio de usuario —/home/larry, en nuestro caso. Cuando haga referencia a un fichero, puede referirse a e´ l en relaci´on a su directorio de trabajo actual, en vez de especificar el nombre de la ruta completa del fichero. Aqu´ı tenemos un ejemplo. Larry tiene el directorio papers, y papers contiene el fichero history-final. Si Larry quiere ver el contenido de este fichero, puede usar la orden /home/larry# more /home/larry/papers/history-final

La orden more simplemente muestra por pantalla un fichero, pantalla a pantalla. Como el directorio de trabajo actual de Larry es /home/larry, se puede referir al fichero en relaci´on con su localizaci´on actual usando la orden /home/larry# more papers/history-final

Si comienza el nombre del fichero (como papers/final) con un car´acter diferente de /, se est´a refiriendo al fichero en t´erminos relativos a su directorio de trabajo actual. Esto se conoce como nombre de ruta relativo. Por otra parte, si comienza el nombre del fichero con una /, el sistema lo interpreta como el nombre de la ruta absoluta —es decir, un nombre de ruta que incluye la ruta completa hasta el fichero, comenzando en el directorio ra´ız, /. Esto se conoce como nombre de ruta absoluta.

100

Tutorial GNU/Linux

3.2.10.

Refiri´endose al directorio inicial

Bajo tcsh y bash1 puede especificar su directorio de usuario con el car´acter de la virgulilla2 (˜). Por ejemplo, la orden /home/larry# more ˜/papers/history-final

es equivalente a /home/larry# more /home/larry/papers/history-final

El int´erprete de o´ rdenes reemplaza el car´acter ˜ por el nombre de su directorio de trabajo. Puede especificar tambi´en los directorios de usuario de otros usuarios con el car´acter virgulilla. La ruta ˜karl/letters es expandido a /home/karl/letters por el int´erprete de o´ rdenes (si /home/karl es el directorio de usuario de Karl). El uso de la virgulilla es simplemente un atajo; no existe ning´un directorio llamado ˜—es s´olo una ayuda proporcionada por el int´erprete de o´ rdenes.

3.3. Primeros Pasos en GNU/Linux Antes de que empecemos, es importante saber que todos los nombres de ficheros y o´ rdenes en un sistema GNU/Linuxson case-sensitive (que diferencian entre may´usculas y min´usculas a diferencia de sistemas operativos como MS-DOS). Por ejemplo, la orden make es muy diferente de Make o MAKE. Lo mismo se cumple para nombres de ficheros y directorios.

3.3.1.

Movi´endonos por la estructura de directorios.

Ahora que puede entrar en el sistema y que sabe c´omo referenciar los ficheros usando las rutas de los mismos, ¿c´omo puede cambiar el directorio de trabajo actual, para hacer la vida m´as f´acil? La orden para moverse por la estructura de directorios es cd, que es una abreviatura de ”cambiar directorio”. Muchas de las o´ rdenes m´as usadas en GNU/Linuxson de dos o tres letras. La forma de usar la orden cd es cd directorio

donde directorio es el nombre del directorio que quiere que se convierta en el directorio de trabajo actual. Como se mencion´o antes, cuando entra en el sistema, comienza en su directorio de usuario. Si Larry quisiera cambiar al subdirectorio papers, usar´ıa la orden /home/larry# cd papers /home/larry/papers#

Como puede ver, el indicador de Larry cambia para reflejar su directorio de trabajo actual (de forma que sabe d´onde se encuentra). Ahora que est´a en el directorio papers, puede ver history-final con la orden /home/larry/papers# more history-final

Ahora, Larry est´a atascado en el subdirectorio papers. Para regresar al directorio superior (o padre), ejecute la orden /home/larry/papers# cd

..

/home/larry#

(Observe los espacios entre “cd” y “..”.) Cada directorio tiene una entrada llamada “..” que se refiere al directorio padre. De forma similar, cada directorio tiene una entrada llamada “.”que se refiere a s´ı mismo. Por tanto, la orden 1 tcsh y bash son dos int´ erprete de o´ rdeness que funcionan bajo GNU/Linux. El int´erprete de o´ rdenes es un programa que lee los o´ rdenes del usuario y los ejecuta; la mayor´ıa de los sistema GNU/Linux habilitan tcsh o bash para las cuentas de los nuevos usuarios. 2 N. del T.: tilde en ingl´ es

Primeros pasos en GNU/Linux

/home/larry/papers# cd

101

.

no lleva a ninguna parte. Con la orden cd se pueden usar tambi´en rutas absolutas. Para cambiar al directorio de usuario de Karl, se puede usar la orden /home/larry/papers# cd /home/karl /home/karl#

Adem´as, la orden cd sin argumentos le llevar´a a su propio directorio de usuario. /home/karl# cd /home/larry#

3.3.2.

Mirando el contenido de los directorios

Ahora que sabe c´omo moverse por los directorios, podr´ıa pensar, ¿y qu´e?. Dar vueltas por los directorios no tiene mucho sentido por s´ı mismo, as´ı que introduzcamos una orden nueva, ls. La orden ls muestra un listado de ficheros y directorios, por omisi´on del directorio actual. Por ejemplo: /home/larry# ls Mail letters papers /home/larry#

Aqu´ı podemos darnos cuenta de que Larry tiene tres entradas en su directorio actual: Mail, letters, y papers. Esto no nos dice mucho – ¿ qu´e son directorios o ficheros? Podemos usar la opci´on -F de la orden ls para obtener informaci´on m´as detallada. /home/larry# ls --F Mail/ letters/ papers/ /home/larry#

Por la / que aparece en cada nombre, sabemos que estas tres entradas son, de hecho, subdirectorios. Ejecutando ls -F puede tambi´en aparecer un “*” al final de un nombre en la lista resultante, lo que indicar´ıa que el fichero es un ejecutable o un programa que puede ejecutarse. Si no aparece nada al final de un nombre al usar ls -F, el fichero es un “plain old file”, es decir, no es ni un directorio ni un ejecutable. En general, cada orden UNIX puede tomar un cierto n´umero de opciones adem´as de otros argumentos. Estas opciones normalmente comienzan con un “-”, como se vi´o arriba con la opci´on -F. La opci´on -F le dice a ls que d´e m´as informaci´on acerca del tipo de ficheros involucrados –en nuestro caso, imprimiendo una / despu´es de cada nombre de directorio. Si le da a ls el nombre de un directorio, el sistema listar´a los contenidos de ese directorio. /home/larry# ls --F papers english-lit history-final masters-thesis notes/ /home/larry#

O, para un listado m´as interesante, veamos qu´e hay en el directorio de sistema /etc. /home/larry# ls /etc

102

Tutorial GNU/Linux

Images adm bcheckrc brc brc˜ csh.cshrc csh.login default disktab fdprm fstab ftpaccess /home/larry#

ftpusers getty gettydefs group inet init init.d initrunlvl inittab inittab.old issue lilo

lpc magic motd mount mtab mtools pac passwd printcap profile psdatabase rc

rc.new rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rmt rpc rpcinfo securetty services

shells startcons swapoff swapon syslog.conf syslog.pid syslogd.reload termcap umount update utmp wtmp

Si es un usuario de MS-DOS, puede que se d´e cuenta de que los nombres de ficheros pueden ser mayores de 8 caracteres, y pueden contener puntos en cualquier posici´on. Puede incluso usar m´as de un punto en un nombre de fichero. Vayamos a la parte superior del a´ rbol de directorios, y luego bajemos a otro directorio con las o´ rdenes /home/larry# cd .. /home# cd .. /# cd usr /usr# cd bin /usr/bin#

Puede tambi´en moverse a los directorio en un s´olo paso, haciendo cd /usr/bin. Pruebe a moverse por varios directorios, usando ls y cd. En algunos casos, puede que le aparezca el mensaje de error “Permission denied”3 . Esto es debido simplemente .al sistema de seguridad UNIX”: para poder usar las o´ rdenes ls o cd, debe tener permisos para hacerlo. Hablaremos m´as acerca de esto en la pagina 116.

3.3.3.

Creaci´on de directorios nuevos

Es hora de aprender c´omo crear directorios. Esto requiere el uso de la orden mkdir. Pruebe lo siguiente: /home/larry# mkdir foo /home/larry# ls -F Mail/ foo/ letters/ papers/ /home/larry# cd foo /home/larry/foo# ls /home/larry/foo#

¡Felicidades! Ha creado un nuevo directorio y se ha metido en e´ l. Como no hay ficheros en este nuevo directorio, aprendamos c´omo copiar ficheros de un lugar a otro.

3.3.4.

Copiando ficheros

Para copiar ficheros, use el orden cp, como se muestra aqu´ı: /home/larry/foo# cp /etc/termcap /home/larry/foo# cp /etc/shells 3 N.

del T.: Permiso denegado

. .

Primeros pasos en GNU/Linux

103

/home/larry/foo# ls --F shells

termcap

/home/larry/foo# cp shells bells /home/larry/foo# ls --F bells

shells

termcap

/home/larry/foo#

La orden cp copia los ficheros escritos en la l´ınea de o´ rdenes al fichero o directorio dados como u´ ltimo argumento. D´ese cuenta de que usamos“.” para referirnos al directorio actual.

3.3.5.

Moviendo ficheros

El orden mv mueve ficheros, en vez de copiarlos. La sintaxis es muy parecida: /home/larry/foo# mv termcap sells /home/larry/foo# ls -F bells

sells

shells

/home/larry/foo#

D´ese cuenta de que el fichero termcap ha sido renombrado a shells. Puede adem´as puede usar la orden mv para mover un fichero a un directorio completamente nuevo. Nota: mv y cp sobreescribir´an un fichero de destino que tiene el mismo nombre sin pregunt´arselo. Tenga cuidado cuando mueva un fichero a otro directorio. Puede que haya un fichero con el mismo nombre en ese directorio, ¡que ser´a sobreescrito!

3.3.6.

Borrando ficheros y directorios

Usted tiene ahora una fea rima, que ha creado usando el orden ls. Para borrar un fichero, use el orden rm, que proviene de ”remove”,4 como se muestra aqu´ı: /home/larry/foo# rm bells sells /home/larry/foo# ls -F shells /home/larry/foo#

No nos queda nada salvo shells, pero no nos quejaremos. D´ese cuenta de que rm por defecto no le preguntar´a antes de borrar un fichero –as´ı que tenga cuidado. Una orden relacionada con rm es rmdir. Este orden borra un directorio, pero s´olo si el directorio est´a vac´ıo. Si el directorio contiene alg´un fichero o subdirectorio, rmdir protestar´a.

3.3.7.

Mirando en los ficheros

Las o´ rdenes more y cat se usan para ver el contenido de los ficheros. El orden more muestra un fichero, una pantalla completa cada vez, mientras que cat muestra el fichero completo de una vez. Para ver el contenido del fichero shells, use la orden /home/larry/foo# more shells

En caso de que est´e interesado en lo que contiene shells, es una lista de int´erpretes de o´ rdenes (shell) v´alidos en su sistema”. En la mayor´ıa de los sistemas, esto incluye /bin/sh, /bin/bash, y /bin/csh. Hablaremos acerca de estos diferentes tipos de int´erpretes de o´ rdenes m´as adelante. Mientras est´e usando more, presione Space para ver la siguiente p´agina de texto, y b para ver la p´agina anterior. Hay otras o´ rdenes disponibles en more, e´ stos son s´olo los b´asicos. Podr´a salir de more pulsando q . 4 N.

del T.: quitar

104

Caracter´ısticas Avanzadas

Salga de more y pruebe cat /etc/termcap. Probablemente el texto ir´a demasiado r´apido para que pueda leerlo. El nombre “cat” proviene de hecho de “concatenate”, que es el verdadero uso del programa. El orden cat puede usarse para ”encadenar”los contenidos de varios ficheros y guardar el resultado en otro fichero. Volveremos a esto en la secci´on 3.14.1.

3.3.8.

Obteniendo ayuda en l´ınea

Casi todos los sistemas UNIX, incluyendo GNU/Linux, facilita lo que se conoce como p´aginas del manual. Estas p´aginas contienen documentaci´on acerca de o´ rdenes del sistema, recursos, ficheros de configuraci´on, etc. La orden usada para acceder a las p´aginas del manual es man. Si est´a interesado en aprender nuevas opciones de la orden ls puede escribir /home/larry# man ls

y se mostrar´a la p´agina del manual para ls. Por desgracia, la mayor´ıa de las p´aginas de manual est´an escritas por personas que ya tienen alguna idea de lo que la orden o recurso hace. Por esta raz´on, las p´aginas del manual, a menudo, contienen s´olo los detalles t´ecnicos de la orden, sin mucha explicaci´on. De todos modos, las p´aginas del manual pueden constituir un recurso muy valioso para refrescar su memoria si se le olvida la sintaxis de una orden. Las p´aginas del manual le hablar´an adem´as de o´ rdenes que no veremos en este libro. Sugiero que pruebe man para las o´ rdenes que ya hemos visto y cuando veamos alguno nuevo. Algunos de estos o´ rdenes no tendr´an p´agina de manual, por distintas razones. Primero, las p´aginas de manual puede que no se hayan escrito todav´ıa. (El proyecto de documentaci´on de GNU/Linuxtambi´en es responsable de las p´aginas de manual de GNU/Linux. Estamos acumulando poco a poco la mayor´ıa de las p´aginas de manual disponibles para el sistema). Segundo, el orden podr´ıa ser un orden interno del shell, o un alias (que se discutir´a en la p´agina 96), el cual podr´ıa no tener una p´agina de manual propia. Un ejemplo es cd, que es una orden interna del shell. El shell por s´ı s´olo procesa la orden cd — no hay un programa separado que implemente esta orden.

3.4. Acceder a los ficheros MS-DOS

TM

Si, por cualquier retorcida y extrafalaria raz´on, quiere acceder a ficheros de MS-DOS, lo podr´a hacer f´acilmente desde GNU/Linux. La manera normal de acceder a los ficheros de MS-DOS es montar una partici´on MS-DOS o un disco flexible bajo GNU/Linux, lo cual permite acceder a los ficheros directamente a trav´es del sistema de ficheros. Por ejemplo, si tiene un disco flexible MS-DOS en /dev/fd0, la orden # mount -t msdos /dev/fd0 /mnt

lo montar´a en /mnt. Consulte la Secci´on 4.8.4 para m´as informaci´on sobre c´omo montar discos flexibles. Tambi´en puede montar una partici´on MS-DOS de su disco duro para que sea accesible desde GNU/Linux. Si tiene una partici´on MS-DOS en /dev/hda1, el comando # mount -t msdos /dev/hda1 /mnt

la monta. Aseg´urese de desmontar (umount) la partici´on cuando haya terminado de usarla. Tambi´en se puede hacer que una partici´on MS-DOS se monte autom´aticamente en el momento del arranque si incluye la entrada en /etc/fstab. Consulte la Secci´on 4.4 para m´as detalles. La siguiente l´ınea en /etc/fstab monta una partici´on MS-DOS en /dev/hda1 en el directorio /dos. /dev/hda1

/dos

msdos

defaults

Tambi´en puede montar los sistemas de ficheros VFAT usados por Windows 95 y 98:

3.5. Sumario de o´ rdenes b´asicas

105

# mount -t vfat /dev/hda1 /mnt

Esto permite acceder a los nombres largos de ficheros de Windows 95TM . Esto s´olo se aplica a particiones que realmente tengan almacenados los nombres en formato largo. No se puede montar un sistema de ficheros FAT16 normal y usarlo para obtener nombres de ficheros largos. El software Mtools tambi´en puede ser usado para acceder a ficheros MS-DOSTM . Las o´ rdenes mcd, mdir, y mcopy se comportan todas como sus equivalentes MS-DOSTM . Si instala las Mtools, deber´ıa tener p´aginas del manual disponibles para estas o´ rdenes. Acceder a ficheros MS-DOS es una cosa; ejecutar programas MS-DOS es otra. Hay un emulador de MSDOSTM en desarrollo para GNU/Linux; es f´acil de conseguir, y est´a inclu´ıdo en la mayor´ıa de las distribuciones. Tambi´en se puede conseguir en muchos sitios, incluyendo los sitios FTP para GNU/Linux listados en el Ap´endice C. El emulador de MS-DOS est´a considerado como lo suficientemente potente para hacer funcionar un buen n´umero de aplicaciones, incluyendo WordperfectTM , desde GNU/Linux. Sin embargo, GNU/Linux y MS-DOS son sistemas operativos marcadamente diferentes. La potencia de cualquier emulador de MS-DOS bajo UNIX est´a limitada. Adem´as, est´a en desarrollo un emulador de Microsoft Windows que corra bajo X Window.

3.5. Sumario de o´ rdenes b´asicas Esta secci´on introduce algunos de las m´as u´ tiles o´ rdenes b´asicas de un sistema UNIX, incluyendo aqu´ellas que son cubiertas en la secci´on anterior. F´ıjese en que las opciones suelen empezar con “-”, y en la mayor´ıa de los casos es posible especificar m´as de una opci´on con un u´ nico “-”. Por ejemplo, en vez de usar ls -l -F, se puede escribir ls -lF. En lugar de dar una lista de cada una de las opciones de una orden, ahora s´olo vamos a presentar o´ rdenes u´ tiles o importantes. De hecho, la mayor´ıa de estas o´ rdenes tienen muchas opciones que nunca usar´a. Puede usar man para echar un vistazo a las p´aginas de manual de cada orden, el cu´al lista todas las opciones disponibles. D´ese cuenta tambi´en de que muchas de estas o´ rdenes toman como argumento una lista de ficheros o directorios, indicados en esta tabla por “fichero1 . . . ficheroN ”. Por ejemplo, la orden cp toma como argumentos una lista de ficheros para copiar, seguido del fichero o directorio destino. Cuando va a copiar m´as de un fichero, el destino debe ser un directorio. cd

Cambia el directorio de trabajo actual Sintaxis: cd directorio Donde directorio es el directorio al que se quiere cambiar.(“.” hace referencia al directorio actual, “..” al directorio padre. Si no se especifica ning´un directorio le lleva, por omisi´on, a su directorio de usuario. Ejemplo: cd ../foo sube el directorio actual un nivel, y entonces, se introduce en el directorio foo.

ls

Muestra informaci´on acerca de los ficheros y directorios nombrados. Sintaxis: ls ficheros Donde ficheros consiste de los nombres de ficheros o directorios que se quieren listar. Las opciones que m´as se usan son -F (para mostrar el tipo de fichero), y -l (para mostrar una lista ”ampliada” incluyendo el tama˜no de los ficheros, propietario, permisos, etc.). Ejemplo: ls -lF /home/larry muestra los contenidos del directorio /home/larry.

cp

Copia uno o m´as ficheros a otro fichero o directorio. Sintaxis: cp ficheros destino Donde ficheros indica los ficheros que hay que copiar, y destino es el fichero o directorio destino.

106

Tutorial de GNU/Linux

Ejemplo: cp ../frog joe copia el fichero ../frog al fichero o directorio joe. mv

Mueve uno o m´as ficheros a otro directorio. Este comando hace el equivalente de una copia seguido del borrado del fichero original. Puede usar esto para renombrar ficheros, como con la orden de MS-DOS RENAME. Sintaxis: mv ficheros destino Donde ficheros indica los arhivos que hay que mover, y destino es el fichero o directorio destino. Ejemplo: mv ../frog joe mueve el fichero ../frog al fichero o directorio joe.

rm

Borra ficheros. F´ıjese en que cuando borra un fichero bajo UNIX, son irrecuperables (al contrario que con MS-DOS, donde normalmente se puede ”desborrar” el fichero). Sintaxis: rm ficheros Donde ficheros describe el nombre de los ficheros que hay que borrar. La opci´on -i le pide confirmaci´on antes de borrar el fichero. Ejemplo: rm -i /home/larry/joe /home/larry/frog borra los ficheros joe y frog en /home/larry.

mkdir

Crea nuevos directorios. Sintaxis: mkdir dirs Donde dirs son los directorios que hay que crear. Ejemplo: mkdir /home/larry/test crea el directorio test en /home/larry.

rmdir

Borra directorios vac´ıos. Cuando use rmdir, el directorio de trabajo actual no debe estar dentro del directorio que se pretende borrar. Sintaxis: rmdir dirs Donde dirs define los directorios que hay que borrar. Ejemplo: rmdir /home/larry/papers /home/larry/papers, si est´a vac´ıo.

man

borra

el

directorio

Muestra la p´agina de manual para la orden o recurso dado (es decir, no una utilidad del sistema que no sea un comando, como una funci´on de biblioteca.) Sintaxis: man command Donde command es el nombre dla orden o recurso del que se quiere conseguir ayuda. Ejemplo: man ls le da informaci´on acerca dla orden ls.

more

Muestra informaci´on del contenido de los ficheros nombrados, pantalla por pantalla. Sintaxis: more ficheros Donde ficheros indica los ficheros que se quieren mostrar. Ejemplo: more papers/history-final papers/history-final.

muestra

el

fichero

3.6. Explorando el sistema de ficheros

cat

107

Oficialmente usado para concatenar ficheros, cat tambi´en se usa para mostrar los contenidos de un fichero por pantalla. Sintaxis: cat ficheros Donde ficheros indica los ficheros que se quieren mostrar. Ejemplo: cat letters/from-mdw muestra el fichero letters/from-mdw.

echo

Muestra los argumentos que se le pasan en la pantalla. Sintaxis: echo args Donde args indica los argumentos que se quieren mostrar. Ejemplo: echo ‘‘Hello world’’ muestra la cadena “Hello world”.

grep

Muestra cada l´ınea en uno o m´as ficheros que contiene un patr´on dado. Sintaxis: grep pattern ficheros Donde pattern es un patr´on, y ficheros indica los ficheros donde se quiere buscar dicho patr´on. Ejemplo: grep loomer /etc/hosts muestra cada l´ınea en el fichero /etc/hosts que contiene el patr´on “loomer”.

3.6. Explorando el sistema de ficheros Un sistema de ficheros es la colecci´on de ficheros y la jerarqu´ıa de directorios de un sistema. Ha llegado la hora de acompa˜narle en un viaje alrededor del sistema de ficheros. Usted ya tiene habilidad y conocimiento como para entender el sistema de ficheros de GNU/Linux, y tiene un mapa de carreteras. (Ver figura en la p´agina 99). Primero, cambie al directorio ra´ız (cd /), e introduzca ls -F para que aparezca una lista con su contenido. Probablemente ver´a los siguientes directorios5 : bin, dev, etc, home, install, lib, mnt, proc, root, tmp, user, usr, y var. Ahora, veamos cada uno de estos directorios /bin

/bin es la abreviatura de “binarios”, o ejecutables, y es donde residen muchos de los programas imprescindibles del sistema. Utilice ls -F /bin para listar los ficheros que contiene. Si repasa la lista, puede que reconozca algunos comandos, como cp, ls, y mv. ´ Estos son realmente los programas que corresponden a esos comandos. Cuando utiliza la orden cp, est´a ejecutando el programa /bin/cp. Usando ls -F, ver´a que muchos (si no todos) los ficheros en /bin tienen un asterisco (”*”) a˜nadido a sus nombres de fichero. Esto indica que los ficheros son ejecutables, como se describe en p´agina 101.

/dev

Los ”ficheros” en /dev son controladores de dispositivos—acceden a los dispositivos del sistema y a recursos como discos duros, m´odems y memoria. Igual que su sistema puede leer datos de un fichero, tambi´en puede leer la entrada del rat´on accediendo a /dev/mouse. Los ficheros cuyos nombres comienzan por fd son dispositivos de discos flexibles. fd0 es la primera disquetera y fd1 es la segunda. Puede que se haya dado cuenta de que hay m´as dispositivos de disco flexible que los dos anteriores: e´ stos representan tipos espec´ıficos de discos flexibles. Por ejemplo, fd1H1440 accede a discos 3.5”de alta densidad en la disquetera 1.

5 Puede

que vea otros, y puede que no los vea todos. Cada distribuci´on de GNU/Linux es diferente en ciertos aspectos.

108

Tutorial de GNU/Linux

Lo siguiente es una lista de algunos de los ficheros de dispositivo m´as comunmente utilizados. Aunque puede que no tenga alguno de los dispositivos f´ısicos que se listan debajo, puede ocurrir que aun as´ı tenga controladores en dev para ellos. /dev/console se refiere a la consola del sistema—es decir, al monitor conectado directamente a su sistema. Los diversos dispositivos /dev/ttyS y /dev/cua se usan para acceder a los puertos serie. /dev/ttyS0 se refiere a ”COM1” bajo MS-DOS. Los dispositivos /dev/cua son dispositivos de ”llamada” , y se usan con un m´odem.6 Los dispositivos cuyos nombres comiencen por hd acceden a discos duros. /dev/hda se refiere a todo el primer disco duro, mientras que /dev/hda1 se refiere a la primera partici´on de /dev/hda. Los dispositivos cuyos nombres comienzan por sd son discos SCSI. Si tiene un disco duro SCSI, en lugar de acceder a e´ l a trav´es de /dev/hda, acceder´ıa con /dev/sda. A las cintas SCSI se accede v´ıa dispositivos st, y a los CD-ROM SCSI v´ıa dispositivos sr. Los dispositivos cuyos nombres comienzan por lp acceden a los puertos paralelos. /dev/lp0 es lo mismo que ”LPT1” en el mundo MS-DOS. /dev/null se utiliza como ”agujero negro”—los datos enviados a este dispositivo se pierden para siempre. ¿Por qu´e es u´ til esto? Bueno, si quiere evitar que la salida de un comando salga por la pantalla, puede dirigir esa salida a /dev/null. Hablaremos de ello m´as adelante. Los dispositivos cuyos nombres comienzan por /dev/tty seguidos de un n´umero se refieren a las ”consolas virtuales” de su sistema (a las que se accede pulsando Alt-F1 , Alt-F2 , y as´ı sucesivamente). /dev/tty1 se refiere a la primera consola virtual, /dev/tty2 se refiere a la segunda, y as´ı sucesivamente. Los dispositivos cuyos nombres comienzan por /dev/pty son pseudo-terminales, que se usan para proporcionar un “terminal” a las sesiones iniciadas remotamente. Por ejemplo, si su m´aquina est´a en una red, las sesiones de telnet entrantes utilizar´an uno de los dispositivos /dev/pty. /etc

/etc contiene un buen n´umero de ficheros de configuraci´on del sistema. Estos incluyen /etc/passwd (la base de datos de usuarios), /etc/rc (la macro de inicio del sistema), y as´ı sucesivamente.

/sbin

/sbin contiene binarios imprescindibles para el sistema que se usan para su administraci´on.

/home

/home contiene los directorios de inicio de los usuarios. Por ejemplo, /home/larry es el directorio de inicio del usuario ”larry”. En un sistema reci´en instalado, puede que no haya ning´un usuario en este directorio.

/lib

/lib contiene las im´agenes de las bibliotecas compartidas, que son ficheros que contienen c´odigo que comparten muchos programas. Mejor que cada programa use sus propias copias de estas rutinas compartidas, es que todas se guarden en un lugar com´un, en /lib. Esto hace que los ficheros ejecutables sean m´as peque˜nos y ahorra espacio en el sistema.

/proc

En /proc se mantiene un ”sistema de ficheros virtual”, donde los ficheros se guardan en memoria, no en disco. Estos ”ficheros” hacen referencia a los diversos procesos que corren en el sistema, y permiten obtener informaci´on sobre los procesos y programas en ejecuci´on en un instante dado. Esto se discute con m´as detalle en p´agina 119.

6 N.

del T.: En los n´ucleos modernos a partir de la serie 2.2 los dispositivos ttySx reemplazan a cuax en sus funciones

Explorando el sistema de ficheros

109

/tmp

Muchos programas guardan informaci´on temporalmente en un fichero que se borra cuando el programa finaliza su ejecuci´on. La localizaci´on est´andar de estos ficheros es /tmp.

/usr

/usr es un directorio muy importante que contiene subdirectorios que albergan algunos de los programas m´as importantes y u´ tiles usados en el sistema. Los diversos directorios descritos arriba son imprescindibles para que el sistema funcione, pero muchos de los elementos que se encuentran en /usr son opcionales. Sin embargo, son esos elementos opcionales los que hacen un sistema u´ til e interesante. Sin /usr, se tendr´ıa un sistema aburrido que s´olo soportar´ıa programas como cp y ls. /usr contiene muchos de los grandes paquetes de software y los ficheros de configuraci´on que los acompa˜nan.

/usr/X11R6

/usr/X11R6 contiene el sistema X Window, si se instal´o. El sistema X Window es un enorme y potente entorno gr´afico que proporciona un gran n´umero de utilidades gr´aficas y programas, que aparecen en ”ventanas” en la pantalla. Si usted esta familiarizado con Microsoft Windows o el entorno Macintosh, X Window le ser´a muy familiar. El directorio /usr/X11R6 contiene todos los ejecutables de X Window, ficheros de configuraci´on y ficheros de apoyo. Todo esto se cubre con m´as detalle en el Cap´ıtulo 5.5.

/usr/bin

/usr/bin es el aut´entico almac´en de software en cualquier sistema GNU/Linux, y contiene la mayor´ıa de los ejecutables de programas que no se encuentran en otros sitios, como /bin.

/usr/etc

Como /etc contiene diferentes ficheros de configuraci´on y programas del sistema, /usr/etc contiene incluso m´as que el anterior. En general, los ficheros que se encuentran en /usr/etc/ no son esenciales para el sistema, a diferencia de los que se encuentran en /etc, que s´ı lo son.

/usr/include /usr/include contiene los ficheros de cabecera para el compilador de C. En estos ficheros (muchos de los cuales terminan en .h, por ”header”) se declaran nombres de estructuras de datos, subrutinas, y constantes usadas al programar en el nivel de sistema UNIX. Si est´a familiarizado con el lenguaje de programaci´on C, aqu´ı encontrar´a ficheros de cabecera como stdio.h, en el que se declaran funciones como printf(). /usr/g++-include /usr/g++-include contiene ficheros de cabecera para el compilador de C++ (muy parecido a /usr/include). /usr/lib

/usr/lib contiene las bibliotecas ”stub” y ”estatic” equivalentes a los ficheros situados en /lib. Cuando se compila un programa, el programa se ”enlaza” con las bibliotecas situadas en /usr/lib, que ordenar´an al programa que mire en /lib cuando necesite el c´odigo real de la librer´ıa. Por a˜nadidura, otros programas diversos guardan ficheros de configuraci´on en /usr/lib.

/usr/local

/usr/local se parece mucho a /usr—contiene diversos programas y ficheros que no son imprescindibles para el sistema, pero que lo hacen divertido y excitante. En general, los programas en /usr/local son espec´ıficos de cada sistema—consecuentemente, /usr/local var´ıa mucho entre los diversos sistemas GNU/Linux.

/usr/man

Este directorio contiene las p´aginas del manual. Hay dos subdirectorios en e´ l Para cada ”secci´on” de p´aginas del manual (use la orden man man para m´as detalles). Por ejemplo, /usr/man/man1 contiene las fuentes (es decir, el original sin formatear) de la p´aginas del manual de la secci´on 1, y /usr/man/cat1 contiene las p´aginas del manual formateadas de la secci´on 1.

110

Tutorial de GNU/Linux

/usr/src

/usr/src contiene el c´odigo fuente (las instrucciones sin compilar) de diversos programas del sistema. El directorio m´as importante aqu´ı es /usr/src/linux, que contiene el c´odigo fuente del n´ucleo de GNU/Linux.

/var

En /var se mantienen directorios que a veces cambian de tama˜no o tienden a crecer. Muchos de estos directorios sol´ıan residir en /usr, pero desde que aqu´ellos que mantienen GNU/Linux intentan conservarlo relativamente sin cambios, los directorios que cambian a menudo se han pasado a /var. Algunas distribuciones de GNU/Linux guardan las bases de datos de sus paquetes de software en directorios bajo /var.

/var/log

/var/log contiene diversos ficheros de inter´es para el administrador del sistema, espec´ıficamente, los registros del sistema, que recogen errores o problemas con el sistema. Otros ficheros recogen entradas e intentos fallidos de entrar el sistema. Esto se cubrir´a en el Cap´ıtulo 4.

/var/spool

/var/spool contiene ficheros que son encolados para otro programa. Por ejemplo, si su m´aquina est´a conectada a una red, el correo entrante se guarda en /var/spool/mail hasta que se lee o se borra. Los art´ıculos de noticias entrantes o salientes est´an en /var/spool/news, y as´ı sucesivamente.

3.7. Tipos de int´erpretes de o´ rdenes Como se ha comentado antes, GNU/Linux es un sistema operativo multitarea y multiusuario. La multitarea es muy u´ til, y una vez la haya comprendido, la usar´a todo el tiempo. Dentro de poco ejecutar´a programas en segundo plano, cambiar´a entre tareas y redirigir´a programas junto a resultados complicados con una sencilla orden. Muchas de las caracter´ısticas que se ver´an en esta secci´on son caracter´ısticas suministradas por el int´erprete de o´ rdenes. Se debe tener cuidado en no confundir GNU/Linux (el actual sistema operativo) con el int´erprete de o´ rdenes. Un int´erprete de o´ rdenes es tan s´olo un interfaz con el sistema operativo que hay debajo. El int´erprete de o´ rdenes proporciona funcionalidad a˜nadida a GNU/Linux. Un int´erprete de o´ rdenes no es s´olo un int´erprete de las o´ rdenes interactivas que se teclean en el indicador de o´ rdenes, sino tambi´en un potente lenguaje de programaci´on. Permite escribir guiones (shell scripts), juntando varias o´ rdenes en un fichero. Si se conoce MS-DOS, se reconocer´a la similitud con los ficheros de procesamiento por lotes. Los guiones del int´erprete de o´ rdenes son una herramienta muy potente, que le permitir´a automatizar y extender el uso de GNU/Linux. Mire la p´agina 129 para m´as informaci´on. Hay varios tipos de int´erprete de o´ rdenes 7 en el mundo de Unix. Los m´as importantes son la “shell Bourne” y la “shell C”. La shell Bourne utiliza una sintaxis de o´ rdenes como la shell original de los primeros sistemas UNIX, como System III. El nombre de la shell Bourne en la mayor´ıa de los sistemas GNU/Linux es /bin/sh (donde sh significa “shell”. La shell C (no confundir con una concha marina) utiliza diferente sintaxis, parecida al lenguaje de programaci´on “C”, y en la mayor´ıa de los sistemas GNU/Linux se llama /bin/csh. Bajo GNU/Linux, hay disponibles muchas variaciones de int´erpretes de o´ rdenes. Las dos m´as com´unmente utilizadas son Bourne Again Shell, o “bash” (/bin/bash), y “Tcsh” (/bin/tcsh). La variante bash es una forma de shell Bourne que incluye muchas de las caracter´ısticas avanzadas de la shell C. A causa de que bash soporta un superconjunto de sintaxis de la shell Bourne, los guiones de la shell escritos en el est´andar de la shell Bourne podr´ıan trabajar con bash. Si se prefiere la sintaxis de la shell C, GNU/Linux soporta tcsh, que es una versi´on ampliada de la shell C. El tipo de shell que usted decida utilizar ser´a sobre todo una cuesti´on de fe. Algunas personas prefieren la sintaxis de la shell Bourne con las caracter´ısticas avanzadas de bash, y otros prefieren la sintaxis m´as estructurada de la shell C. Por lo que respecta a o´ rdenes normales como cp y ls, la shell que se use no importa, la sintaxis es la misma. S´olo cuando se comienzan a escribir guiones de o´ rdenes o a usar las carac7 N.

del T.: shell, escudo en ingl´es

3.8. Caracteres comod´ın

111

ter´ısticas avanzadas de la shell, comienzan a importar las diferencias entre los tipos de shell. Al discutir las caracter´ısticas de varios int´erpretes, se notar´an las diferencias entre las shells C y Bourne. Sin embargo, para los prop´ositos de este manual, la mayor´ıa de estas diferencias son m´ınimas (si realmente est´as interesado en este punto, lea las p´aginas sobre bash y tcsh).8

3.8. Caracteres comod´ın Una caracter´ıstica importante de la mayor´ıa de sistemas GNU/Linux es la posibilidad de referirse a m´as de un fichero usando caracteres especiales. Estos caracteres comod´ın le permiten referirse a todos los nombres de fichero que contengan el car´acter “n”. El comod´ın ‘*” especifica cualquier car´acter o cadena de caracteres en el nombre de un fichero. Cuando usa el car´acter “*” en un nombre de fichero, el int´erprete de o´ rdenes lo reemplaza con todas las posibles sustituciones de los nombres de fichero en el directorio al que est´e haciendo referencia. He aqu´ı un r´apido ejemplo. Suponga que Larry tiene los ficheros frog, joe, y stuff en su directorio actual. /home/larry# ls frog

joe

stuff

/home/larry#

Para especificar todos los ficheros que contienen la letra “o” en el nombre de fichero, use la instrucci´on /home/larry# ls *o* frog

joe

/home/larry#

Como puede ver, cada instancia de “*” es reemplazada con todas las sustituciones que coinciden con los nombres de fichero del directorio actual. El uso de “*” s´olo, simplemente coincide con todos los nombres de fichero, porque todos los caracteres coinciden con el comod´ın. /home/larry# ls * frog

joe

stuff

/home/larry#

Aqu´ı hay algunos ejemplos m´as: /home/larry# ls f* frog /home/larry# ls *ff stuff /home/larry# ls *f* frog

stuff

/home/larry# ls s*f stuff /home/larry#

El proceso de cambiar un “*” en una serie de nombres de fichero se llama expansi´on de comodines y lo hace el int´erprete de o´ rdenes. Esto es importante: una orden individual, como ls, nunca ve el “*” en su lista de par´ametros. El int´erprete de o´ rdenes expande el comod´ın para incluir todos los nombres de fichero que coinciden. As´ı, la orden /home/larry# ls *o*

es expandido por el int´erprete de o´ rdenes a 8 N.

del T.: Tambi´en puede leer el “Bash Scripting HOWTO”

112

Tutorial de GNU/Linux

/home/larry# ls frog joe

Una nota importante del comod´ın “*” : no ve las coincidencias de los nombres de fichero que empiezan con un u´ nico punto (“.”). Estos ficheros se tratan como ficheros ocultos — aunque no est´an realmente escondidos, no aparecen en los listados normales con ls y no son afectados por el uso del comod´ın “*”. He aqu´ı un ejemplo. Mencionamos antes que cada directorio contiene dos entradas especiales: “.” se refiere al directorio actual, y “..” , que se refiere al directorio padre. Sin embargo, cuando usa ls, estas dos entradas no se muestran. /home/larry# ls frog

joe

stuff

/home/larry#

Si usa el par´ametro -a con ls, sin embargo, puede visualizar los nombres de fichero que empiezan con “.”. Observe: /home/larry# ls -a .

..

.bash profile

.bashrc

frog

joe

stuff

/home/larry#

El listado contiene las dos entradas especiales, “.” y “..”, as´ı como otros dos ficheros .ocultos– .bash profile y .bashrc. Estos dos ficheros son ficheros de inicio usados por bash cuando larry entra en el sistema. Se describen en p´agina 131. Hay que fijarse en que cuando usa el comod´ın “*” , ninguno de los nombres de fichero que empiezan por “.” son visualizados. /home/larry# ls * frog

joe

stuff

/home/larry#

Esto es una caracter´ıstica de seguridad: si el comod´ın “*” tiene coincidencias con nombres de fichero que empiezen por “.”, tambi´en tendr´ıa coincidencia con los nombres de directorios “.” y “..”. Esto puede ser peligroso al usar ciertas o´ rdenes. Otro comod´ın es “?”. El comod´ın “?” s´olo se expande a un car´acter. As´ı, “ls ?” muestra todos los nombres de fichero de un s´olo car´acter. Y “ls termca?” mostrar´ıa “termcap” pero no “termcap.backup”. Aqu´ı hay otros ejemplos: /home/larry# ls j?e joe /home/larry# ls f??g frog /home/larry# ls ????f stuff /home/larry#

Como puede ver, los comodines le permiten especificar muchos ficheros a la vez. En el sumario de o´ rdenes que empieza en la p´agina 105, dijimos que las o´ rdenes cp y mv realmente pueden copiar o mover m´as de un fichero a la vez. Por ejemplo, /home/larry# cp /etc/s* /home/larry

copia todos los ficheros de /etc cuyo nombre empieza por “s” al directorio /home/larry. El formato de la orden cp es realmente cp ficheros destino

donde ficheros lista los nombres de fichero a copiar, y destino es el fichero o directorio destino. La orden mv tiene una sintaxis id´entica. Si est´a copiando o moviendo m´as de un fichero, el destino tiene que ser un directorio. S´olo puede copiar o mover un u´ nico fichero a otro fichero.

3.9. Fontaner´ıa GNU/Linux

113

3.9. Fontaner´ıa GNU/Linux 3.9.1.

Entrada y salida est´andar.

Muchas instrucciones de GNU/Linux toman la entrada de lo que se llama standard input y mandan su salida a standard output (a menudo abreviados como stdin y stdout). El int´erprete de o´ rdenes arregla las cosas de forma que la entrada est´andar es su teclado y la salida est´andar es la pantalla. He aqu´ı un ejemplo en el que se usa la orden cat. Normalmente, cat lee datos de todos los datos especificados por la l´ınea de o´ rdenes y manda estos datos directamente a stdout. Por tanto usando la orden /home/larry/papers# cat history-final masters-thesis

se muestra el contenido del fichero history-final seguido por masters-thesis. Sin embargo, si no especifica un nombre de fichero, cat lee datos de stdin y los devuelve a stdout. Aqu´ı hay un ejemplo: /home/larry/papers# cat Hello there. Hello there. Bye. Bye. Ctrl-D /home/larry/papers#

Cada l´ınea que escriba ser´a repetida inmediatamente por cat. Cuando se lee de la entrada est´andar, se le indica que la entrada ha ”finalizado”enviando una se˜nal EOT (end-of-text , final de texto), que se genera pulsando Ctrl-D . He aqu´ı otro ejemplo. La orden sort lee l´ıneas de texto (de nuevo, de stdin, a no ser que le especifique uno o m´as nombres de ficheros) y manda la salida ordenada a stdout. Pruebe lo siguiente. /home/larry/papers# sort bananas zanahorias manzanas Ctrl-D bananas manzanas zanahorias /home/larry/papers#

Ahora ya podemos ordenar por orden alfab´etico la lista de la compra, ¿verdad que GNU/Linux es u´ til?

3.9.2.

Redireci´on de la entrada y la salida

Ahora, digamos que quiere mandar la salida de sort a un fichero, para guardar nuestra lista de la compra en el disco. El int´erprete de o´ rdenes le permite redirecionar la salida est´andar a un nombre de fichero, usando el s´ımbolo “>”. Aqu´ı est´a c´omo funciona: /home/larry/papers# sort > listacompra bananas zanahorias manzanas Ctrl-D /home/larry/papers#

Como puede ver, el resultado de la orden sort no se visualiza, pero se guarda en el fichero llamado listacompra. Veamos este fichero:

114

Tutorial de GNU/Linux

/home/larry/papers# cat listacompra bananas manzanas zanahorias /home/larry/papers#

Ahora puede ordenar su lista de la compra ¡y guardarla tambi´en!. Pero supongamos que est´a guardando la lista de la compra original sin ordenar en el fichero items. Un modo de ordenar la informaci´on y guardarla en un fichero ser´ıa darle a sort el nombre del fichero a ser le´ıdo, en lugar de la entrada est´andar, y redireccionar la salida est´andar como lo hicimos arriba, como sigue: /home/larry/papers# sort items > listacompra /home/larry/papers# cat listacompra bananas manzanas zanahorias /home/larry/papers#

Sin embargo, hay otra forma de hacer e´ sto. No s´olo puede redireccionar la salida est´andar, tambi´en puede redireccionar la entrada est´andar, usando el s´ımbolo “ file-list /home/larry/papers# sort -r file-list notes masters-thesis history-final english-list /home/larry/papers#

Aqu´ı, usted guarda la salida de un ls en un fichero, y luego ejecuta sort -r con ese fichero. Pero esto es inc´omodo y usa un fichero temporal para guardar los datos de ls. ´ La soluci´on es la canalizaci´on9 . Esta es una posibilidad del int´erprete de o´ rdenes, que conecta una serie de o´ rdenes mediante una “tuber´ıa.” La stdout del primer programa se env´ıa a la stdin del segundo programa. En este caso, queremos enviar la stdout de ls a la stdin de sort. Se utiliza el s´ımbolo “|” para crear una tuber´ıa, como sigue: /home/larry/papers# ls | sort -r notes masters-thesis history-final english-list /home/larry/papers#

Este programa es m´as corto y m´as f´acil de teclear. He aqu´ı otro u´ til ejemplo, la orden /home/larry/papers# ls /usr/bin

muestra una lista larga de ficheros, la mayor´ıa de los cu´ales salen de la pantalla demasiado r´apido como para que lo pueda leer. As´ı que, usamos more para mostrar la lista de ficheros de /usr/bin. /home/larry/papers# ls /usr/bin | more

Ahora ya puede paginar las lista de ficheros c´omodamente. ¡Pero lo mejor no termina aqu´ı! Puede hacer canalizaciones entre m´as de dos programas juntos. El programa head es un filtro que muestra las primeras l´ıneas de un flujo entrante (en este caso, entrada de una canalizaci´on). Si quiere mostrar los u´ ltimos nombres de fichero en orden alfab´etico del directorio actual, use estas o´ rdenes: /home/larry/papers# ls | sort -r | head -1 notes /home/larry/papers#

donde head -1 muestra la primera l´ınea de entrada que recibe (en este caso, el flujo de datos ordenados inversamente de ls).

3.9.4.

Redirecci´on no destructiva de la salida

Usar “>” para redireccionar la salida a un fichero es destructivo: en otras palabras, la orden: /home/larry/papers# ls > file-list

sobreescribe el contenido del fichero file-list. Si en su lugar, redirecciona con el s´ımbolo “>>”, la salida ser´a concatenada al final del fichero, en vez de sobreescribirlo. Por ejemplo, /home/larry/papers# ls >> file-list

a˜nade la salida de la orden ls a file-list. Tenga presente que el redireccionamiento y las canalizaciones son caracter´ısticas del int´erprete de o´ rdenes —que da soporte al uso de “>”, “>>” y “|”. No tiene nada que ver con las o´ rdenes propiamente dichas. 9 N.

del T.: pipelining

116

Tutorial de GNU/Linux

3.10. Permisos de fichero 3.10.1.

Conceptos de permisos de fichero

Como normalmente hay m´as de un usuario en un sistema GNU/Linux, e´ ste proporciona un mecanismo conocido como permisos de fichero, que protege los ficheros de los usuarios de las intromisiones de otros usuarios. Este mecanismo permite que los ficheros y directorios ”sean propiedad”de un usuario en concreto. Por ejemplo, como Larry cre´o los ficheros en su directorio de usuario, Larry es el due˜no de esos ficheros y tiene acceso a ellos. GNU/Linux tambi´en permite que los ficheros sean compartidos por usuarios y grupos de usuarios. Si Larry quisiera, podr´ıa denegar el acceso a sus ficheros de forma que ning´un otro usuario tuviera acceso a ellos. Sin embargo, en la mayor´ıa de sistemas est´a predefinido el permitir a otros usuarios la lectura de sus ficheros, pero nunca modificarlos o borrarlos. Todo fichero es propiedad de un usuario particular. Sin embargo, los ficheros tambi´en son propiedad de un grupo, que es un grupo definido de usuarios del sistema. Cada usuario se coloca en, al menos, un grupo al crearse su cuenta de usuario. Sin embargo, el administrador del sistema puede conceder al usuario el acceso a m´as de un grupo. Los grupos se definen normalmente por el tipo de usuarios que accede a la m´aquina. Por ejemplo, en un sistema GNU/Linux universitario los usuarios pueden ser situados en los grupos student, staff, faculty o guest. Tambi´en hay unos pocos grupos definidos por el sistema (como bin y admin) usados por el propio sistema para controlar el acceso a los recursos — es muy raro que usarios de verdad pertenezcan a estos grupos de sistemas. Hay tres clases principales de permisos: de lectura, escritura y ejecuci´on. Estos permisos pueden ser concedidos a tres tipos de usuarios: al propietario del fichero, al grupo al que pertenece el fichero y a todos los usuarios, independientemente del grupo. Los permisos de lectura permiten a un usuario leer el contenido de un fichero, o, en el caso de un directorio, listar su contenido (usando ls). Los permisos de escritura permiten a los usuarios escribir y modificar un fichero. Para directorios, los permisos de escritura permiten al usuario crear nuevos ficheros o borrar ficheros dentro de ese directorio. Finalmente, los permisos de ejecuci´on permiten al usuario ejecutar el fichero como un programa o gui´on de int´erprete de o´ rdenes (si el fichero es un programa o un gui´on del int´erprete de o´ rdenes). En cuanto a los directorios, tener permisos de ejecuci´on permite al usuario hacer un cd al directorio en cuesti´on.

3.10.2.

Interpretando los permisos de fichero

Veamos un ejemplo de demostraci´on de los permisos de fichero. Usando la orden ls con la opci´on -l se muestra un listado de ficheros en formato largo, incluyendo los permisos de los ficheros. /home/larry/foo# ls -l stuff -rw-r--r--

1 larry

users

505 Mar 13 19:05 stuff

/home/larry/foo#

El primer campo en el listado representa los permisos del fichero. El tercer campo es el propietario del fichero (larry) y el cuarto campo es el grupo al que pertenece el fichero (users). Obviamente, el u´ ltimo campo es el nombre del fichero (stuff). Explicaremos los dem´as campos despu´es. El propietario de este fichero es larry, y pertenece al grupo users. La cadena -rw-r--r-- lista, en orden, los permisos concedidos al propietario del fichero, al grupo al que pertenece el fichero y a todos los dem´as. El primer car´acter de la cadena de permisos (“-”) representa el tipo de fichero. Un “-” significa que es un fichero normal (a diferencia de un directorio o un controlador de dispositivo). Los tres caracteres siguientes (“rw-”) representan los permisos concedidos al due˜no del fichero, larry. La “r” viene de “read” (lectura) y la “w” viene de “escritura” (escritura). As´ı, larry tiene permisos de lectura y escritura al fichero stuff.

Permisos de fichero

117

Como ya se ha dicho, adem´as de los permisos de lectura y escritura, hay tambi´en un permiso de ejecuci´on, representado por una “x”. Sin embargo, un “-” es listado aqu´ı en el lugar de una “x”, as´ı que Larry no tiene permiso de ejecuci´on de este fichero. Esto est´a bien, ya que el fichero stuff no es un programa de ning´un tipo. Naturalmente, como Larry es el propietario del fichero, se puede conceder a s´ı mismo el permiso de ejecuci´on si as´ı lo desea. (Esto ser´a descrito en breve) Los tres caracteres siguientes,(“r--”), representan los permisos del grupo sobre el fichero. El grupo al que pertenece este fichero es users. Como s´olo aparece una ‘r” aqu´ı, cualquier usuario que pertenezca al grupo users podr´a leer este fichero. Los tres u´ ltimos caracteres, tambi´en (“r--”), representan los permisos concedidos al resto de usuarios en el sistema (otros que no sean el propietario del fichero ni los del grupo users). De nuevo, como s´olo est´a presente la “r”, los otros usuarios podr´an leer el fichero, pero no escribir en e´ l o ejecutarlo. Aqu´ı hay algunos otros ejemplos de permisos: -rwxr-xr-x

El propietario del fichero puede leer, escribir, y ejecutar el fichero. Los usuarios del grupo del fichero, y todos los dem´as usuarios, pueden leer y ejecutar el fichero.

-rw-------

El due˜no del fichero puede leer y escribir en el fichero. Ning´un otro usuario puede acceder a este fichero.

-rwxrwxrwx

Todos los usuarios pueden leer, escribir y ejecutar el fichero.

3.10.3.

Dependencias

Los permisos concedidos a un fichero dependen tambi´en de los permisos del directorio en el que est´e localizado el fichero. Por ejemplo, aunque si un fichero est´a fijado a -rwxrwxrwx, otros usuarios no podr´an acceder al fichero si no tienen acceso de lectura y de ejecuci´on al directorio en el que se encuentra el fichero. Por ejemplo si Larry quisiera restringir el acceso a todos sus ficheros, podr´ıa fijar los permisos de su directorio principal de usuario /home/larry a -rwx------. De esta forma, ning´un otro usuario tendr´a acceso a su directorio, ni a todos los ficheros y directorios dentro de e´ l. Larry no tiene que preocuparse de los permisos individuales de cada fichero. En otras palabras, para que todos pueden acceder a un fichero, se debe tener acceso en ejecuci´on para todos los directorios a lo largo del camino del fichero, y acceso en lectura (o en ejecuci´on) para el propio fichero. Normalmente, los usuarios de un sistema GNU/Linux son muy abiertos con sus ficheros. Los permisos t´ıpicos que se le dan a los ficheros son -rw-r--r--, que permiten a otros usuarios leer el fichero pero nunca cambiarlo. A los directorios se les suele dar los permisos -rwxr-xr-x, que permiten a otros usuarios mirar por tus directorios, pero no crear o borrar ficheros dentro de ellos. Sin embargo, muchos usuarios desean mantener a los dem´as lejos de sus ficheros. Si se establecen los permisos de un fichero a -rw------- se conseguir´a que cualquier otro usuario no puede acceder al fichero. De la misma forma, al fijarse los permisos de un directorio como -rwx------ se mantiene a otros usuario fuera del directorio en cuesti´on.

3.10.4.

Cambio de permisos

La instrucci´on chmod se usa para establecer los permisos de un fichero. S´olo el propietario de un fichero puede cambiar los permisos de ese fichero. La sintaxis de chmod es chmod {a,u,g,o}{+,-}{r,w,x} nombre fichero

Brevemente, puede poner uno o m´as de estos: all (todos), user (usuario), group (grupo), or other (otros).Despu´es especifica si est´as a˜nadiendo derechos (+) o quit´andolos (-). Finalmente, especifica uno o m´as de estos: read (lectura), write (escritura), y execute (ejecuci´on). Algunos ejemplos de instrucciones correctas son: chmod a+r stuff Da a todos los usuarios permiso de lectura al fichero.

118

Tutorial de GNU/Linux

chmod +r stuff Lo mismo que arriba—si ninguno de a, u, g, o o se especifica, se toma a como predeterminado. chmod og-x stuff Quita el permiso de ejecuci´on de todos los usuarios menos del propietario. chmod u+rwx stuff Permite al propietario, leer, escribir y ejecutar el fichero. chmod o-rwx stuff Quita los permisos de lectura, escritura y ejecuci´on de los usuarios que no son el due˜no ni los usuarios del grupo del fichero.

3.11. Gesti´on de enlaces a ficheros Los enlaces permiten darle a un fichero m´as de un nombre. Realmente, el sistema identifica los ficheros ´ por su numero de inodo, que es el u´ nico identificador del fichero para el sistema de ficheros. Un directorio es en realidad una lista de n´umeros de inodos con sus correspondientes nombres de fichero. Cada nombre de fichero dentro de un directorio es un enlace a un inodo concreto.

3.11.1.

Enlaces r´ıgidos

El comando ln se utiliza para crear m´ultiples enlaces a un fichero. Por ejemplo, digamos que tiene un fichero llamado foo en un directorio. Usando ls -i, puede ver el n´umero de inodo de este fichero. /home/larry# ls -i foo 22192 foo /home/larry#

Aqu´ı, foo tiene un n´umero de inodo de 22192 en el sistema de ficheros. Puede crear otro enlace a foo, llamado bar, como sigue: /home/larry# ln foo bar

Con ls -i, puede comprobar que los dos ficheros tienen el mismo n´umero de inodo. /home/larry# ls -i foo bar 22192 bar

22192 foo

/home/larry#

Ahora, especificando tanto foo como bar se acceder´a al mismo fichero. Si hace cambios en foo, esos cambios aparecen tambi´en en bar. A todos los efectos, foo y bar son el mismo fichero. A este tipo de enlaces se les conoce como enlaces r´ıgidos porque directamente crean el enlace al inodo. Tenga en cuenta que puede crear enlaces r´ıgidos s´olo cuando est´en en el mismo sistema de ficheros; los enlaces simb´olicos (ver debajo) no tienen esta restricci´on. Cuando borra un fichero con rm, realmente s´olo est´a borrando uno de los enlaces a ese fichero. Si usa la orden /home/larry# rm foo

entonces s´olo el enlace llamado foo se borra, bar todav´ıa existir´a. Un fichero s´olo se borra realmente del sistema cuando no tiene enlaces. Normalmente, los ficheros tienen un u´ nico enlace, por lo que usando la orden rm se borra el fichero. Sin embargo, si un fichero tiene m´ultiples enlaces, usando rm s´olo se borrar´a un enlace simple; para borrar el fichero, deber´a borrar todos los enlaces a e´ l. El comando ls -l muestra el n´umero de enlaces a un fichero (entre otra informaci´on).

3.12. Control de tareas.

119

/home/larry# ls -l foo bar -rw-r--r--

2 root

root

12 Aug

5 16:51 bar

-rw-r--r--

2 root

root

12 Aug

5 16:50 foo

/home/larry#

La segunda columna del listado, ”2”, especifica el n´umero de enlaces al fichero. Asi resulta que un directorio no es realmente m´as que un fichero que contiene informaci´on sobre asociaciones enlaces-a-inodos. Adem´as, cada directorio contiene al menos dos enlaces r´ıgidos: ”.” (un enlace apuntando a e´ l mismo), y ”..” (un enlace apuntando a su directorio padre). El enlace ”..” del directorio ra´ız (/) simplemente vuelve a apuntar a /. (En otras palabras, el directorio padre del directorio ra´ız es e´ l mismo.)

3.11.2.

Enlaces simb´olicos.

Los enlaces simb´olicos son otro tipo de enlace, diferente al enlace r´ıgido. Un enlace simb´olico permite dar otro nombre a un fichero, pero no enlaza el fichero mediante el inodo. El comando ln -s crea un enlace simb´olico a un fichero. Por ejemplo, si utiliza la orden /home/larry# ln -s foo bar

crear´a un enlace simb´olico llamado bar que apunte al fichero foo. Si utiliza ls -i, ver´a que los dos ficheros tienen diferentes inodos. /home/larry# ls -i foo bar 22195 bar

22192 foo

/home/larry#

Sin embargo, usando ls -l, vemos que el fichero bar es un enlace simb´olico apuntando a foo. /home/larry# ls -l foo bar lrwxrwxrwx

1 root

root

3 Aug

-rw-r--r--

1 root

root

12 Aug

5 16:51 bar -> foo 5 16:50 foo

/home/larry#

Los permisos de fichero de un enlace simb´olico no se utilizan (siempre aparecen como rxwrxwrxw). En su lugar, los permisos del enlace simb´olico est´an determinados por los permisos del destino del enlace simb´olico (en nuestro ejemplo, el fichero foo). Funcionalmente, los enlaces r´ıgidos y simb´olicos son similares, pero hay diferencias. Por un lado, se pueden crear enlaces simb´olicos a ficheros que no existen, cosa que no sucede con los enlaces r´ıgidos. Los enlaces simb´olicos son procesados de manera distinta a los r´ıgidos por el n´ucleo, lo que constituye una mera diferencia t´ecnica pero que a veces puede resultar importante. Los enlaces simb´olicos son de ayuda porque identifican al fichero al que apuntan; con enlaces r´ıgidos, no hay una manera f´acil de determinar qu´e ficheros est´an enlazados al mismo inodo. Los enlaces se utilizan en muchos lugares dentro de un sistema GNU/Linux. Los enlaces simb´olicos son especialmente importantes para las bibliotecas compartidas en /lib. Consulte la p´agina 157 para m´as informaci´on.

3.12.

Control de tareas.

3.12.1.

Tareas y procesos.

El control de tareas es una caracter´ıstica que incluyen muchos int´erpretes de o´ rdenes (incluyendo bash y tcsh) que permiten controlar m´ultiples o´ rdenes o tareas ejecut´andose a la vez. Antes de ir m´as lejos, hay que hablar de los procesos. Cada vez que se ejecuta un programa, se arranca lo que se denomina un proceso. El comando ps muestra una lista de los procesos actualmente en ejecuci´on, como se ve aqu´ı:

120

Tutorial de GNU/Linux

/home/larry# ps PID TT STAT 24 3 S 161 3 R

TIME COMMAND 0:03 (bash) 0:00 ps

/home/larry#

En la primera columna aparece el PID o identificador de proceso, un n´umero u´ nico dado a cada proceso en ejecuci´on. La u´ ltima columna, COMMAND, es el nombre de la orden en ejecuci´on. Aqu´ı, estamos viendo u´ nicamente los procesos que est´a ejecutando el propio Larry. (Tambi´en hay otros muchos procesos en ejecuci´on ´ en el sistema—”ps -aux” los lista todos.) Estos son bash (el int´erprete de o´ rdenes de Larry) y la propia orden ps. Como puede ver, bash se ejecuta al mismo tiempo que la orden ps. bash hizo que se ejecutara ps cuando Larry escribi´o la orden. Cuando ps ha finalizado su ejecuci´on (despu´es de haber mostrado la tabla de procesos), el proceso bash vuelve a tomar el control, y muestra el s´ımbolo del sistema, listo para recibir otra orden. A un proceso en ejecuci´on se le llama tambi´en tarea. Los t´erminos proceso y tarea son intercambiables. Sin embargo, nos referimos a un proceso como ”tarea” cuando lo usamos en conjunci´on con control de tareas —una caracter´ıstica del int´erprete de o´ rdenes que permite conmutar entre varios procesos independientes. En muchos casos, los usuarios ejecutan una u´ nica tarea a la vez—cualquiera que fuera el u´ ltimo orden que escribieron. Sin embargo, usando el control de tareas, se puede ejecutar varias tareas a la vez y conmutar entre ellas cuando haga falta. ¿Para qu´e puede ser esto u´ til? Digamos que est´a editando un fichero de texto y quiere interrumpir la edici´on para hacer cualquier otra cosa. Mediante el control de tareas, puede suspender temporalmente el editor, volver al s´ımbolo del int´erprete de o´ rdenes y empezar a trabajar en otra cosa. Cuando haya terminado, puede volver al editor donde lo dej´o, como si no lo hubiera abandonado. Hay otros muchos usos pr´acticos del control de tareas.

3.12.2.

Primer plano y segundo plano.

Las tareas pueden estar tanto en primer plano como en segundo plano. S´olo puede haber una tarea en primer plano cada vez. La tarea que est´a en primer plano es aquella con la que se interact´ua—recibe la entrada desde el teclado y env´ıa la salida a la pantalla, a menos que, por supuesto, se haya redireccionado la entrada o la salida, como se describe en la p´agina 113). Por otro lado, las tareas que est´an en segundo plano no reciben entradas desde el terminal—en general, se ejecutan tranquilamente sin necesidad de interacci´on. Algunas tareas tardan mucho tiempo en acabar y no hacen nada interesante mientras se est´an ejecutando. Compilar programas es una de esas tareas, como tambi´en lo es comprimir un fichero grande. No hay ning´un motivo para estar sentado y aburrido mientras espera a que estas tareas acaben; simplemente ejec´utelos en segundo plano. Mientras esas tareas corren en segundo plano, existe libertad para ejecutar otros programas. Las tareas tambi´en pueden ser suspendidas. Una tarea suspendida es una tarea que est´a detenida temporalmente. Despu´es de suspender una tarea, se puede hacer que contin´ue en primer o segundo plano cuando haga falta. Reanudar una tarea suspendida no cambia el estado de la tarea de ninguna manera—la tarea contin´ua su ejecuci´on por donde se qued´o. Suspender una tarea no es lo mismo que interrumpirla. Cuando se interrumpe un proceso en ejecuci´on (pulsando la tecla de interrupci´on, que suele ser Ctrl-C )10 , se mata ese proceso, para siempre. Una vez que se mata el proceso, no hay manera de que se reanude. Hay que ejecutar la orden otra vez. Adem´as, algunos programas capturan la interrupci´on, de manera que pulsar Ctrl-C no matar´a inmediatamente al proceso. Esto permite al programa llevar a cabo cualquier operaci´on de limpieza necesaria antes de salir. De hecho, algunos programas no permitir´an de ning´un modo que se les mate mediante interrupci´on. Comencemos con un ejemplo simple. La orden yes es una orden in´util en apariencia que manda una cadena infinita de ys a la salida est´andar. (En realidad s´ı es u´ til. Si se enlaza mediante una tuber´ıa la salida de yes a otra orden que realice una serie preguntas de s´ı o no, la cadena de ys confirmar´a todas las preguntas.) Intent´emoslo: 10 Se

puede establecer la tecla de interrupci´on con la orden stty.

Control de Tareas

121

/home/larry# yes y y y y y

Las ys continuar´an ad infinitum. Puede matar el proceso pulsando la tecla de interrupci´on, que normalmente es Ctrl-C . Para que no tengamos que aguantar la molesta cadena de ys, redirijamos la salida est´andar de yes a /dev/null. Si recuerda, /dev/null act´ua como un ”agujero negro” para los datos. Cualquier dato que se le env´ıe desaparece. Es un modo muy efectivo de silenciar un programa charlat´an. /home/larry# yes > /dev/null

Ah, mucho mejor. No aparece nada, pero el s´ımbolo del int´erprete de o´ rdenes no vuelve. Esto es porque yes est´a todav´ıa en ejecuci´on, y est´a mandando esas in´utiles ys a /dev/null. Para matar otra vez, la tarea, pulse la tecla de interrupci´on. Supongamos que quiere que la orden yes contin´ue su ejecuci´on pero conservando el s´ımbolo del int´erprete de o´ rdenes para que pueda trabajar en otras cosas. Puede pasar yes a segundo plano, permitiendo su ejecuci´on, sin necesidad de interactuar. Una manera de poner un proceso en segundo plano es a˜nadir un ”&” al final de la orden. /home/larry# yes > /dev/null & [1] 164 /home/larry#

Como puede ver, el s´ımbolo del int´erprete de o´ rdenes ha vuelto. Pero ¿qu´e es este ”[1] 164”? Y ¿est´a ejecut´andose realmente la orden yes? ´ ”[1]” representa el numero de tarea para el proceso yes. El int´erprete de o´ rdenes asigna un n´umero de tarea a cada tarea en ejecuci´on. Dado que yes es la u´ nica tarea que estamos ejecutando, tiene asignado el n´umero de trabajo 1. ”164” es el identificador de proceso, o PID, el n´umero otorgado a la tarea por el sistema. Se puede usar cualquiera de los n´umeros para referirse a la tarea, como se ver´a m´as adelante. Ahora tenemos el proceso yes ejecut´andose en segundo plano, mandando continuamente una cadena de ys a /dev/null. Para comprobar el estado de este proceso, utilizamos la orden interna del int´erprete de o´ rdenes jobs. /home/larry# jobss [1]+

Running

yes >/dev/null

&

/home/larry#

Efectivamente, ah´ı est´a. Tambi´en se podr´ıa haber utilizado la orden ps tal y como se mostr´o arriba para comprobar el estado de la tarea. Para acabar con la tarea, utilice la orden kill. Esta orden toma un n´umero de tarea o un identificador de ´ proceso como argumento. Esta era la tarea n´umero 1, as´ı que usando la orden /home/larry# kill %1

se mata la tarea. Cuando se identifica la tarea con su n´umero de tarea, se debe anteponer al n´umero un car´acter de tanto por ciento (” %”). Ahora que ha matado la tarea, utilice jobs otra vez para comprobarlo: /home/larry# jobs [1]+

Terminated

/home/larry#

yes >/dev/null

122

Tutorial de GNU/Linux

Desde luego, la tarea est´a muerta, y si utiliza la orden jobs otra vez, no deber´ıa aparecer ya nada. Tambi´en se puede matar la tarea usando el n´umero de identificaci´on del proceso (PID), que aparece junto con el n´umero de tarea cuando lo arranca. En nuestro ejemplo, el identificador de proceso es 164, as´ı que la orden /home/larry# kill 164

equivale a /home/larry# kill %1

No necesita usar ” %” para hacer referencia a una tarea mediante su identificador de proceso.

3.12.3.

Parando y relanzando tareas

Hay otra manera de pasar una tarea a segundo plano. Puede arrancar la tarea normalmente (en primer plano), suspender la tarea, y reiniciarla en segundo plano. Primero, arranque el proceso yes en primer plano, como hizo antes: /home/larry# yes > /dev/null

Otra vez, como yes est´a ejecut´andose en primer plano, no deber´ıa ver el s´ımbolo del int´erprete de o´ rdenes. Ahora, mejor que interrumpir la tarea con Ctrl-C , susp´endala. Suspender una tarea no la mata: s´olo la detiene temporalmente hasta que se la reinicia de nuevo. Para hacer esto, pulse la tecla de suspensi´on, que normalmente es Ctrl-Z . /home/larry# yes > /dev/null ctrl-Z [1]+

Stopped

yes >/dev/null

/home/larry#

Mientras la tarea est´a suspendida, simplemente no est´a en ejecuci´on. No se emplea tiempo de CPU para esa tarea. Sin embargo, puede reiniciar la tarea, lo que provoca que se ejecute otra vez como si nada hubiera pasado. Continuar´a su ejecuci´on por donde se qued´o. Para reiniciar la tarea en primer plano, utilice la orden fg (de ”foreground”). /home/larry# fg yes >/dev/null

El int´erprete de o´ rdenes muestra el nombre de la orden otra vez para que est´e al tanto de qu´e tarea acaba de mandar a primer plano. Detenga la tarea otra vez con Ctrl-Z . Esta vez, use la orden bg para pasar la tarea a segundo plano. Esto provoca que la orden se ejecute como si lo hubiera arrancado con ”&”, como en la u´ ltima secci´on. /home/larry# bg [1]+ yes >/dev/null & /home/larry#

Y aqu´ı tiene su s´ımbolo del int´erprete de o´ rdenes de vuelta. jobs deber´ıa informar que yes est´a ciertamente ejecut´andose, y puede matar la tarea con kill como hicimos antes. ¿C´omo se puede detener la tarea otra vez? Utilizar Ctrl-Z no funcionar´a, porque la tarea est´a en segundo plano. La respuesta es pasar la tarea a primer plano con fg, y luego detenerla. Tal y como parece, puede utilizar fg tanto en tareas detenidas como en tareas en segundo plano. Hay una gran diferencia entre una tarea en segundo plano y una tarea detenida. Una tarea detenida no est´a en ejecuci´on —no est´a usando tiempo de CPU, y no est´a haciendo nada (la tarea todav´ıa ocupa memoria del sistema, aunque puede haber sido volcada a disco). Una tarea en segundo plano s´ı est´a ejecut´andose y usando memoria, al tiempo que completa alguna acci´on mientras usted hace otra cosa. Sin embargo, una tarea en segundo plano puede intentar mostrar texto por el terminal, lo que puede resultar molesto si est´a intentando trabajar en otra cosa. Por ejemplo, si utiliz´o la orden

3.13. Uso del editor vi

123

/home/larry# yes &

sin redirigir stdout a /dev/null, una cadena de ys estar´a apareciendo en la pantalla, sin posibilidad de interrumpirla. (No se puede usar Ctrl-C para interrumpir tareas en segundo plano.) Para detener las infinitas ys, utilice la orden fg para pasar la tarea a primer plano, y luego utilice Ctrl-C para matarla. Otra nota. Las o´ rdenes fg y bg normalmente afectan a la u´ ltima tarea detenida (indicado por un ”+” junto al n´umero de tarea cuando se usa la orden jobs). Si est´a ejecutando diversas tareas a la vez, puede pasar tareas a primer o segundo plano pasando el n´umero de tarea como argumento a fg o bg, como en /home/larry# fg %2

(para pasar la tarea n´umero 2 a primer plano), o /home/larry# bg %3

(para pasar la tarea n´umero 3 a segundo plano). No se pueden usar identificadores de proceso (PID) con fg o bg. Adem´as, usar el n´umero de tarea s´olamente, como en /home/larry# %2

equivale a /home/larry# fg %2

Recuerde que el control de tareas es una caracter´ıstica del int´erprete de o´ rdenes. Las instrucciones fg, bg y tareas son internas del int´erprete de o´ rdenes. Si por cualquier motivo usted utiliza un int´erprete de o´ rdenes que no soporte control de tareas, no espere encontrar estas instrucciones disponibles. Por a˜nadidura, hay algunos aspectos del control de tareas que var´ıan entre bash y tcsh. De hecho, algunos int´erpretes de o´ rdenes no proporcionan control de tareas en absoluto—de cualquier manera, la mayor´ıa de los int´erpretes de o´ rdenes disponibles para GNU/Linux s´ı lo proporcionan.

3.13.

Uso del editor vi

Un editor de texto es un programa que se usa para editar ficheros que se componen con texto: una carta, un programa en C o un fichero de configuraci´on del sistema. Aunque para GNU/Linux hay disponibles muchos editores de texto, el u´ nico editor que es seguro que vas a encontrar en cualquier sistema UNIX o GNU/Linux es vi — el “editor visual11 .” El editor vi no es el editor m´as f´acil de usar, ni es muy autoexplicativo. Sin embargo, como vi es tan com´un en el mundo UNIX/Linux, y algunas veces necesario, merece un tratamiento aqu´ı. La elecci´on de su editor es m´as que nada una cuesti´on de gusto y estilo personal. Muchos usuarios prefieren el barroco, autoexplicativo y potente GNU emacs —un editor con m´as posibilidades que cualquier otro programa en el mundo UNIX. Por ejemplo, GNU emacs tiene su propio dialecto interno del lenguaje de programaci´on LISP, y tiene muchas extensiones (una de las cuales es un programa de inteligencia artificial similar a Eliza). Sin embargo, como GNU emacs y sus ficheros de soporte son relativamente extensos, puede que no est´e instalado en algunos sistemas. Por otro lado,vi es peque˜no y potente pero m´as dif´ıcil de usar. De todas formas, una vez que conozca la forma de funcionamiento de vi, ser´a realmente muy f´acil. Esta secci´on presenta una introducci´on a vi —no hablaremos sobre todas sus caracter´ısticas, s´olo las necesarias para empezar. Puede consultar la p´agina del manual de vi si est´a interesado en aprender m´as sobre las caracter´ısticas del editor. Otra alternativa es leer el libro Learning the vi Editor de O’Reilly y asociados, o el Vi Tutorial de Specialized Systems Consultants (SSC) Inc. Mire el Ap´endice A para informarse.

3.13.1. Conceptos Mientras se usa vi, en cualquier instante estar´a en uno de los tres modos de operaci´on. Estos modos se llaman modo orden, modo inserci´on, y modo u´ ltima l´ınea. 11 N.

del T.: visual editor

124

Tutorial de GNU/Linux

Cuando arranca vi, est´a en el modo orden. Este modo le permite usar o´ rdenes para editar ficheros o cambiar a otros modos. Por ejemplo, tecleando “x” en modo o´ rdenes se borra el car´acter que est´a sobre el cursor. Las teclas con flechas mueven el cursor por el documento que est´a editando. Normalmente, las o´ rdenes usadas en este modo tienen uno o dos caracteres de longitud. Usted realmente inserta o edita texto en el modo inserci´on. Cuando use vi, probablemente pasar´a la mayor parte del tiempo en este modo. Se comienza el modo de inserci´on usando una orden como “i” ( de “insertar”) desde el modo o´ rdenes. Cuando est´a en el modo de inserci´on, puede insertar texto en el documento en la posici´on actual del cursor. Para terminar el modo de inserci´on y volver al modo o´ rdenes, presione Esc . El modo u´ ltima l´ınea es un modo especial usado para dar ciertas o´ rdenes extendidas a vi. Mientras teclea estas o´ rdenes, aparecen en la u´ ltima l´ınea de la pantalla (de aqu´ı su nombre). Por ejemplo, cuando teclea “:” en modo orden, salta al modo u´ ltima l´ınea y puedes usar o´ rdenes como “wq” ( para escribir el fichero y salir de vi), o “q!” (para salir de vi sin guardar los cambios). El modo u´ ltima l´ınea es usado normalmente para las o´ rdenes de vi que son m´as largas de un car´acter. En el modo u´ ltima l´ınea, escribe una orden de una s´ola l´ınea y pulsa return para ejecutarla.

3.13.2.

Comenzando con vi

La mejor forma de comprender estos conceptos es arrancar vi y editar un fichero. El ejemplo “screens” de abajo muestra s´olo unas pocas l´ıneas de texto, como si la pantalla tuviera seis l´ıneas de longitud en vez de 24. La sintaxis de vi es vi fichero

donde fichero es el nombre del fichero a editar. Arranque vi tecleando /home/larry# vi test

para editar el fichero test. Deber´ıa ser algo como: ˜ ˜ ˜ ˜ ˜ ˜ "test"[New file]

La columna de caracteres “˜” le indica que est´a al final del fichero. El representa el cursor.

3.13.3. Insertando texto El programa vi est´a ahora en modo orden. Inserte texto en el fichero pulsando i , que pone al editor en el modo inserci´on, y empiece a teclear. Now is the time for all good men to come to the aid of the party. ˜ ˜ ˜ ˜ ˜

Teclee cuantas l´ıneas quiera (pulsando return despu´es de cada una). Tal vez quiera corregir fallos con la tecla Backspace . Para finalizar el modo de inserci´on y volver al modo orden pulse Esc .

Uso del editor vi

125

En el modo orden puede usar las teclas de flecha para moverse por el fichero. (Si s´olo tiene una l´ınea de texto, el intentar usar las teclas de flechas de arriba y abajo probablemente causar´a que vi emita un pitido.) Hay diversas formas de insertar texto adem´as de la orden i. La orden a inserta texto empezando despu´es de la posici´on actual del cursor, en vez de en la posici´on actual del cursor. Por ejemplo, use la tecla de flecha izquierda para mover el cursor entre las palabras “good” y “men.” Now is the time for all good men to come to the aid of the party. ˜ ˜ ˜ ˜ ˜

Pulse a para empezar el modo inserci´on, teclee “wo”, y luego pulse Esc para volver al modo orden. Now is the time for all good women to come to the aid of the party. ˜ ˜ ˜ ˜ ˜

Para empezar insertando texto en la siguiente l´ınea, use la orden o. Pulse o e inserte una o dos l´ıneas: Now is the time for all good humans to come to the aid of the party. Afterwards, we’ll go out for pizza and beer. ˜ ˜ ˜ ˜

3.13.4.

Borrando texto

En modo orden, la orden x borra el car´acter debajo del cursor. Si pulsa x cinco veces, terminar´a con: Now is the time for all good humans to come to the aid of the party. Afterwards, we’ll go out for pizza and ˜ ˜ ˜ ˜

Ahora pulse a e inserte algo de texto, seguido por esc : Now is the time for all good humans to come to the aid of the party. Afterwards, we’ll go out for pizza and Diet co*ke. ˜ ˜ ˜ ˜

Puede borrar l´ıneas enteras usando la orden dd (esto es, pulsar d dos veces en una fila). Si el cursor est´a en la segunda l´ınea y teclea dd, ver´a:

126

Tutorial de GNU/Linux

Now is the time for all good humans to come to the aid of the party. ˜ ˜ ˜ ˜ ˜

Para borrar la palabra sobre la que est´a el cursor, use la orden dw. Coloque el cursor en la palabra “good”, y teclee dw. Now is the time for all humans to come to the aid of the party. ˜ ˜ ˜ ˜ ˜

3.13.5.

Cambiando texto

Puede reemplazar secciones de texto usando la orden R . Ponga el cursor en la primera letra de “party”, pulse R , y teclee la palabra “hungry”. Now is the time for all humans to come to the aid of the hungry. ˜ ˜ ˜ ˜ ˜

Usar R para editar texto es como las o´ rdenes i y a , pero R sobreescribe, mejor que insertar, texto. La orden r reemplaza el u´ nico car´acter debajo del cursor. Por ejemplo mueva el cursor al principio de la palabra “Now”, y presione r seguido de C, ver´a: Cow is the time for all humans to come to the aid of the hungry. ˜ ˜ ˜ ˜ ˜

La orden “˜” cambia la letra bajo el cursor de may´usculas a min´usculas y viceversa. Por ejemplo, si coloca el cursor en la “o” de “Cow” arriba y presiona repetidamente ˜ , terminar´a con: COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF THE HUNGRY. ˜ ˜ ˜ ˜ ˜

3.13.6.

´ Ordenes para mover el cursor

Ya conoce c´omo usar las teclas de las flechas para moverse por el documento. Adem´as puede usar las o´ rdenes h, j, k, y l para mover el cursor a la izquierda, abajo, arriba y derecha, respectivamente. Esto es u´ til cuando (por alguna raz´on) sus teclas de flechas no esten funcionando correctamente. La orden w mueve el cursor al principio de la siguiente palabra. La orden b lo mueve al principio de la palabra anterior.

Uso del editor vi

127

La orden 0 (la tecla cero) mueve el cursor al principio de la l´ınea actual, y la orden $ lo mueve hasta al final de la l´ınea. Cuando se est´a editando un fichero largo, querr´a moverse hacia delante o hacia detr´as por el fichero una pantalla de una vez. Presionando Ctrl-F se mueve el cursor una pantalla hacia delante, y Ctrl-B lo mueve una pantalla hacia atr´as. Para mover el cursor al final del fichero, presione G. Puede moverse tambi´en a una l´ınea arbitraria; por ejemplo, tecleando la orden 10G el cursor se mover´a a la l´ınea 10 del fichero. Para moverse al principio del fichero, use 1G. Puede emparejar o´ rdenes de movimientos con otras o´ rdenes, tales como aquellas para borrar texto. Por ejemplo, la orden d$ borra todo desde el cursor hasta el final de la l´ınea; dG borra todo desde el cursor hasta el final del fichero, y as´ı todas.

3.13.7. Guardandando ficheros y saliendo de vi Para abandonar vi sin hacer cambios al fichero, usa la orden :q!. Cuando pulsa “:”, el cursor se mueve a la u´ ltima l´ınea de la pantalla y estar´a en el modo u´ ltima l´ınea. COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF THE HUNGRY. ˜ ˜ ˜ ˜ ˜ :

En el modo u´ ltima l´ınea, hay disponibles ciertas o´ rdenes extendidas Una de ellos es q!, que sale de vi sin guardar. La orden :wq guarda el fichero y entonces sale de vi. La orden ZZ (desde el modo orden, sin el “:”) es equivalente a :wq. Si el fichero no ha sido cambiado desde la u´ ltima vez que se guard´o, simplemente sale, guardando la hora de modificaci´on del u´ ltimo cambio. Recuerde que debe presionar return despu´es de una orden introducida en el modo u´ ltima l´ınea. Para guardar el fichero sin salir de vi, use :w.

3.13.8. Edici´on de otro fichero Para editar otro fichero, use la orden :e. Por ejemplo, para parar de editar test y editar el fichero foo en su lugar, use la orden COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF THE HUNGRY. ˜ ˜ ˜ ˜ ˜ :e foo

Si usa :e sin guardar el fichero primero, obtendr´as el mensaje de error No write since last change (":edit!.overrides)

que significa que vi no quiere editar otro fichero hasta que guarde el primero. En este punto, puede usar :w para guardar el fichero original, y entonces usar :e, o puede usar la orden COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF THE HUNGRY. ˜ ˜ ˜ ˜ ˜ :e! foo

128

Tutorial de GNU/Linux

La orden “!” le dice a vi lo que realmente quiere hacer usted — editar el nuevo fichero sin salvar los cambios del primero.

3.13.9.

Inclusi´on de otros ficheros

Si usa la orden :r, puede incluir los contenidos de otro fichero en el fichero actual. Por ejemplo, la orden :r foo.txt

inserta los contenidos del fichero foo.txt en el texto en la posici´on del cursor.

3.13.10.

Ejecuci´on de o´ rdenes del int´erprete

Tambi´en puede ejecutar o´ rdenes del int´erprete de comandos dentro de vi. La orden :r! funciona como :r, pero en lugar de leer un fichero, inserta la salida de una determinada orden en la posici´on actual del cursor. Por ejemplo, si usa la orden :r! ls -F

terminar´a con COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF THE HUNGRY. letters/ misc/ papers/ ˜ ˜

Tambi´en puede salir a un int´erprete de comandos desde vi, en otras palabras, ejecutar una orden desde dentro de vi, y volver al editor cuando haya terminado. Por ejemplo, si usa la orden :! ls -F

la orden ls -F ser´a ejecutada y los resultados se mostrar´an en la pantalla, pero no insertados en el fichero que est´a editando. Si usa la orden :shell

vi empieza una instancia (copia) de la shell, permitiendole temporalmente poner vi “en suspenso” mientras ejecuta otras o´ rdenes. S´olo tiene que salir de la shell (usando la orden exit ) para volver a vi.

3.13.11.

Obtenci´on de ayuda

El editor vi no proporciona demasiada ayuda interactiva (la mayor´ıa de los programas GNU/Linux no lo hacen), pero siempre puede leer las p´aginas del manual de vi. Como vi es un “front-end” visual del editor ex; que maneja muchas de las o´ rdenes del modo u´ ltima l´ınea de vi Adem´as de leer la p´agina del manual de vi, mire tambi´en la de ex.

3.14.

Personalizando su entorno

El int´erprete de o´ rdenes proporciona muchos mecanismos para personalizar su entorno de trabajo. Como hemos mencionado antes, el int´erprete de o´ rdenes es m´as que un mero int´erprete—es tambi´en un poderoso lenguaje de programaci´on. Aunque escribir guiones del int´erprete de o´ rdenes es una tarea extensa, nos gustar´ıa introducirle algunas formas en las que puede simplificar su trabajo en un sistema UNIX mediante el uso de caracter´ısticas avanzadas del int´erprete. Como mencionamos antes, diferentes int´erpretes usan diferentes sintaxis para la ejecuci´on de guiones. Por ejemplo, Tcsh usa una notaci´on al estilo C, mientras que Bourne usa otro tipo de sintaxis. En esta secci´on no nos fijaremos en las diferencias entre los dos y supondremos que los guiones se escriben con la sintaxis del int´erprete de o´ rdenes Bourne.

3.14. Personalizando su entorno

3.14.1.

129

Guiones del int´erprete de o´ rdenes

Supongamos que usa una serie de o´ rdenes a menudo, y le gustar´ıa acortar el tiempo requerido para teclear agrup´andolos en una u´ nica “orden”. Por ejemplo, las o´ rdenes /home/larry# cat cap´ ıtulo1 cap´ ıtulo2 capitulo3 > libro /home/larry# wc -l libro /home/larry# lp libro

concatenar´an los ficheros cap´ ıtulo1, cap´ ıtulo2 y cap´ ıtulo3 y guardar´a el resultado en el fichero libro. Entonces, se mostrar´a el recuento del n´umero de l´ıneas del fichero libro y finalmente se imprimir´a con la intrucci´on lp. En lugar de teclear todas esas o´ rdenes, podr´ıa agruparlas en un gui´on del int´erprete de o´ rdenes. Describimos los guiones brevemente en la Secci´on 3.14.1. El gui´on usado para ejecutar todas las o´ rdenes ser´ıa #!/bin/sh # Un gui´ on para crear e imprimir el libro cat cap´ ıtulo1 cap´ ıtulo2 cap´ ıtulo3 > libro wc -l libro lp libro

Si el gui´on se salva en el fichero hacerlibro, podr´ıa simplemente usar la orden /home/larry# hacerlibro

para ejecutar todas las o´ rdenes del gui´on. Los guiones son simples ficheros de texto; puede crearlos con un editor como emacs o vi 12 . Veamos este gui´on. La primera l´ınea “#!/bin/sh”, identifica el fichero como un gui´on y le dice al int´erprete de o´ rdenes c´omo ejecutarlo. Instruye al int´erprete a pasarle el gui´on a /bin/sh para la ejecuci´on, donde /bin/sh es el programa del int´erprete. ¿Por qu´e es esto importante? En la mayor´ıa de los sistemas UNIX /bin/sh es un int´erprete de o´ rdenes Bourne, como Bash. Forzando al gui´on a ejecutarse usando /bin/sh nos estamos asegurando de que ser´a interpretado seg´un la sintaxis de Bourne. Esto har´a que el gui´on se ejecute usando la sintaxis Bourne aunque est´e usando Tcsh como int´erprete de o´ rdenes. La segunda l´ınea es un comentario. Estos comienzan con el car´acter “#” y contin´uan hasta el final de la l´ınea. Los comentarios son ignorados por el int´erprete de o´ rdenes—son habitualmente usados para identificar el gui´on con el programador. El resto de las l´ıneas del gui´on son simplemente o´ rdenes como las que podr´ıa teclear directamente. En efecto, el int´erprete de o´ rdenes lee cada l´ınea del gui´on y ejecuta la l´ınea como si hubiese sido tecleada en la l´ınea de o´ rdenes. Los permisos son importantes para los guiones. Si crea un gui´on, debe asegurarse de que tiene permisos de ejecuci´on para poder ejecutarlo13 . La orden /home/larry# chmod u+x hacerlibro

puede usarse para dar permisos de ejecuci´on al gui´on hacerlibro.

3.14.2.

Variables del int´erprete de o´ rdenes y el entorno

El int´erprete de o´ rdenes le permite definir variables como la mayor´ıa de los lenguajes de programaci´on. Una variable es simplemente un trozo de datos al que se le da un nombre. N´otese que Tcsh, as´ı como otros int´erpretes del estilo C, usan un mecanismo diferente para inicializar variables del descrito aqu´ı. Esta discusi´on supondr´a el uso del int´erprete Bourne, como es Bash (el cual probablemente est´a usando). Vea la p´agina de manual de Tcsh para m´as detalles. Cuando asigna un valor a una variable (usando el operador “=”), puede acceder a la variable a˜nadiendo a su nombre “$”, como se ve a continuaci´on. 12 vi

se describe en la Secci´on 3.13. crea ficheros de texto, los permisos por omisi´on usualmente no incluyen los de ejecuci´on.

13 Cuando

130

Tutorial de GNU/Linux

/home/larry# foo=‘‘hola all´ ı’’

A la variable foo se le da el valor “hola all´ ı”. Podemos ahora hacer referencia a ese valor a trav´es del nombre de la variable con el prefijo “$”. La orden /home/larry# echo $foo hola all´ ı /home/larry#

produce el mismo resultado que /home/larry# echo ‘‘hola all´ ı’’ hola all´ ı /home/larry#

Estas variables son internas al int´erprete. Esto significa que s´olo e´ ste podr´a acceder a las variables. Esto puede ser u´ til en los guiones; si necesita mantener, por ejemplo, el nombre de un fichero, puede almacenarlo en una variable. Usando la orden set mostrar´a una lista de todas las variables definidas en el int´erprete de o´ rdenes. De cualquier modo, el int´erprete de o´ rdenes permite exportar variables al entorno. El entorno es el conjunto de variables a las cu´ales tienen acceso todas las o´ rdenes que ejecute. Una vez que se define una variable en el int´erprete, exportarla hace que se convierta tambi´en en parte del entorno. La orden export se usa para exportar variables al entorno. De nuevo, hemos de diferenciar entre Bash y Tcsh. Si est´a usando Tcsh, deber´a usar una sintaxis diferente para las variables de entorno (se usa la orden setenv). Dir´ıjase a la p´agina de manual de Tcsh para m´as informaci´on. El entorno es muy importante en un sistema UNIX. Le permite configurar ciertas o´ rdenes simplemente inicializando variables con las o´ rdenes ya conocidas. Veamos un ejemplo r´apido. La variable de entorno PAGER se usa por la orden man. Especifica la orden que se usar´a para mostrar las p´aginas del manual una a una. Si inicializa PAGER con el nombre del programa, se usar´a e´ ste para mostrar las p´aginas de manual en lugar de more (el cu´al es usado por omisi´on). Inicialice PAGER a “cat”. Esto har´a que la salida de man sea mostrada de una vez, sin pausas entre p´aginas. /home/larry# PAGER=‘‘cat’’

Ahora exportamos PAGER al entorno. /home/larry# export PAGER

Pruebe la orden man ls. La p´agina deber´ıa volar por su pantalla sin detenerse entre p´aginas. Ahora, si inicializa PAGER a “more”, se usar´a la orden more para mostrar las p´aginas del manual. /home/larry# PAGER=‘‘more’’

N´otese que no hemos de usar la orden export despu´es del cambio de la variable PAGER. Solo hemos de exportar las variables una vez; cualquier cambio efectuado con posterioridad ser´a autom´aticamente propagado al entorno. Las p´aginas de manual para una orden en particular, le informar´an acerca del uso de alguna variable de entorno por parte de esa orden; por ejemplo, la p´agina de manual de man explica que PAGER es usado para especificar la orden de paginado. Algunas o´ rdenes comparten variables de entorno; por ejemplo, muchas o´ rdenes usan la variable EDITOR para especificar el editor por omisi´on que se usar´a si es necesario. El entorno es tambi´en usado para guardar informaci´on importante acerca de la sesi´on en curso. Un ejemplo es la variable de entorno HOME, que contiene el nombre del directorio de origen del usuario. /home/larry/papers# echo $HOME /home/larry

3.14. Personalizando su entorno

131

Otra variable de entorno interesante es PS1, la cu´al define el indicador (“prompt”) principal que usar´a el int´erprete. Por ejemplo, /home/larry# PS1=‘‘Su instrucci´ on, por favor: ’’ Su instrucci´ on, por favor:

Para volver a inicializar el “prompt” a su valor habitual (el cual contiene el directorio actual seguido por el s´ımbolo “#”), Su instrucci´ on , por favor: PS1=‘‘-w# -’’ /home/larry#

La p´agina de manual de bash describe la sintaxis usada para inicializar el indicador. 3.14.2.1.

La variable de entorno PATH

Cuando usa la orden ls ¿c´omo encuentra el int´erprete el programa ejecutable ls?. De hecho, ls se encuentra en /bin/ls en la mayor´ıa de los sistemas. El int´erprete usa la variable de entorno PATH (“camino”) para localizar los ficheros ejecutables u o´ rdenes que tecleamos. Por ejemplo, su variable PATH puede inicializarse a: /bin:/usr/bin:/usr/local/bin:.

Esto es una lista de directorios en los que el int´erprete debe buscar. Cada directorio est´a separado por un “:”. Cuando usa la orden ls, el int´erprete primero busca /bin/ls, luego /usr/bin/ls y as´ı hasta que lo localice o acabe la lista. N´otese que PATH no interviene en la localizaci´on de ficheros regulares. Por ejemplo, si usa la orden /home/larry# cp foo bar

El int´erprete no usar´a PATH para localizar los ficheros foo y bar—esos nombres se suponen completos. S´olo se usar´a PATH para localizar el programa ejecutable cp. ´ Esto le permitir´a ahorrar mucho tiempo; significa que no deber´a recordar o´ onde se guardans las instrucciones. En muchos sistemas los ficheros ejecutables se dispersan por muchos sitios, como /usr/bin, /bin o /usr/local/bin. En lugar de dar el nombre completo con el camino (como /usr/bin/cp), solo hemos de inicializar PATH con la lista de los directorios donde queremos que se busquen autom´aticamente. N´otese que PATH contiene “.”, el cual es el directorio actual de trabajo. Esto le permite crear guiones o programas y ejecutarlos desde su directorio de trabajo actual sin tener que especificarlo directamente (como en ./makebool). Si un directorio no est´a en su PATH, entonces el int´erprete no buscar´a en e´ l o´ rdenes para ejecutar—´esto incluye al directorio de trabajo.

3.14.3.

Guiones de inicializaci´on del int´erprete

A parte de los guiones que puede crear, hay un n´umero de e´ stos que usa el int´erprete de o´ rdenes para ciertos prop´ositos. Los m´as importantes son sus guiones de inicializaci´on, guiones autom´aticamente ejecutados por el int´erprete al abrir una sesi´on. Los guiones de inicializaci´on son eso, simples guiones como los descritos arriba. De cualquier modo, son muy u´ tiles para la inicializaci´on de su entorno al ejecutarse autom´aticamente. Por ejemplo, si siempre usa la orden mail para comprobar si tiene correo al iniciar una sesi´on, incluya en su gui´on de inicializaci´on dicha orden y ser´a ejecutada autom´aticamente. Tanto Bash como Tcsh distinguen entre un int´erprete de presentaci´on y otras invocaciones del int´erprete. Un int´erprete de presentaci´on es el que se ejecuta en el momento de la presentaci´on al sistema (login). Es el u´ nico que usar´a. De cualquier modo, si ejecuta una opci´on de salir a un int´erprete desde alg´un programa, como vi, inicializa otra instancia del int´erprete de o´ rdenes, el cual no es su int´erprete de presentaci´on. Adem´as, en cualquier momento que ejecuta un gui´on, autom´aticamente est´a arrancando otro int´erprete que va a ser el encargado de ejecutar el gui´on.

132

Tutorial de GNU/Linux

Los ficheros de inicializaci´on usados por Bash son: /etc/profile (configurado por el administrador del sistema, y ejecutado por todos los usuarios de Bash en el momento de la presentaci´on al sistema), $HOME/.bash profile (ejecutado por una sesi´on de presentaci´on Bash) y $HOME/.bashrc (ejecutadas por todas las sesiones Bash que no son de presentaci´on). Si .bash profile no est´a presente, se usa en su lugar .profile Tcsh usa los siguientes guiones de inicializaci´on: /etc/csh.login (ejecutado por todos los usuarios de Tcsh en el momento de la presentaci´on al sistema), $HOME/.tcshrc (ejecutado en la presentaci´on al sistema por todas las instancias nuevas de Tcsh) y $HOME/.login (ejecutado en la presentaci´on al sistema, seguido .tcshrc). Si .tcshrc no est´a presente, .cshrc se usa en su lugar. Para entender completamente la funci´on de estos ficheros, necesitar´a aprender m´as acerca del int´erprete de o´ rdenes. La programaci´on de guiones es una materia complicada, m´as all´a del alcance de este libro. Lea las p´aginas de manual de bash y/o tcsh para aprender m´as sobre la configuraci´on de su entorno.

3.15.

¿Quiere seguir por su cuenta?

Este cap´ıtulo deber´ıa proporcionarle informaci´on suficiente para un uso b´asico de GNU/Linux. Las p´aginas del manual son herramientas indispensables para aprender GNU/Linux. Pueden parecer confusas al principio, pero hay abundante informaci´on si indaga bajo la superficie. Tambi´en le sugerimos que lea un libro sobre GNU/Linux en general. GNU/Linux tiene otras caracter´ısticas adem´as de las que aparecen a primera vista. Desafortunadamente, muchas est´an m´as all´a del alcance de este libro. Otros libros sobre GNU/Linux recomendados est´an listados en el Ap´endice A

Cap´ıtulo 4

Administraci´on del Sistema Este cap´ıtulo cubre las cosas m´as importantes que se necesitan saber acerca de la administraci´on del sistema para comenzar a usarlo sin problemas. Para que el cap´ıtulo tenga un tama˜no razonable, cubre s´olo lo b´asico y omite muchos detalles importantes. El libro Linux System Administrator’s Guide, de Lars Wirzenius (ver Ap´endice A) proporciona m´as detalles sobre la administraci´on del sistema. Adem´as ayudar´a a entender mejor c´omo trabajan y cuelgan las cosas entre s´ı.

4.1. La cuenta root GNU/Linux diferencia entre varios usuarios. Lo que puede hacer cada uno con respecto a los dem´as est´a regulado. Los permisos de ficheros est´an regulados de manera que los usuarios normales no puedan borrar o modificar ficheros de directorios como /bin y /usr/bin. Muchos usuarios protegen sus ficheros con los permisos apropiados, para que otros usuarios no tengan acceso a ellos (uno no querr´ıa que nadie leyese sus cartas de amor). Cada usuario tiene una cuenta que incluye su nombre de usuario y su directorio “home”. Adem´as, hay cuentas especiales definidas por el sistema que tienen privilegios especiales. La m´as importante de todas es la cuenta root, que usa el administrador del sistema. Por convenio, el administrador del sistema es el usuario root. ´ o ella puede leer, modificar o borrar cualquier fichero del sistema, No hay restricciones para root. El cambiar los permisos y la propiedad de los ficheros y ejecutar programas especiales como los que particionan un disco duro o crean sistemas de ficheros. La idea fundamental es que es una persona que vigila los registros del sistema y que realiza tareas que no pueden ejecutar los usuarios normales. Puesto que root puede hacer cualquier cosa, es f´acil cometer errores con consecuencias catastr´oficas. Si un usuario normal tratase inadvertidamente de borrar todos los ficheros de /etc, el sistema no se lo permitir´ıa. Sin embargo, si lo intentase root el sistema no se lo impedir´ıa. Es muy f´acil destrozar un sistema GNU/Linux usando root. La mejor manera de prevenir accidentes es: Pens´arselo dos veces antes de pulsar Enter para una orden no reversible. Si se va a borrar un directorio, revisar la orden completa para estar seguro de que es correcta. Usar un prompt diferente para la cuenta root. En los ficheros .bashrc o .login de la cuenta root deber´ıa especificarse el prompt con algo diferente al del resto de usuarios. Mucha gente reserva el car´acter “#” para el prompt de root y usa “$” para el del resto de usuarios. Entrar como root s´olo cuando sea estrictamente necesario. Cuando se hayan finalizado las tareas como administrador del sistema, salir de dicha cuenta. Cuanto menos se utilice dicha cuenta, menos da˜no podr´a provocarle al sistema. Uno se puede imaginar la cuenta root como un sombrero m´agico que le da inmensos poderes y con el que se puede, simplemente moviendo las manos, destruir ciudades enteras. Es una buena imagen para ser cuidadoso y saber lo que se tiene entre manos. Puesto que es tan f´acil destruir cosas con sus manos, no es una buena idea ponerse el sombrero cuando no hace falta, a pesar de la magn´ıfica sensaci´on. 133

134

Administraci´on del Sistema

Comentaremos con m´as detalle las responsabilidades del administrador del sistema a partir de la p´agina 142.

4.2. Iniciando el Sistema Hay varias maneras de arrancar el sistema, bien sea desde disquete o bien desde el disco duro.

4.2.1.

Utilizando un disquete de arranque

Mucha gente arranca Linux utilizando un disquete de inicio que contiene una copia del n´ucleo de Linux. Este n´ucleo tiene la partici´on ra´ız de Linux codificada en e´ l, para que sepa donde buscar en el disco duro el sistema de ficheros ra´ız. (El comando rdev puede ser utilizado para poner la partici´on ra´ız en la imagen del n´ucleo; ver m´as adelante.) Por ejemplo, este es el tipo de disquete creado por Slackware durante la instalaci´on. Para crear un disquete de arranque propio, hay que localizar en primer lugar la imagen del n´ucleo en su disco duro. Debe estar en el fichero /Image o /etc/Image. Algunas instalaciones utilizan el fichero /vmlinux para el n´ucleo. En su lugar, puede que haya un n´ucleo comprimido. Un n´ucleo comprimido se descomprime a s´ı mismo en memoria en tiempo de arranque, y utiliza mucho menos espacio en el disco duro. Si se tiene un n´ucleo comprimido, puede encontrarse en el fichero /zImage o /etc/zImage. Algunas instalaciones utilizan el fichero /vmlinuz para el n´ucleo comprimido. Una vez que se sabe donde est´a el n´ucleo, hay que poner el nombre de la partici´on ra´ız de un dispositivo ra´ız en la imagen del n´ucleo, utilizando la orden rdev. El formato de este comando es rdev nombre-de-n´ucleo dispositivo-ra´ız

donde nombre-del-n´ucleo es el nombre de la imagen del n´ucleo, y dispositivo-ra´ız es el nombre de la partici´on ra´ız de Linux. Por ejemplo, para hacer que el dispositivo ra´ız en el n´ucleo /etc/Image sea /dev/hda2, utilice la orden # rdev /etc/Image /dev/hda2

rdev tambi´en se pueden poner otras opciones en el n´ucleo, como puede ser el modo SVGA por defecto a utilizar en tiempo de arranque. Utilizando rdev -h se obtiene un mensaje de ayuda. Una vez puesto el dispositivo ra´ız, tan s´olo hay que copiar la imagen del n´ucleo al disquete. Siempre que se copia datos a un disquete, es una buena idea formatear previamente el disquete, usando el FORMAT.COM en MS-DOS o el programa fdformat de Linux. Esto establece la informaci´on de pista y sector en el disquete con la que puede detectarse como de alta o baja densidad. El formateo de disquetes y las controladoras de los mismos se discuten m´as tarde en la p´agina 150. Para copiar el n´ucleo en el fichero /etc/Image al disquete en /dev/fd0, se puede utilizar la orden: # cp /etc/Image /dev/fd0

Este disquete debe arrancar ahora Linux.

4.2.2.

Utilizando LILO

Otro m´etodo de arranque es utilizar LILO, un programa que reside en el sector de arranque del disco duro. Este programa se ejecuta cuando el sistema se inicia desde el disco duro, y puede arrancar autom´aticamente Linux desde una imagen de n´ucleo almacenada en el propio disco duro. LILO puede utilizarse tambi´en como una primera etapa de carga de varios sistemas operativos, permitiendo seleccionar en tiempo de arranque qu´e sistema operativo (como Linux o MS-DOS) arrancar. Cuando se arranca utilizando LILO, se inicia el sistema operativo por defecto, a menos que pulse shift durante la secuencia de arranque o se especifique el el fichero /etc/lilo.conf. En cualquiera de estos casos, se presentar´a un indicador de arranque, donde debe teclear el nombre del sistema operativo a arrancar (como puede ser “linux” o “msdos”). Si se pulsa la tecla tab en el indicador de arranque, se le presentar´a una lista de los sistemas operativos disponibles.

Iniciando el Sistema

135

La forma m´as simple de instalar LILO es editar el fichero de configuraci´on, /etc/lilo.conf, y ejecutar la instrucci´on # /sbin/lilo

El fichero de configuraci´on de LILO contiene un p´arrafo para cada sistema operativo que se pueda querer arrancar. La mejor forma de mostrarlo es con un ejemplo de un fichero de configuraci´on LILO. El ejemplo siguiente es para un sistema que tiene una partici´on ra´ız Linux en /dev/hda1 y una partici´on MS-DOS en /dev/hda2. # Le indicamos a LILO que modifique el registro de arranque de # /dev/hda (el primer disco duro no-SCSI). Si se quiere arrancar desde # una unidad distinta de /dev/hda, se debe cambiar la siguiente l´ ınea boot = /dev/hda # Modo de v´ ıdeo vga = normal # Tiempo de respuesta en milisegundos. Tiempo del que se dispone para # pulsar ‘‘SHIFT’’. delay = 60 # Nombre del cargador de arranque. No hay raz´ on para cambiarlo, a menos # que se este haciendo una modificaci´ on seria del LILO install = /boot/boot.b # Esto fuerza a LILO a solicitar el Sistema Operativo con el que se va # a arrancar. Si se pulsa ’TAB’ se presentan las distintas opciones, # de acuerdo con los ’label=’ siguientes. indicador de ´ ordenes # Dejemos a LILO efectuar alguna optimizaci´ on. compact # Parrafo para la partici´ on ra´ ız de Linux en /dev/hda1. image = /etc/Image # Ubicaci´ on del n´ ucleo label = linux # Nombre del SO (para el men´ u de arranque de LILO) root = /dev/hda1 # Ubicaci´ on de la partici´ on ra´ ız vga = ask # Indicar al n´ ucleo que pregunte por modos SVGA # en tiempo de arranque # P´ arrafo para la partici´ on MSDOS en /dev/hda2. other = /dev/hda2 # Ubicaci´ on de la partici´ on table = /dev/hda # Ubicaci´ on de la tabla de partici´ on para /dev/hda2 label = msdos # Nombre del SO (para el men´ u de arranque)

El primer p´arrafo de sistema operativo en el men´u del fichero de configuraci´on ser´a el sistema operativo que arrancar´a LILO por defecto. Se puede seleccionar otro sistema operativo en el indicador de arranque de LILO, tal y como se indic´o anteriormente. El instalador de Microsoft Windows ’95 sobreescribe el sector de arranque. Si va a instalar Windows ’95 en su sistema despu´es de instalar LILO, debe asegurarse de crear un disquete de inicio antes, ver 4.2). Con el disquete de inicio, puede iniciar Linux y reinstalar LILO tras la instalaci´on Windows ’95. Simplemente escribiendo como “root” la orden /sbin/lilo. Las particiones con Windows ’95 se pueden configurar de forma totalmente equivalente a la vista anteriormente con particiones de MS-DOS. Las FAQ (Preguntas frecuentemente formuladas) (ver Ap´endice A) dan m´as informaci´on sobre LILO, incluyendo c´omo utilizar LILO con el “OS/2’s Boot Manager”.

136

Administraci´on del Sistema

4.3. Parada del sistema Cerrar un sistema GNU/Linuxtiene algo de truco. Hay que recordar que nunca se debe cortar la corriente o pulsar el bot´on de apagado mientras el sistema est´e ejecut´andose. El n´ucleo sigue la pista de la entrada/salida a disco en “buffers” de memoria. Si se reinicializa el sistema sin darle al n´ucleo la oportunidad de escribir sus “buffers” a disco, puede corromper sus sistemas de ficheros. En tiempo de cierre se toman tambi´en otras precauciones. Todos los procesos reciben una se˜nal que les permite morir airosamente (escribiendo y cerrando todos los ficheros y ese tipo de cosas). Los sistemas de ficheros se desmontan por seguridad. Si se desea, el sistema tambi´en puede alertar a los usuarios de que se est´a cerrando y darles la posibilidad de desconectarse. La forma m´as simple de cerrar el sistema es con la orden shutdown. El formato es shutdown tiempo mensaje-de-aviso

El argumento tiempo es el momento de cierre del sistema (en el formato hh:mm:ss), y mensaje-de-aviso es un mensaje mostrado en todos los terminales de usuario antes de cerrar. Alternativamente, se puede especificar el par´ametro tiempo como “now”, para cerrar inmediatamente. Se le puede suministrar la opci´on -r a shutdown para reinicializar el sistema tras el cierre. Por ejemplo, para cerrar el sistema a las 8:00pm, se puede utilizar la siguiente orden # shutdown -r 20:00

La orden halt puede utilizarse para forzar un cierre inmediato, sin ning´un mensaje de aviso ni periodo de gracia. halt se utiliza si se es el u´ nico usuario del sistema y se quiere cerrar el sistema y apagarlo. No apagar o reinicializar el sistema hasta que se vea el mensaje: The system is halted

Es muy importante que cierre el sistema “limpiamente” utilizando la orden shutdown o el halt. En algunos sistemas, se reconocer´a el pulsar ctrl-alt-del , que causar´a un shutdown; en otros sistemas, sin embargo, el utilizar el “Apret´on de Cuello de Vulcano” reinicializar´a el sistema inmediatamente y puede causar un desastre.

4.3.1.

El fichero /etc/inittab

Despu´es de que GNU/Linux arranque y el n´ucleo monte el sistema de ficheros de root, el primer programa que ejecuta el sistema es init. Este programa es el encargado de lanzar los scripts de inicializaci´on del sistema y de modificar el sistema operativo de su estado inicial de arranque al estado est´andar multiusuario. Tambi´en define los int´erpretes de o´ rdenes login: de todos los dispositivos tty del sistema y especifica otras caracter´ısticas del arranque y apagado. Tras el arranque, init permanece latente en segundo plano, “monitoreando” y si fuera necesario alterando la ejecuci´on del sistema. Hay muchos detalles que deben comentarse del programa init. Todas las tareas que realiza se definen en el fichero /etc/inittab. Un ejemplo de dicho fichero se muestra a continuaci´on. Modificar el fichero /etc/inittab de forma incorrecta, puede impedirle registrarse en el sistema. Por ello, cuando se modifique dicho fichero, hay que guardar una copia del fichero original, adem´as de tener a mano el disquete de inicio, para el caso en que se cometiera alg´un error. # # # # # # # # # #

inittab

Este fichero describe como el proceso INIT debe ajustar el sistema en ciertos niveles de ejecuci´ on.

Version:

@(#)inittab

2.04 2.10

17/05/93 02/10/95

MvS PV

Author: Miquel van Smoorenburg, Modified by: Patrick J. Volkerding, Minor modifications by:

El fichero /etc/inittab

137

# Robert Kiesling, # # Nivel de ejecuci´ on asumido. id:3:initdefault: # Iniciaci´ on del sistema (se ejecuta al arrancar el sistema). si:S:sysinit:/etc/rc.d/rc.S # Script para ejecutarse cuando el sistema vaya a un usuario # (nivel de ejecuci´ on 1). su:1S:wait:/etc/rc.d/rc.K # Script para ejecutarse cuando el sistema vaya a multiusuario. rc:23456:wait:/etc/rc.d/rc.M # Qu´ e hacer cuando se pulse Ctrl-Alt-Del ca::ctrlaltdel:/sbin/shutdown -t5 -rfn now # El nivel de ejecuci´ on 0 para el sistema. l0:0:wait:/etc/rc.d/rc.0 # El nivel de ejecuci´ on 6 reinicia el sistema. l6:6:wait:/etc/rc.d/rc.6 # Qu´ e hacer cuando se va el suministro el´ ectrico (bajar al nivel de # ejecuci´ on de un usuario). pf::powerfail:/sbin/shutdown -f +5 "EL SUMINISTRO EL´ ECTRICO SE EST´ A CORTANDO" # Si el suministro vuelve antes de bajar, cancelar el proceso. pg:0123456:powerokwait:/sbin/shutdown -c "El SUMINISTRO EL´ ECTRICO EST´ A VOLVIENDO" # Si vuelve el suministro cuando se est´ a en modo de un usuario, volver # al modo multiusuario. ps:S:powerokwait:/sbin/init 5 # Los ‘‘gettys’’ en el modo multiusuario y las l´ ıneas serie. # # NOTA NOTA NOTA backup.tar.gz

Aqu´ı, enviamos el fichero tar a “-”, que representa la salida est´andar de tar. Esto es canalizado a gzip, quien comprime el archivo tar entrante. El producto es guardado en backup.tar.gz. La opci´on -c le ordena a gzip que env´ıe su salida a la salida est´andar, que es reencauzada a backup.tar.gz. Un simple comando para descomprimir este archivo ser´ıa: # gunzip -c backup.tar.gz | tar xvf -

Nuevamente, gunzip descomprime el contenida de backup.tar.gz y env´ıa el archivo tar resultante a ´ la salida est´andar. Esta es canalizada a tar, quien lee “-”, lo cual representa, esta vez, la entrada est´andar de tar. Felizmente, la orden tar incluye tambi´en la opci´on z que, autom´aticamente realiza los procesos de comprimir/descomprimir ficheros, ni bien se invoca el programa, usando el algoritmo de compresi´on de gzip. La orden # tar cvfz backup.tar.gz /etc

es equivalente a # tar cvf backup.tar /etc # gzip backup.tar

Tal como el comando # tar xvfz backup.tar.Z

puede ser usado en lugar de # uncompress backup.tar.Z # tar xvf backup.tar

Indagando en las p´aginas man se puede obtener mas informaci´on acerca de tar y gzip.

4.8. Usando Disquetes y Haciendo Copias de Seguridad Los disquetes son utilizados normalmente como medio para copias de seguridad. Si no se tiene una unidad de cinta conectada al sistema, se pueden utilizar disquetes (a pesar de que sean m´as lentos y algo menos seguros). Como se mencion´o anteriormente, los disquetes se pueden formatear con los programas FORMAT.COM de MS-DOS o fdformat de GNU/Linux. Esto graba la informaci´on apropiada de la capacidad del disquete. Algunos de los nombres de dispositivos y formatos accesibles por GNU/Linux, se dan en la tabla 4.4. El dispositivo que empieza con fd0 es la primera unidad de disquete, que se corresponde con la A: de MS-DOS. Los nombres de los ficheros del controlador de la segunda unidad de disquete empiezan con fd1.

150

Administraci´on de Sistema

Controlador del disquete /dev/fd0d360 /dev/fd0h1200 /dev/fd0h1440

Formato Double densidad, 360 Kb, 5.25 pulgadas. Alta densidad, 1.2 MB, 5.25 pulgadas. Alta densidad, 1.44 MB, 3.5 pulgadas.

Cuadro 4.4: Formatos de disquete GNU/Linux

Normalmente, el n´ucleo de GNU/Linux puede detectar el formato del disquete, basta con usar /dev/fd0 y dejar que el sistema reconozca el formato. Pero cuando se utilizan disquetes nuevos sin formato, puede ser necesario especificar el formato si el sistema no logra detectar el tipo de disquete que es. Una lista completa de los dispositivos GNU/Linux y los nombres de los controladores de las unidades viene en GNU/Linux Allocated Devices, de H. Peter Anvin (ver Apendice A).

4.8.1.

Utilizando disquetes para copias de seguridad

La forma m´as simple de hacer una copia de seguridad es con tar. La orden # tar cvfzM /dev/fd0 /

har´a una copia de seguridad completa del sistema utilizando el disquete /dev/fd0. La opci´on “M” de tar permite que la copia de seguridad sea una copia multi-volumen; esto es, cuando un disquete est´a lleno, tar pedir´a el siguiente. La orden # tar xvfzM /dev/fd0

puede ser utilizada para recuperar la copia de seguridad completa. Este m´etodo puede ser utilizado tambi´en si se tiene una unidad de cinta (/dev/rmt0) conectada al sistema. Existen otros programas para hacer copias de seguridad multi-volumen; el programa backflops disponible en tsx-11.mit.edu puede ser u´ til. Hacer una copia de seguridad completa del sistema puede ser costoso en tiempo y recursos. Muchos administradores de sistemas utilizan una pol´ı tica de copias de seguridad incrementales, en la que cada mes se hace una copia de seguridad completa, y cada semana s´olo se copian aquellos ficheros que hayan sido modificados en esa semana. En este caso, si el sistema se viene abajo a mitad de mes, s´olo tiene que restaurar la u´ ltima copia de seguridad mensual completa y, despu´es, las u´ ltimas copias semanales seg´un el caso. La instrucci´on find puede ser u´ til para localizar ficheros que hayan cambiado desde una cierta fecha. Se pueden encontrar varios ficheros de comandos para manejar copias de seguridad incrementales en sunsite.unc.edu.

4.8.2.

Copias de seguridad con unidades Zip

Las copias de seguridad sobre unidades Zip son muy parecidas a las de disquetes, pero puesto que los Zip tienen una capacidad de 98 Mb, muchas veces s´olo se necesita uno para la copia de seguridad. Las unidades Zip est´an disponibles con tres interfaces de hardware: una interfaz SCSI, una interfaz IDE y una interfaz PPA de puerto paralelo. El soporte de unidades Zip no est´a incluido como opci´on de precompilado en GNU/Linux, pero se puede especificar cuando se personaliza el n´ucleo del sistema. En la p´agina 154 se describe la instalaci´on de este tipo de unidades. Las unidades Zip con interfaz SCSI y PPA, usan la interfaz SCSI y siguen las convenciones de nombres de los dispositivos SCSI que se describen en la p´agina 140. Los discos Zip vienen normalmente pre-formateados como tipo MS-DOS. Hay dos opciones a la hora de usarlos: Usar el Zip como sistema de ficheros MS-DOS, que debe soportar el n´ucleo del sistema o usar mke2fs o alg´un programa similar para escribir un sistema de ficheros GNU/GNU/Linux. Un disco Zip, cuando est´a montado como el primer dispositivo SCSI, est´a en /dev/sda4. # mount /dev/sda4 /mnt

4.8. Usando Disquetes y Haciendo Copias de Seguridad

151

Muchas veces conviene proporcionar un directorio diferente para montar sistemas de fichero Zip, por ejemplo, /zip. Los siguientes pasos, que deben realizarse como root, montar´an la unidad en este directorio: # mkdir /zip # chmod 0755 /zip

Entonces ya se puede utilizar zip para montar el sistema de ficheros Zip. Escribir archivos a discos Zip es parecido a hacerlo en disquetes. Para comprimir el directorio /etc a una unidad Zip ya montada, se debe utilizar la instrucci´on # tar zcvf /zip/etc.tgz /etc

Que se puede ejecutar desde cualquier directorio, puesto que especifica completamente el path. El nombre del archivo etc.tgz es necesario si la unidad Zip contiene un sistema de ficheros MS-DOS, puesto que todos los ficheros que se graben en el disco deben seguir la convenci´on de nombres de MS-DOS de 8+3. En caso contrario, se truncar´a el nombre del fichero. De forma similar, se extrae el contenido del archivo con la instrucci´on # cd / # tar zxvf /zip/etc.tgz

Para crear, por ejemplo, un sistema de ficheros ext2 en una unidad Zip, se debe introducir la orden (para un disco Zip desmontado) # mke2fs /dev/sda4

Con una unidad Zip montada de esta manera, con un sistema de ficheros ext2, es posible hacer una copia de seguridad de sistema de ficheros completo con la simple instrucci´on # tar zcvf /zip/local.tar.gz /usr/local

Hay que notar que el hacer copias de seguridad con tar es m´as aconsejable en muchos casos que hacer un simple cp -a, porque tar conserva las fechas originales de modificaci´on de ficheros.

4.8.3.

Hacer copias de seguridad a dispositivos de cinta

Archivar a un dispositivo de cinta es similiar a hacer una copia de seguridad a un sistema de ficheros en disquetes, solo que a un dispositivo diferente. La cintas se formatean y se manipulan de manera distinta que los disquetes. Algunos controladores de dispositivo para GNU/Linux se muestran en la tabla 4.5 Las unidades Controlador de dispositivo de cinta /dev/rft0 /dev/nrft0 /dev/tpqic11 /dev/ntpqic11 /dev/qft0 /dev/nqft0

Formato Cinta QIC-117, rebobinar al cierre. Cinta QIC-117, no rebibonar al cierre. Cinta QIC-11, rebobinar al cierre. Cinta QIC-11, no rebobinar al cierre. Unidad de cinta “floppy”, rebobinar al cerrar. Unidad de cinta “floppy”, no rebobinar al cerrar.

Cuadro 4.5: Controladores de dispositivos de cinta.

de cinta “floppy” utilizan el interfaz del controlador de dispositivo de la unidad de disquete y se controlan por el controlador de dispositivo ftape, del que se habla m´as abajo. La instalaci´on del m´odulo del controlador de dispositivo ftape se describe en la p´agina 156. Los dispositivos de cinta SCSI se muestran en la tabla 4.3. Para archivar el directorio /etc a una cinta mediante tar, se usar´a el comando: # tar cvf /dev/qft0 /etc

Similarmente para extraer los ficheros desde la cinta, se utiliza el comando:

152

Administraci´on de Sistema

# cd / # tar xvf /dev/qft0

Estas cintas, como los disquetes, deben ser formateados antes de que puedan usarse. El controlador ftape puede formatear cintas en GNU/GNU/Linux. Para formatear una cinta QIC-40, se utilizar´a el comando # ftformat --format-parameter qic40-205ft --mode-auto --omit-erase --discard-header

Otros dispositivos de cinta tienen su propio software para darles formato. Revisa la documentaci´on del hardware de la unidad de cinta o la documentaci´on del controlador de dispositivo asociado a e´ l. Antes de que se puedan extraer las cintas de la unidad, se debe escribir los b´uffers de E/S y rebobinar la cinta. Esto es an´alogo a desmontar un disquete antes de extraerlo, porque el controlador de dispositivo tambi´en cachea datos en la memoria. La orden estandar de Unix para controlar las operaciones de la unidad es mt. El sistema puede no proporcionar este comando, dependiendo de si tiene soporte para unidades de cinta. El controlador ftape tiene un comando similar, ftmt, que se usa para controlar las operaciones de cinta. Para rebobinar una cinta antes de retirarla, se usa el comando # ftmt -f /dev/qft0 rewoffl

Desde luego, sustituya el controlador de dispositivo correcto para su sistema. Tambi´en es una buena idea hacer una retensi´on de la cinta despu´es de escribir en ella, porque las cintas magn´eticas son susceptibles de arrugarse. El comando # ftmt -f /dev/qft0 retension

realizar´a la operaci´on. Para obtener el estado de un dispositivo de cinta, con una cinta dentro utilice el comando # ftmt -f /dev/qft0 status

4.8.4.

Utilizando disquetes como sistemas de ficheros

Puede crearse un sistema de ficheros en un disquete igual que lo har´ı a en una partici´on de un disco duro. Por ejemplo, # mke2fs /dev/fd0 1440

crea un sistema de ficheros en el disquete en /dev/fd0. El tama˜no del sistema de ficheros debe corresponder al tama˜no del disquete. Los disquetes de alta densidad de 3.5”tienen un tama˜no de 1.44 megabytes, o 1440 bloques. Los disquetes de alta densidad de 5.25”tienen 1200 bloques. Para poder acceder a un disquete, se debe montar mount el sistema de ficheros que contiene. La instrucci´on # mount -t ext2 /dev/fd0 /mnt

montar´a el disquete en /dev/fd0 en el directorio /mnt. Ahora todos los ficheros del disquete aparecer´an bajo /mnt en su unidad. “-t ext2” especifica el tipo de sistema de ficheros como ext2fs. Si crea otro tipo de sistema de ficheros en el disquete, necesitar´a especific´arselo a la instrucci´on mount. El “punto de montaje” (el directorio donde est´a montando el sistema de ficheros) debe existir en el momento de utilizar la orden mount. Si no existiese, se debe crear con la instrucci´on mkdir. Para m´as informaci´on sobre sistemas de ficheros, montaje y puntos de montaje, ver secci´on 4.4. Tenga en cuenta que cualquier entrada/salida al disquete se gestiona con buffers igual que si fuese de disco duro. Si cambia datos en el disquete, puede que no vea encenderse la luz de la unidad hasta que el n´ucleo decida vaciar sus buffers. Es importante que no quite un disquete antes de haberlo desmontado; esto puede hacerse con la instrucci´on # umount /dev/fd0

No cambie los disquetes como se hace en un sistema MS-DOS; siempre que cambie disquetes, desmonte umount el primero y monte mount el siguiente.

4.9. Actualizando e instalando software nuevo

153

4.9. Actualizando e instalando software nuevo Otra de las responsabilidades del administrador del sistema, es la actualizaci´on e instalaci´on de nuevo software. El desarrollo del sistema GNU/Linux es r´apido. Cada pocas semanas aparecen versiones nuevas del n´ucleo, y los dem´as programas se actualizan casi tan a menudo. Por esto, los usuarios nuevos de GNU/Linux, sienten la necesidad de actualizar sus sistemas constantemente, para mantenerse, as´ı, al r´apido paso de los cambios. Esto es innecesario y una p´erdida de tiempo: si estuvieras todo el tiempo siguiendo el ritmo de los cambios que ocurren en el mundo de GNU/Linux, se gastar´ıa todo el tiempo actualizando y nada del tiempo usando el sistema. Algunas personas consideran que se deber´ıa actualizar el sistema, solamente cuando una nueva distribuci´on es mostrada al p´ublico; por ejemplo, cuando se presenta una nueva versi´on de Slackware. Entonces, muchos usuarios de GNU/Linux, a la hora de actualizar sus sistemas, reinstalan todo el software, usando la distribuci´on Slackware m´as nueva. La mejor manera de actualizar el sistema, depende del tipo de distribuci´on que se posea. DebianTM , S.u.S.E.TM , CalderaTM y Red Hat LinuxTM tienen, todos, gestores inteligentes de paquetes de software, los cuales permiten realizar las actualizaciones mucho m´as f´acilmente, instalando paquetes nuevos. Por ejemplo, el compilador de C, gcc, viene en un paquete binario, pre-compilado. Cuando se instala, todos los ficheros de la versi´on antigua se sobreecriben o se eliminan. Como casi siempre pasa, actualizar insensatamente para ”mantenerse a la moda”, no es importante en absoluto. ¡Esto no es MS-DOS o Microsoft Windows!. No existe ninguna raz´on importante, para usar la versi´on m´as reciente de todo el software. Ahora bien, si se siente que se quieren o necesitan caracter´ısticas que una versi´on nueva ofrece, entonces hay que actualizar. Si no, no actualice. En otras palabras, actualizar s´olo lo que se deba, cuando se deba. No actualizar s´olo por actualizar. Esto consume mucho tiempo y esfuerzo.

4.9.1.

´ Actualizando el nucleo

Actualizar el n´ucleo es s´olo un asunto de obtener las fuentes del n´ucleo y compilarlas. Esto es generalmente un proceso sin dificultad; sin embargo, uno puede tener problemas si trata de actualizar a un n´ucleo en desarrollo, o actualizarlo a una nueva versi´on. La versi´on de un n´ucleo tiene dos partes: la versi´on del n´ucleo, y el nivel del parche. Cuando esto fue escrito, la u´ ltima versi´on estable del n´ucleo era la 2.0.33. Los n´umeros 2.0 representan la versi´on del n´ucleo, y los n´umeros 33 es el nivel del parche. Las versiones del n´ucleo se˜naladas con n´umeros impares, por ejemplo 2.1 son n´ucleos en desarrollo. Mant´engase lejos de este tipo de n´ucleos, ¡a menos que quiera vivir peligrosamente! Como regla general, uno deber´ıa ser capaz de actualizar su n´ucleo f´acilmente a otro nivel de parche; sin embargo, actualizar a una nueva versi´on requiere, a su vez, la actualizaci´on de las utilidades del sistema que interact´uan ´ıntimamente con el n´ucleo. El c´odigo fuente del n´ucleo Linux puede ser obtenido de cualquiera de los servidores FTP de GNU/Linux, (ver la p´agina 225 para una lista de ellos). En sunsite.unc.edu, por ejemplo, las fuentes del n´ucleo se encuentran en /pub/Linux/kernel, organizado en subdirectorios por n´umero de versi´on. El c´odigo fuente del n´ucleo es publicado en un fichero tar comprimido con gzip. Por ejemplo, el fichero que contiene el c´odigo fuente del n´ucleo 2.0.33 es linux-2.0.33.tar.gz Las fuentes del n´ucleo deber´an descomprimirse y desempaquetarse en el directorio /usr/src, creando el directorio usr/src/linux. Es una costumbre com´un que, /usr/src/linux sea un enlace blando a otro directorio que contenga el n´umero de versi´on del n´ucleo, tal como /usr/src/GNU/Linux-2.0.33. De esta manera, se podr´an instalar nuevos c´odigos fuente y verificar su correcto funcionamiento, antes de eliminar los fuentes del n´ucleo antiguo. Los comandos para crear el enlace al directorio donde se aloja el c´odigo fuente del n´ucleo son: # cd /usr/src # mkdir linux-2.0.33 # rm -r linux # ln -s linux-2.0.33 linux # tar xzf linux-2.0.33.tar.gz

154

Administraci´on del sistema

Cuando se actualiza a un nuevo nivel de parche de la misma versi´on del n´ucleo, un fichero de nivel de parche puede resultar en un ahorro de tiempo en la transferencia de ficheros, puesto que las fuentes del n´ucleo tienen un tama˜no alrededor de los 7 Mb. tras ser comprimidas con gzip. Para actualizar del n´ucleo 2.0.31 al n´ucleo 2.0.33, habr´ıa que descargar los parches patch-2.0.32.gz y patch-2.0.33.gz, los cuales pueden encontrarse en el mismo servidor FTP de las fuentes del n´ucleo. Tras haber ubicado los parches en el directorio /usr/src/, se deben aplicar en las fuentes del n´ucleo, uno tras otro para actualizar el c´odigo fuente. Una forma de hacer esto ser´ıa # cd /usr/src # gzip -cd patch-2.0.32.gz | patch -p0 # gzip -cd patch-2.0.33.gz | patch -p0

Despu´es de desempaquetar los fuentes y de aplicar los parches, necesitar´a asegurarse de que existan tres enlaces simb´olicos en /usr/include, los cu´ales son justo los que necesita el n´ucleo de su distribuci´on. Para crear dichos enlaces, se podr´an usar las o´ rdenes # cd /usr/include # rm -rf asm linux scsi # ln -s /usr/src/linux/include/asm-i386 asm # ln -s /usr/src/linux/include/linux linux # ln -s /usr/src/linux/include/scsi scsi

Despu´es de que haya creado los enlaces, no existe ninguna raz´on para que deba crearlos nuevamente la pr´oxima vez que se instale el siguiente parche, o una nueva versi´on del n´ucleo. (Para m´as informaci´on sobre enlaces simb´olicos: ver secci´on 3.11) A fin de compilar el n´ucleo, habr´a que tener el compilador de C gcc instalado en su sistema. Para compilar la versi´on 2.0 del n´ucleo, se requiere el gcc, versi´on 2.6.3 o m´as reciente. Primero cambie de directorio a /usr/src/linux. La orden make config ir´a preguntando por un ´ n´umero de opciones de configuraci´on. Este es el paso d´onde se selecciona el hardware al que el n´ucleo podr´a dar soporte. La equivocaci´on m´as grande a evitar, es no incluir soporte parar el/los controlador/es del/los disco/s duro/s. Sin el correcto soporte para el disco duro en el n´ucleo, el sistema ni siquiera se iniciar´a. Si en el proceso, se siente inseguro sobre lo que significa una de las opciones del n´ucleo, est´a disponible una corta descripci´on pulsando ? y Enter Lo siguiente ser´a ejecutar la orden make dep para actualizar todas las dependencias del c´odigo fuente. ´Este es, tambi´en, un paso importante. make clean eliminar´a los ficheros binarios antiguos del a´ rbol del n´ucleo. La instrucci´on make zImage compila el n´ucleo y lo escribe en el fichero /usr/src/linux/arch/i386/boot/zImage. Los n´ucleos de Linux en los sistemas Intel, est´an siempre comprimidos. Algunas veces, el n´ucleo que se desea compilar es demasiado grande para ser comprimido por el sistema de compresi´on que usa make zImage. Un n´ucleo excesivamente grande para dicho sistema de compresi´on, retornar´a del proceso de compilaci´on del n´ucleo con el siguiente mensaje de error: Kernel Image Too Large. Si esto llegara a pasar, se debe tratar con la orden make bzImage. Esta orden usa un sistema de compresi´on que soporta los n´ucleos grandes. El n´ucleo ser´a escrito en /usr/src/linux/arch/i386/boot/bzImage. Una vez que se tenga el n´ucleo compilado, se podr´a copiar a un disquete de arranque, (por ejemplo, con la orden “cp zImage /dev/fd0”), o se podr´a instalar la imagen, y as´ı, LILO iniciar´a el sistema desde el disco duro. Para m´as informaci´on, ver la p´agina 134.

4.9.2.

´ Agregando un controlador de dispositivo al nucleo

La p´agina 150 describe c´omo usar una unidad Zip Iomega, para efectuar copias de seguridad. El soporte para este tipo de unidades, como para muchos otros dispositivos, no son generalmente compilados en los n´ucleos com´unes y corrientes de las distribuciones GNU/Linux —la variedad de dispositivos es simplemente demasiado extensa como para poder respaldarlos a todos en un s´olo n´ucleo utilizable. No obstante, el c´odigo

Actualizando e instalando software nuevo

155

fuente para el dispositivo de la unidad Zip en puerto paralelo, est´a incluido como una parte de c´odigo fuente del n´ucleo de la distribuci´on. Esta secci´on describe c´omo agregar el soporte para una unidad de puerto paralelo Iomega Zip, y c´omo hacer para que conviva con una impresora conectada a otro puerto paralelo. Para esto, usted deber´a tener instalado, y haber construido exitosamente un n´ucleo, como el descrito en la secci´on anterior. El poder elegir un dispositivo unidad Zip ppa, como una de las opciones del n´ucleo, requiere que se conteste Y a las respuestas apropiadas, durante el proceso make config, o sea, cuando se determina la configuraci´on del n´ucleo a construir. En particular, el dispositivo ppa, requiere que se conteste “Y” a tres opciones: SCSI support? [Y/n/m] Y SCSI disk support? [Y/n/m] Y IOMEGA Parallel Port Zip Drive SCSI support? [Y/n/m] Y

Despu´es de haber ejecutado exitosamente make config, con todas las opciones que quiere incluir en su n´ucleo, ejecutar make dep, make clean, y make zImage, para construirlo. Adem´as, hay que decirle al n´ucleo, de qu´e manera instalar el controlador. Esto se efect´ua a trav´es de una l´ınea de comandos al LILO. Como se ha descrito en la secci´on 4.2.2, el archivo de configuraci´on del LILO /etc/lilo.conf tiene “estrofas”, una para cada sistema operativo que domina y tambi´en directivas para ofrecer al usuario estas opciones, en el momento de arrancar el sistema. Una de las directivas que LILO acepta es “append=”, la cual permite a˜nadir informaci´on requerida por varios controladores a la l´ınea de comandos. En este caso, el controlador de la unidad Iomega Zip ppa, requiere de una interrupci´on y una direcci´on del puerto de entrada/salida, sin uso. Esto es exactamente an´alogo a especificar dispositivos de impresoras separados, como LPT1: y LPT2: en MS-DOS. Por ejemplo, si la impresora usa la direcci´on del puerto hexadecimal (en base 16), 0x378 (ver el manual de instalaci´on de la tarjeta del puerto paralelo, si no se sabe cu´al es la direcci´on), y est´a sondeada4 , (esto es, no requiere de una l´ınea IRQ, una configuraci´on com´un de GNU/Linux, se deber´ıa colocar la siguiente l´ınea, en el archivo /etc/lilo.conf del sistema: append="lp=0x378,0"

Es digno de observar que Linux reconoce autom´aticamente un puerto /dev/lp al arrancar el sistema, pero al especificar algunas otras configuraciones para los puertos, las instrucci´ones al inicio del sistema, son requeridas. El “0” que se encuentra despu´es de la direcci´on del puerto, le dice al n´ucleo que no use una l´ınea IRQ (pedido de interrupci´on), para la impresora. Esto es, generalmente aceptable, ya que las impresoras son mucho m´as lentas que la CPU, y tan as´ı que un m´etodo m´as lento de acceso a los dispositivos E/S, conocido como sondeo5 , en el cual el n´ucleo comprueba, peri´odicamente, el estado de la impresora, todav´ıa permite al computador supervisar este dispositivo. Sin embargo, los dispositivos que operan a mayores velocidades, como las l´ıneas en serie y los discos, requieren, cada uno, de una l´ınea IRQ, o petici´on de interrupci´on, (Interrupt ReQuest). Esta, es una se˜nal del hardware, enviada por el dispositivo hacia el microprocesador, cada vez que dicho dispositivo requiere la atenci´on del procesador; por ejemplo: si el dispositivo tiene datos esperando a ser despachados por el procesador. El procesador, interrumpe lo que est´e haciendo en ese momento para obedecer al pedido de interrupci´on del dispositivo. El dispositivo unidad Zip ppa, exige una l’´ınea de interrupci´on libre, la cual debe corresponder con la de la tarjeta de la impresora a la cual se conecta la unidad Zip. En el momento en que esto se escrib´ıa, el controlador del dispositivo ppa para GNU/Linux, no soportaba “sucesiones” de puertos paralelos, y se deb´ıan emplear puertos paralelos separados para usar el dispositivo Zip ppa y cada impresora. Para saber cu´ales interrupci´ones est´an actualmente utilizadas por su sistema, la orden # cat /proc/interrupt 4 N.

del T.: “polled” en el original, en el original, (Nota del T.)

5 “polling”

156

Administraci´on del sistema

muestra una lista de dispositivos y las l´ıneas IRQ que usan. Sin embargo, tambi´en se deber´a tener cuidado de no usar ninguna interrupci´on de ning´un puerto en serie configurada autom´aticamente; la cual puede no estar listada en el archivo /proc/interrupt. El Proyecto de Documentaci´on de Linux, serial HOWTO, el cual est´a disponible en los recursos listados en el Ap´endice A, describe detalladamente, la configuraci´on de los puertos en serie. Uno tambi´en deber´ıa realizar un chequeo de la configuraci´on de la interfaz de varias tarjetas, abriendo la carcasa de su m´aquina y verificando visualmente la configuraci´on de los puentes si es necesario, para asegurarse, as´ı, de no estar asociando una l´ınea IRQ usada por otro dispositivo. La lucha de m´ultiples dispositivos por una l´ınea de interrupci´on es quiz´a el problema m´as sencillo y com´un que causa que los sistemas GNU/Linux no funcionen. Un t´ıpico archivo /proc/interrupt suele ser como 0: 6091646 timer 1: 40691 keyboard 2: 0 cascade 4: 284686 + serial 13: 1 math error 14: 192560 + ide0

Aqu´ı, la primera columna nos es de inter´es. Estos son los n´umeros de las l´ıneas IRQ usadas por el sistema. Para el controlador ppa, necesitamos escoger una l´ınea que no est´e listada. La l´ınea IRQ 7 es, a menudo, una buena elecci´on ya que rara vez es usada en las configuraciones del sistema por defecto. Tambi´en necesitamos especificar la direcci´on del puerto que usar´a el dispositivo ppa. Esta direcci´on necesita estar configurada f´ısicamente con la interfaz de la tarjeta. A los puertos paralelos de E/S se les deben asignar direcciones espec´ıficas, por lo que usted tendr´a que leer la documentaci´on de la tarjeta de su puerto paralelo. En este ejemplo usaremos, para el puerto de E/S, la direcci´on 0x278, la cual corresponde al puerto LPT2: de la impresora, en MS-DOS. Para a˜nadir la l´ınea IRQ y la direcci´on del puerto en una l´ınea de comandos cuando arranca el sistema, necesitamos agregar la siguiente expresi´on a la ”estrofa.apropiada del archivo /etc/lilo.conf: append="lp=0x378,0 ppa=0x278,7"

Estas expresiones son a˜nadidas a los par´ametros de arranque del n´ucleo, cuando se inicia el sistema. Aseguran que cualquier impresora conectada al sistema no interfiera con el funcionamiento de la unidad Zip. Por supuesto, si el sistema no tiene ninguna impresora instalada la directiva “lp=” puede, y deber´ıa ser omitida. Despu´es de que haya instalado el n´ucleo, como se describi´o en la secci´on 4.2.2, y antes de reiniciar el sistema, hay que asegurarse de ejecutar la instrucci´on # /sbin/lilo

para as´ı, instalar la nueva configuraci´on de LILO en el sector de arranque del disco duro.

4.9.3.

Instalando controladores en m´odulos

La p´agina 151 describe como realizar copias de seguridad en un accionador de cinta magn´etica. Linux da soporte a una gran variedad de accionadores de cinta con interfaces IDE, SCSI y algunas interfaces del propietario. Otro tipo corriente de accionadores de cinta son aquellos que se conectan directamente al controlador de la disquetera. Linux suministra el controlador para la unidad ftape como un m´odulo. Cuando esto se estaba escribiendo, la versi´on m´as reciente de ftape era la 3.04d. Se puede obtener el controlador en el servidor FTP sunsite.unc.edu, (para m´as informaci´on, ver el Ap´endice C). El archivo ftape se encuentra en el directorio /pub/Linux/n´ ucleo/tapes. Hay que asegurarse de procurarse la versi´on m´as reciente, la cual, cuando este documento se estaba editando, era ftape-3.04d.tar.gz. Despu´es de desempaquetar el archivo ftape en el directorio /usr/src, al escribir make install en el directorio padre de ftape, se compilar´an el m´odulo del controlador ftape y sus utilidades, si son necesarias, y

Actualizando e instalando software nuevo

157

luego se instalar´an. Si experimenta problemas de compatibilidad entre los ficheros de la distribuci´on ejecutable ftape y su n´ucleo o las bibliotecas de su sistema, ejecuta los comandos make clean y make install, y se asegurar´a, de que los m´odulos sean compilados en su sistema. Para usar esta versi´on del controlador ftape, usted deber´a tener el soporte para m´odulos en el n´ucleo, como tambi´en soporte para el demonio n´ ucleod. Sin embargo, no deber´a incluir el c´odigo interno del n´ucleo para ftape como una opci´on del n´ucleo, ya que las versi´ones m´as recientes del m´odulo ftape remplazan completamente este c´odigo. make install, tambi´en instalar´a el controlador del dispositivo en el directorio correcto. En un sistema GNU/Linux est´andar, los m´odulos se encuentran en el directorio /lib/modules/n´ucleo-version

Si la versi´on de tu n´ucleo es 2.0.30, los m´odulos de su sistema se encuentran en el directorio /lib/modules/2.0.30. make install tambi´en asegura que estos m´odulos puedan ser localizados en cualquier momento, agregando las expresi´ones apropiadas en el archivo modules.dep, que se encuentra en el directorio ra´ız de los ficheros m´odulo, en este caso, /lib/modules/2.0.30. La instalaci´on de ftape, a˜nade los siguientes m´odulos a su sistema, (usando, en este ejemplo, la versi´on 2.0.30 del n´ucleo): /lib/modules/2.0.30/misc/ftape.o /lib/modules/2.0.30/misc/zft-compressor.o /lib/modules/2.0.30/misc/zftape.o

Tambi´en se necesitan agregar las instrucci´ones para cargar los m´odulos al archivo de la configuraci´on de m´odulos de su sistema. En muchos sistemas, este es el archivo /etc/conf.modules. Para cargar autom´aticamente los m´odulos ftape a pedido, agregue las siguientes l´ıneas en el archivo /etc/conf.modules: alias char-major-27 zftape pre-install ftape /sbin/swapout 5

La primera declaraci´on carga los m´odulos relacionados con ftape cuando un dispositivo con el n´umero principal 276 (el dispositivo ftape), es accedido por el n´ucleo. Debido a que el m´odulo de soporte para zftape, (el cual provee compresi´on autom´atica para los dispositivos ftape) requiere el soporte de los dem´as m´odulos ftape, todos ellos son cargados en el momento en que el n´ucleo efect´ua la demanda. La segunda l´ınea especifica los par´ametros que ser´an dados a los m´odulos al iniciarse el sistema. En este caso, la utilidad /sbin/swapout, la cual viene incorporada en el paquete de software ftape, asegura que hay suficiente memoria DMA, para el correcto funcionamiento del controlador ftape. Para tener acceso al dispositivo ftape driver se deber´a primero, colocar una cinta formateada en la unidad. Las instrucci´ones para formatear cintas y operar correctamente la unidad de cintas son dadas en la secci´on 4.8.3.

4.9.4.

Actualizando las bibliotecas

Como se mencion´o antes, la mayor parte del software del sistema est´a compilado para que utilice las bibliotecas compartidas, las cuales contienen subrutinas comunes compartidas entre distintos programas. Si aparece el mensaje Incompatible library version

cuando se intenta ejecutar un programa, entonces necesita actualizar a la versi´on de las bibliotecas que el programa requiere. Las bibliotecas son compatible-ascendentes; esto es, un programa compilado para utilizar una versi´on antigua de las bibliotecas, deber´ıa ser capaz de trabajar con la nueva versi´on de las bibliotecas instalada. Sin embargo, esto no se da en reversa. La ultima versi´on de las bibliotecas se puede encontrar en los servidores FTP de GNU/Linux. En sunsite.unc.edu, est´an disponibles en /pub/GNU/Linux/GCC. Los ficheros a descargar deber´ıan 6 N.

del T.: “majornumber 27” en el original

158

Administraci´on del sistema

explicar qu´e ficheros se necesita obtener y como instalarlos. Deber´ıa ser capaz de coger r´apidamente los ficheros image-versi´ on.tar.gz y inc-versi´ on.tar.gz, donde versi´on es la versi´on de las bibliotecas a instalar, por ejemplo 4.4.1. Estos son ficheros tar, comprimidos con gzip. El fichero imagen contiene las im´agenes de las bibliotecas a instalar en /lib y /usr/lib. El fichero inc contiene los ficheros de inclusi´on, a instalar en /usr/include. El fichero release-versi´on.tar.gz deber´ıa explicar el procedimiento de instalaci´on en detalle, (las instrucci´ones exactas cambian seg´un la versi´on). Generalmente se necesitar´a instalar los ficheros de bibliotecas .a y .sa en /usr/lib. Estas son las utilizadas al compilar. Adem´as, los ficheros imagen de las bibliotecas compartidas lib.so.versi´on se instalan en /lib. Estas son las im´agenes de las bibliotecas compartidas que son cargadas en tiempo de ejecuci´on por los programas que las utilizan. Cada biblioteca tiene un enlace simb´olico utilizando el numero de versi´on principal 7 de la biblioteca en /lib. La versi´on 4.4.1 de la biblioteca libc tiene un n´umero de versi´on de versi´on principal 4. El archivo que contiene a la biblioteca es el libc.so.4.4.1. Existe un enlace simb´olico con el nombre libc.so.4 en /lib apuntando a este fichero. Es por esto que se debe cambiar estos enlaces simb´olicos cuando se actualizan las bibliotecas. Por ejemplo, cuando se actualiza de libc.so.4.4 a libc.so.4.4.1, se debe cambiar el enlace simb´olico de tal modo que apunte a la nueva versi´on. Se deber´a cambiar el enlace simb´olico de un s´olo paso, como se describir´a m´as abajo. Si se borra el enlace simb´olico libc.so.4, los programas que dependen de e´ l, (incluyendo utilidades b´asicas como ls y cat), dejar´an de funcionar. Por lo tanto, es recomendable usar la siguiente orden para actualizar el enlace simb´olico libc.so.4 y hacer que apunte al archivo libc.so.4.4.1: # ln -sf /lib/libc.so.4.4.1 /lib/libc.so.4

Tambi´en se necesitar´a cambiar el enlace simb´olico libm.so.versi´on de la misma manera. Si se est´a actualizando a una versi´on de biblioteca diferente, substituir apropiadamente los nombres de arriba. Las notas que vienen con el paquete de la biblioteca, deber´ıan explicar los detalles. (Mirar en la p´agina 118 para m´as informaci´on sobre los enlaces simb´olicos.)

4.9.5.

Actualizando el gcc

El compilador de C y C++ gcc, es usado para compilar el software de su sistema, siendo lo m´as importante, el n´ucleo. La u´ ltima versi´on, del gcc se puede obtener en los servidores de GNU/Linux FTP. En sunsite.unc.edu, se encuentra en el directorio /pub/GNU/Linux/GCC, (junto con las bibliotecas). Deber´ıa de haber un fichero de entrega8 en la distribuci´on del gcc, el cual explique qu´e ficheros necesita obtener y c´omo instalarlos. La mayor´ıa de las distribuci´ones de GNU/Linux tienen versi´ones para actualizar el gcc que trabajan con su propia gesti´on de paquetes de software. En general, estos paquetes son mucho m´as f´aciles de instalar que las distribuci´ones “gen´ericas”.

4.9.6.

Actualizando otro software

Actualizar otro software suele ser simplemente materia de obtener los ficheros apropiados e instalarlos. La mayor parte del software de GNU/Linux se distribuye bajo la forma de ficheros tar comprimidos que pueden incluir los fuentes, los binarios, o ambos. Si los binarios no est´an incluidos en ese paquete, puede que sea necesario que usted los compiles. Esto significa, que por lo menos, tenga que teclear make dentro del directorio donde se encuentran los ficheros fuente. Leer el grupo de noticias de Usenet comp.os.GNU/Linux.announce en busca de anuncios de nuevas versi´ones de software, es la manera m´as simple para enterarse de la aparici´on de nuevo software. Cada vez que se busque software en un servidor FTP, obtener el fichero de ´ındice ls-lR del servidor FTP y utilizar grep para encontrar los ficheros en cuesti´on, es la forma mas simple de localizar software. Si se 7 N.

del T.: “major version number” en el original. file” en el original. Nota del T.

8 “release

4.10. Tareas diversas

159

dispone de archie, este puede servir de ayuda; o de otra manera 9 , es posible conectarse v´ıa telnet a un servidor archie como puede ser archie.rutgers.edu, identificarse como “archie” y utilizar el comando ”help”. Tambi´en se puede encontrar otros recursos en Internet, los cuales son consagrados espec´ıficamente para GNU/Linux. Mirar el Ap´endice A para obtener informaci´on m´as detallada.

4.10.

Tareas diversas

Se crea o no, existen diversas tareas dom´esticas de verificaci´on para el administrador del sistema, que no entran en ninguna categor´ıa en especial.

4.10.1.

Ficheros de inicio del sistema

Cuando el sistema arranca, una serie de scripts son ejecutados autom´aticamente por el sistema antes de que cualquier usuario ingrese. He aqu´ı qu´e es lo que sucede. Cuando el sistema arranca, el n´ucleo inicia el proceso /etc/init. Init es un programa que lee su archivo de configuraci´on, /etc/inittab, y a su vez, inicia otros procesos, los cuales se encuentran en dicho archivo. Uno de los procesos m´as importantes, de los iniciados por inittab es /etc/getty, el cual se “despierta” con cada consola virtual. El proceso getty dispone la consola virtual, (consola virtual) para ser utilizada, e inicia el proceso login en ella. Esto es lo que le permite al usuario ingresar en cada consola virtual. Si el fichero /etc/inittab no tuviera un proceso getty para cierta consola virtual, entonces no ser´ıa posible ingresar en dicha consola virtual. Otro proceso ejecutado desde /etc/inittab es /etc/rc, el archivo de inicializaci´on principal del ´ sistema. Este es un simple fichero de comandos que ejecuta cualquier orden necesaria al iniciarse el sistema como, por ejemplo, montar el sistema de archivos, (ver p´agina 139) o iniciar el espacio de intercambio10 . En algunos sistemas, init ejecuta el archivo /etc/init.d/rc. El sistema tambi´en puede ejecutar otros scripts de inicializaci´on. Por ejemplo, /etc/rc.local, contiene, usualmente, o´ rdenes de inicializaci´on espec´ıficas del propio sistema, como puede ser establecer el nombre del host (ver la siguiente secci´on). rc.local puede ser iniciado tanto desde /etc/rc como desde /etc/inittab.

4.10.2.

Estableciendo el nombre del anfitri´on

En un entorno de red el nombre de la m´aquina es utilizado para identificar un´ıvocamente una m´aquina en particular, mientras que en una m´aquina aut´onoma, el nombre del anfitri´on, simplemente da a la m´aquina personalidad y encanto. Es como darle un nombre a una mascota: siempre puede dirigirse a su perro como ”El perro”, pero es mucho m´as interesante ponerle al perro un nombre como Mancha o Duque. Asignarle un nombre al sistema se trata simplemente de utilizar la orden hostname. Si se est´a en una red, el nombre debe ser el nombre de anfitri´on11 completo de su m´aquina, por ejemplo, goober.norelco.com. Si no se esta en una red de ning´un tipo, entonces se podr´a escoger el nombre y dominio que prefiera, como loomer.vpizza.com, shoop.nowhere.edu, o floof.org. Cuando se designa el nombre del ordenador, dicho nombre debe aparecer en el fichero /etc/hosts, que asigna una direcci´on IP a cada ordenador. A´un cuando el ordenador no est´e en una red, se debe incluir el nombre del ordenador en /etc/hosts. Si no se pertenece a una red TCP/IP, y se ha asignado floof.org como nombre de tu equipo, entonces se deber´a incluir la siguiente l´ınea en /etc/hosts: 127.0.0.1

floof.org localhost

Esto asignar´a el nombre de servidor, floof.org, a la direcci´on de bucle12 127.0.0.1, (utilizada si no se est´a en una red). La interfaz de bucle est´a presente, tanto cuando la m´aquina esta conectada a una red, o 9 Si

no se tiene archie del T.: “swap space” en el original. 11 N. del T.: “host name” en el original. 12 N. del T.: “loopback address” en el Original. 10 N.

160

Administraci´on del Sistema

cuando no lo est´a. El alias localhost siempre se asigna a esta direcci´on. 13 Si se est´a en una red TCP/IP, la direcci´on y nombre de servidor actuales deber´ıan encontrarse en /etc/hosts. Por ejemplo, si el nombre de servidor es goober.norelco.com,, y la direcci´on IP es 128.253.154.32, se deber´a agregar la siguiente l´ınea en /etc/hosts: 128.253.154.32

goober.norelco.com

Para establecer el nombre de anfitri´on, se deber´a usar la instrucci´on hostname. Por ejemplo, la orden # hostname -S goober.norelco.com

establece el nombre de anfitri´on como goober.norelco.com. En la mayor´ıa de los casos, el comando hostname es ejecutado desde uno de los ficheros de inicio del sistema, como por ejemplo /etc/rc o /etc/rc.local. Hay que reescribir estos dos ficheros y cambiar la orden hostname que all´ı se encuentra para determinar su propio nombre de anfitri´on. Cuando haya reiniciado el equipo, el sistema usar´a el nuevo nombre.

4.11. Qu´e hacer en caso de emergencia En algunas ocasiones, el administrador de sistemas se encuentra con el problema de recuperarse de un desastre completo, como puede ser el olvidarse la palabra clave del usuario root, o el enfrentarse con sistemas de ficheros da˜nados. El mejor consejo es, obrar sin p´anico. Todo el mundo comete errores est´upidos, e´ sta es la mejor forma de aprender sobre administraci´on de sistemas: la forma dif´ıcil. Linux no es una versi´on inestable de UNIX. De hecho, he tenido menos problemas con “cuelgues” de sistemas Linux que con versiones comerciales de UNIX en muchas plataformas. Linux tambi´en se beneficia de un fuerte complemento de asistentes que pueden ayudar a salir del agujero. El primer paso al investigar cualquier problema es intentar arreglarlo uno mismo. Hay que echar un vistazo y ver c´omo funcionan las cosas. Demasiadas veces, un administrador de sistemas pone un mensaje desesperado rogando ayuda antes de investigar el problema. Muchas de las veces, arreglar problemas por uno mismo es realmente muy f´acil. Este es el camino que debe seguir para convertirse en un gur´u. Hay pocos casos en los que sea necesario reinstalar el sistema desde cero. Muchos nuevos usuarios borran accidentalmente alg´un fichero esencial del sistema, e inmediatamente acuden a los discos de instalaci´on. Esta no es una buena idea. Antes de tomar medidas dr´asticas como esa, investigar el problema y preguntar a otros ayudar´a a solucionar las cosas. En pr´acticamente todos los casos, podr´a recuperar el sistema desde un disquete de mantenimiento.

4.11.1.

Recuperaci´on utilizando un disquete de mantenimiento

Una herramienta indispensable para el administrador de sistemas es el llamado “disco arranque/ra´ız” (“boot/root disk”) —un disquete desde el que se puede arrancar un sistema GNU/Linux completo, independiente del disco duro. Los discos de arranque/ra´ız son realmente muy simples, se crea un sistema de ficheros ra´ız en el disquete, se ponen todas las utilidades necesarias en e´ l y se instala LILO y un n´ucleo arrancable en el disquete. Otra t´ecnica es usar un disquete para el n´ucleo y otro para el sistema de ficheros ra´ız. En cualquier caso, el resultado es el mismo: Ejecutar un sistema Linux completamente desde disquete. El ejemplo m´as claro de un disco de arranque/ra´ız son los discos de arranque Slackware14 . Estos disquetes contienen un n´ucleo capaz de iniciar y un sistema de ficheros ra´ız, todo en disquete. Est´an dise˜nados para usarse en la instalaci´on de la distribuci´on Slackware, pero vienen muy bien cuando hay que hacer mantenimiento del sistema. 13 N. del T.: Si se usa sendmail, cambiar el nombre de host en una estaci´ on sin tarjeta de red provoca que sendmail tarde unos 5 minutos en iniciarse debido a un cambio del nombre de la direcci´on del bucle local. Tendr´a que configurar sendmail a mano para poder hacer esto, y no es f´acil. 14 V´ ease la Secci´on C para la informaci´on sobre c´omo obtener e´ sta desde Internet. Para este procedimiento, no se necesita obtener la versi´on completa de Slackware, s´olo los disquetes de arranque y ra´ız.

4.11. Qu´e hacer en caso de emergencia

161

El disco de arranque/ra´ız de H.J Lu, disponible en /pub/Linux/GCC/rootdisk en sunsite.unc.edu, es otro ejemplo de este tipo de discos de mantenimiento. O, si se es ambicioso, se puede crear uno su propio disco. En muchos casos, sin embargo, la utilizaci´on de un disco de arranque/ra´ız prefabricado es mucho m´as simple y probablemente ser´a m´as completo. La utilizaci´on de un disco de arranque/ra´ız es muy simple. Tan s´olo arranque el sistema con el disco, y haga login como root (normalmente sin clave). Para poder acceder a los ficheros del disco duro, se necesitar´a montar el sistema de ficheros a mano. Por ejemplo, la orden # mount -t ext2 /dev/hda2 /mnt

montar´a un sistema de ficheros ext2fs existente en /dev/hda2 bajo /mnt. Recuerde que / es ahora el propio disco de arranque/ra´ız; se necesitar´a montar los sistemas de ficheros de su disco duro bajo alg´un directorio para poder acceder a los ficheros. Por lo tanto, el fichero /etc/passwd de su disco duro es ahora /mnt/etc/passwd si se mont´o el sistema de ficheros ra´ız bajo /mnt.

4.11.2.

Arreglando la clave de root

Si se olvida de la clave de root, no hay problema. S´olo hay que arrancar del disco de arranque/ra´ız, montar su sistema de ficheros ra´ız en /mnt, y eliminar el campo de la clave de /root en /mnt/etc/passwd, como por ejemplo: root::0:0:root:/:/bin/sh

Ahora root no tiene clave; al reiniciar desde el disco duro deber´ı a ser capaz de hacer login como root y poner la clave que desee utilizando passwd. ¿No quiso aprender a utilizar vi? En el disco de arranque/ra´ız probablemente no estar´an disponibles otros editores como pueda ser Emacs, pero vi deber´ı a estarlo.

4.11.3.

Arreglando sistemas de ficheros corrompidos

Si se corrompiese de alguna forma el sistema de ficheros, se puede ejecutar e2fsck o la forma apropiadad de fsck para el tipo de sistema de ficheros (vease la p´agina 141). En muchos casos, es m´as seguro corregir cualquier dato da˜nado en el sitema de ficheros del disco duro desde un disquete. Una causa com´un de da˜no en un sistema de ficheros es la corrupci´on del super bloque. El super bloque es la “cabecera” del sistema de ficheros que contiene informaci´on acerca del estado del sistema de ficheros, tama˜no, bloques libres, y dem´as. Si se corrompe el super bloque (por ejemplo, escribiendo accidentalmente datos directamente a la partici´on del sistema de ficheros), el sistema no puede reconocer nada del sistema de ficheros. Cualquier intento de montar el sistema de ficheros fallar´a y e2fsck no ser´a capaz de arreglar el problema. Afortunadamente, el tipo de sistema de ficheros ext2fs salva copias del super bloque en los l´ı mites de “grupos de bloques” en el disco —normalmente cada 8K bloques. Para poder decirle al e2fsck que utilice una copia del super bloque, se puede utilizar un comando tal que # e2fsck -b 8193 partici´on

donde partici´on es la partici´on en la que reside el sistema de ficheros. La opci´on -b 8193 le dice al e2fsck que utilice la copia del super bloque almacenada en el bloque 8193 del sistema de ficheros.

4.11.4.

Recuperando ficheros perdidos

Si accidentalmente se borran ficheros importantes del sistema no hay forma de recuperarlos. Sin embargo, se pueden copiar los ficheros relevantes desde el disquete al disco duro. Por ejemplo, si se hubiese borrado /bin/login de su sistema (que le permite registrarse en el sistema), simplemente arranque del disquete de arranque/ra´ız, monte el sistema de ficheros ra´ız en /mnt, y use la orden # cp -a /bin/login /mnt/bin/login

162

Administraci´on del Sistema

La opci´on -a le dice a cp que conserve los permisos en los ficheros que se est´an copiando. Por supuesto, si los ficheros que se borraron no fuesen ficheros esenciales del sistema que tengan contrapartidas en el disquete de arranque/ra´ız, se habr´a acabado la suerte. Si se hicieron copias de seguridad, siempre se podr´a recuperar de ellas.

4.11.5.

Arreglando bibliotecas corrompidas

Si accidentalmente se llegasen a corromper las bibliotecas de enlaces simb´olicos en /lib, es m´as que seguro que instrucciones que dependan de estas bibliotecas no vuelvan a funcionar (V´ease la Secci´on 4.9.4). La soluci´on m´as simple es arrancar del disquete de arranque/ra´ız, montar el sistema de ficheros ra´ız y arreglar las bibliotecas en /mnt/lib. En la p´agina 157 se describe c´omo instalar este tipo de bibliotecas y sus enlaces simb´olicos.

Cap´ıtulo 5

El Sistema X-Window El sistema X-Window es una interfaz gr´afica para usuario (“GUI” en sus siglas en ingl´es), que se desarroll´o originalmente en el Instituto de Tecnolog´ıa de Massachussetts (Massachusetts Institute of Technology, m´as conocido como MIT). X es la “GUI” est´andar para plataformas UNIX comerciales. Pr´acticamente todas las estaciones de trabajo UNIX del mundo trabajan bajo alguna forma de X. Un equipo de programadores encabezados inicialmente por David Welxelblat desarrollaron un porte libre del sistema X-Window del MIT, versi´on 11 y “release” 6 (X11R6) para sistemas UNIX con 80386, 80486 y Pentium. Esta “release”, conocida como XFree861 , est´a disponible para sistemas V/386, 386BSD y otras implementaciones UNIX de Intel x86, incluyendo GNU/Linux. Proporciona todos los binarios, ficheros de soporte, bibliotecas y utilidades para la instalaci´on. Algunas de las caracter´ısticas que ofrece esta versi´on son: Inclusi´on de la versi´on completa de X11R6.3 del X Consortium. Una nueva extensi´on “DPMS”, donada por Digital Equipment Corporation. La extensi´on de Low Bandwidth X(LBX) en todos los servidores X. Soporte Microsoft Intellimouse Soporte para la compresi´on de fuentes gzip Para usar el sistema X-Window, se recomienda leer The X-Window System: A User’s Guide (ver Ap´endice /refapp-info). Aqu´ı describiremos paso a paso la instalaci´on de XFree86 bajo GNU/Linux. Debe fijarse en ´ algunos detalles leyendo la documentaci´on de XFree86, que se discute m´as adelante. El XFree86 COMO de GNU/Linux es otra fuente de informaci´on interesante.

5.1. Requerimientos hardware de X-Window 5.1.1.

Gr´aficos

La documentaci´on para su adaptador de v´ıdeo deber´ıa especificar el chip gr´afico. Si est´a dispuesto a comprar una nueva tarjeta, o va a comprar una m´aquina que viene con tarjeta de v´ıdeo, pregunte a su distribuidor cu´al es exactamente la marca, modelo y chip de la tarjeta que tiene. El distribuidor puede que necesite llamar al departamento de apoyo t´ecnico del fabricante. Muchos distribuidores de hardware de ordenadores personales afirman que su tarjeta de v´ıdeo es “Super VGA est´andar,” que “deber´ıa funcionar,” con su ordenador. Explique que su software (mencione GNU/Linux y XFree86!) no permite todos los chips gr´aficos y que deber´ıa tener informaci´on detallada. Tambi´en puede determinar el chip de la tarjeta de v´ıdeo ejecutando el programa SuperProbe incluido junto con el paquete XFree86. Esto se detalla m´as abajo. Concretamente se permiten los siguientes chips de v´ıdeo para la versi´on de XFree86 3.3 liberada en Junio 1997: 1 XFree86

es una marca registrada por XFree86 Project, Inc.

163

164

Caracter´ısticas Avanzadas

Ark Logic ARK1000PV, ARK1000VL, ARK2000PV, ARK2000MT Alliance AP6422, AT24 ATI 18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6, 68800-3, 68800-6, 68800AX, 68800LX, 88800GX-C, 88800GX-D, 88800GX-E, 88800GX-F, 88800CX, 264CT, 264ET, 264VT, 264VT2, 264GT (esta lista incluye los Mach8, Mach32, Mach64, 3D Rage y 3D Rage II) Avance Logic ALG2101, ALG2228, ALG2301, ALG2302, ALG2308, ALG2401 Chips & Technologies 65520, 65530, 65540, 65545, 65520, 65530, 65540, 65545, 65546, 65548, 65550, 65554 Cirrus Logic CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428, CLGD5429, CLGD5430, CLGD5434, CLGD5436, CLGD5440, CLGD5446, CLGD5462, CLGD5464, CLGD5465, CLGD5480, CLGD6205, CLGD6215, CLGD6225, CLGD6235, CLGD6410, CLGD6412, CLGD6420, CLGD6440, CLGD7541, CLGD7543, CLGD7548, CLGD7555 Digital Equipment Corporation TGA Compaq AVGA Genoa GVGA IBM 8514/A (y clones aut´enticos), XGA-2 IIT AGX-014, AGX-015, AGX-016 Matrox MGA2064W (Millennium), MGA1064SG (Mystique) MX MX68000, MX680010 NCR 77C22, 77C22E, 77C22E+ Number Nine I128 (series I y II) NVidia/SGS Thomson NV1, STG2000 OAK OTI067, OTI077, OTI087 RealTek RTG3106 S3 86C911, 86C924, 86C801, 86C805, 86C805i, 86C928, 86C864, 86C964, 86C732, 86C764, 86C765, 86C775, 86C868, 86C968, 86C325, 86C375, 86C385, 86C988, 86CM65 SiS 86C201, 86C202, 86C205 Tseng ET3000, ET4000AX, ET4000/W32, ET4000/W32i, ET4000/W32p, ET6000 Trident TVGA8800CS, TVGA8900B, TVGA8900C, TVGA8900CL, TVGA9000, TVGA9000i, TVGA9100B, TVGA9200CXR, TVGA9320, TVGA9400CXi, TVGA9420, TGUI9420DGi, TGUI9430DGi, TGUI9440AGi, TGUI9660XGi, TGUI9680, ProVidia 9682, ProVidia 9685, ProVidia 9692, Cyber 9382, Cyber 9385 Video 7/Headland Technologies HT216-32 Weitek P9000 Western Digital/Paradise PVGA1 Western Digital WD90C00, WD90C10, WD90C11, WD90C24, WD90C24A, WD90C30, WD90C31, WD90C33

5.2. Instalaci´on de XFree86

165

Las tarjetas de v´ıdeo con estos chips se permiten en todos los tipos de buses. Todas las tarjetas permiten virtualmente los modos gr´aficos de 256 colores. Adem´as, algunas de ellas permiten modos de color como monocromo, 15-bit, 16-bit, 24-bit y 32-bit. Para profundidades de color superiores a 256 (8-bit), debe tener instalada la cantidad requerida de RAM din´amica de v´ıdeo (DRAM). La configuraci´on t´ıpica es 16 bits por pixel (65536 colores). El servidor monocromo permite asimismo tarjetas VGA gen´ericas, la tarjeta monocroma Hercules, las tarjetas monocromas Hyundai HGC1280, Sigma LaserView y Apollo. Las anotaciones de la versi´on actual de XFree86 deber´ıan contener la lista completa de chips permitidos. La distribuci´on XFree86 tiene ficheros README espec´ıficos para cada chip que dan informaci´on detallada sobre la posibilidad de utilizar ese chip. Un problema al que se enfrentaron los desarrolladores del XFree86 es que algunos fabricantes de tarjetas de v´ıdeo utilizan mecanismos no est´andar para determinar las frecuencias del reloj utilizadas para trabajar con la tarjeta. O no publican especificaciones que describan como programar la tarjeta o exigen a los programadores que firmen declaraciones de no revelaci´on para conseguir la informaci´on. Esta pr´actica restringe la libre distribuci´on de XFree86 y el equipo de desarrollo de XFree86 no est´a dispuesto a aceptarla. Esto ha sido un problema con las tarjetas de v´ıdeo m´as antiguas de Diamond, pero a partir de la versi´on 3.3, Diamond apoya activamente el Proyecto XFree86. N´otese sin embargo que las tarjetas Diamond SpeedStar 24 y posiblemente algunas tarjetas SpeeedStar+ NO son soportadas, incluso aunque usen el chipset ET4000. Tambi´en, hay muchos de los chipsets m´as modernos que no se soportan debido a la escasez de documentaci´on del fabricante y/o la escasez de programadores dedicados a la codificaci´on. Se recomienda usar una tarjeta aceleradora, como el chip S3. Deber´ıa revisar la documentaci´on del XFree86 y verificar que su propia tarjeta est´a permitida antes de dar el paso decisivo y comprar hardware caro. Se env´ıan comparaciones de rendimiento de tarjetas de v´ıdeo de forma rutinaria a los grupos de noticias de Usenet comp.windows.x.i386unix y comp.os.linux.misc. Es importante fijarse en que la tarjeta aceleradora media es significativamente m´as r´apida que la tarjeta gr´afica est´andar de la mayor´ıa de las estaciones de trabajo. Un sistema GNU/Linux 80486DX2 a 66-MHz con 20 megabytes de RAM equipado con tarjeta S3-864 VESA Local Bus (VLB) con 2 megabytes de DRAM podr´a por consiguiente ser unas 7 veces m´as r´apido que una estaci´on de trabajo Sun Sparc IPX en pruebas de rendimiento con el servidor XFree86 versi´on 3.1. La versi´on 3.3 es a´un m´as r´apida. En general, un sistema GNU/Linux con una SVGA acelerada dar´a un rendimiento mucho mayor que las estaciones de trabajo UNIX comerciales, que normalmente emplean buffers de cuadro u´ nico para gr´aficos.

5.1.2.

Memoria, CPU y espacio en disco

La instalaci´on recomendada para XFree86 bajo GNU/Linux es un 80486 o mejor con al menos 16 megabytes de RAM. Cuanta m´as RAM f´ısica haya instalada, menos intercambio a disco habr´a que hacer cuando quede poca memoria libre. Como el intercambio es inherentemente lento (los discos son muy lentos comparados con la memoria) tener 16 megabytes de RAM o m´as es necesario para ejecutar XFree86 c´omodamente. Un sistema con 4 megabytes de RAM f´ısica podr´ıa funcionar de 10 a 100 veces m´as despacio que uno con 16 megabytes o m´as. Una instalaci´on est´andar de XFree86 necesita de 60 a 80 megabytes de espacio en disco, como m´ınimo. Esto incluye espacio para los servidores X, fuentes, bibliotecas y utilidades est´andar. Si tiene en mente a˜nadir aplicaciones, probablemente podr´a ejecutar XFree86 con comodidad con 200 megabytes de espacio en disco.

5.2. Instalaci´on de XFree86 La distribuci´on binaria de XFree86 para GNU/Linux se halla en todas las distribuciones GNU/Linux en CD y tambi´en puede ser encontrada en un cierto n´umero de sitios FTP. En sunsite.unc.edu se encuentra en el directorio /pub/X11/XFree86. En el momento de la redacci´on de este documento, la versi´on actual es la 3.3.1. Peri´odicamente, salen versiones m´as nuevas. Si obtiene XFree86 como parte de una distribuci´on GNU/Linux, no es necesario descargar el software de forma separada.

166

Caracter´ısticas Avanzadas

Estos ficheros est´an presentes en la distribuci´on XFree86-3.3.1 Uno de los siguientes servidores es necesario: Fichero X338514.tgz X33AGX.tgz X33I128.tgz X33Ma64.tgz X33Ma32.tgz X33Ma8.tgz X33Mono.tgz X33P9K.tgz X33S3.tgz X33S3V.tgz X33SVGA.tgz X33VGA16.tgz X33W32.tgz

Descripci´on Servidor para tarjetas basadas en 8514. Servidor para tarjetas basadas en AGX. Servidor para las tarjetas Imagine I128. Servidor para tarjetas basadas en Mach64. Servidor para tarjetas basadas en Mach32. Servidor para tarjetas basadas en Mach8. Servidor para modos de v´ıdeo monocromos. Servidor para tarjetas basadas en P9000. Servidor para tarjetas basadas en S3. Servidor para tarjetas tipo S3/Virge. Servidor para tarjetas Super VGA. Servidor para tarjetas VGA/EGA. Servidor para tarjetas tipo ET4000/W32.

Todos los ficheros siguientes son necesarios: Fichero preinst.sh postinst.sh X33bin.tgz X33doc.tgz X33fnts.tgz X33lib.tgz X33man.tgz X33set.tgz X33VG16.tgz

Descripci´on Script de preinstalaci´on Script de postinstalaci´on Clientes, bibliotecas de tiempo de ejecuci´on y ficheros de aplicaci´on por defecto Documentaci´on Fuentes 75dpi, misc y PEX Ficheros de datos necesarios en tiempo de ejecuci´on P´aginas del manual Utilidad XF86Setup Servidor VGA de 16 colores (XF86Setup lo necesita)

Lo siguiente es necesario para nuevas instalaciones y opcionalmente para instalaciones existentes: Fichero X33cfg.tgz

Descripci´on ficheros ejemplo de configuraci´on para xinit y xdm

No instalar X33cfg.tgz sobre una instalaci´on XFree86 existente sin crear una copia de seguridad de los ficheros de configuraci´on. Desempaquetar X33cfg.tgz sobreescribe e´ stos y otros ficheros. De todas formas, si usted s´ı que tiene ficheros de configuraci´on personalizados, no hay necesidad de instalar este paquete. Las fuentes de mapa de bits distribuidas con la versi´on 3.3.1 est´an comprimidas con el programa gzip en vez de con compress. Probablemente tendr´a antes de borrar las fuentes antiguas hacer copia de seguridad de ellas. Los servidores X y servidores de fuentes de las versiones anteriores no pod´ıan leer fuentes comprimidas por gzip, as´ı que copie las fuentes antiguas si desea utilizar los servidores m´as antiguos. Los siguientes ficheros son opcionales:

5.2. Instalaci´on de XFree86

Fichero X33f100.tgz X33fcyr.tgz X33fnon.tgz X33fscl.tgz X33fsrv.tgz X33prog.tgz X33nest.tgz X33vfb.tgz X33prt.tgz X33ps.tgz X33html.tgz X33jdoc.tgz X33jhtm.tgz X33lkit.tgz

167

Descripci´on Fuentes 100dpi Fuentes del alfabeto cir´ılico Otras fuentes (chino, japon´es, koreano, hebreo) Fuentes escalables (Speedo y Type1) Servidor de fuentes y ficheros de configuraci´on Ficheros de cabecera de X, ficheros de configuraci´on y bibliotecas de tiempo de compilaci´on Servidor X anidado Servidor X de framebuffer virtual Servidor de impresi´on X Versi´on PostScript de la documentaci´on Versi´on HTML de la documentaci´on Documentaci´on en japon´es (para la versi´on 3.2) Versi´on HTML de la documentaci´on en japon´es (3.2) Kit de enlazado del servidor X

El directorio XFree86 deber´ıa contener ficheros README y apuntes de instalaci´on para la versi´on actual. Despu´es, como root, cree el directorio /usr/X11R6 si no existe todav´ıa. Despu´es ejecute el script de preinstalaci´on, preinst.sh. Deber´ıa copiar del directorio /var/tmp este fichero y todos los ficheros comprimidos para su sistema antes de ejecutar preinst.sh. /usr/X11R6 debe ser el directorio actual cuando se ejecute el script de preinstalaci´on y descomprima todos los ficheros. # cd /usr/X11R6 # sh /var/tmp/preinst.sh

A continuaci´on debe descomprimir los ficheros desde /var/tmp a /usr/X11R6 con una instrucci´on como: # gzip -d superprobe.out

Ejecutar SuperProbe puede provocar que el sistema se cuelgue. Aseg´urese de que no est´an ejecut´andose aplicaciones esenciales, o al menos de que tienen todos sus datos grabados en disco de manera segura, y cerci´orese de que todos los usuarios est´an desconectados. Similarmente, un sistema cargado (que est´a imprimiendo en segundo plano, por ejemplo) puede tergiversar la salida de software como SuperProbe o de un servidor X que est´a intentando medir las especificaciones de tiempo de una tarjeta de v´ıdeo.

5.4. Generar de forma autom´atica el fichero XF86Config Crear el fichero XF86Config a mano es una tarea ardua, sino imposible. Varias herramientas de la versi´on 3.3.1 de XFree86 podr´an ayudarle. Una de ellas, el programa XF86Setup puede generar autom´aticamente un fichero XF86Config con formato correcto. Debe conocer las especificaciones exactas de su tarjeta de v´ıdeo as´ı como los valores de refresco vertical y horizontal de su monitor. La mayor parte de la informaci´on puede ser encontrada en los propios manuales. Hay otros tantos programas de configuraci´on, dependiendo de la distribuci´on GNU/Linux. Los m´as comunes son Xconfigurator y xf86config. El u´ ltimo es una versi´on antigua de XF86Setup y est´a incluido en versiones anteriores de XFree86. Deber´ıa usar siempre XF86Setup en caso de que tenga disponibles e´ ste y xf86config.

5.5. Configurar XFree86 Configurar XFree86 no es dif´ıcil. Sin embargo si ocurre que se est´a usando hardware para el cu´al los controladores est´an en desarrollo, o se desea obtener el mejor rendimiento o resoluci´on de una tarjeta aceleradora, configurar XFree86 puede tomar su tiempo. En este apartado, se describe como crear y editar el fichero XF86Config, que configura el servidor XFree86. En la mayor´ıa de los casos lo mejor es empezar con una configuraci´on XFree86 que utilice baja resoluci´on como 640x480, que sea permitida por la pr´actica totalidad de las tarjetas de v´ıdeo y monitores. Una vez que XFree86 trabaje a una resoluci´on est´andar baja, podr´a modificar la configuraci´on para aprovechar las capacidades de su tarjeta de v´ıdeo. Esto asegura que XFree86 funcione en su sistema y que la instalaci´on es esencialmente correcta antes de que empiece con la a menudo dif´ıcil tarea de configurar XFree86 para un alto rendimiento. Adem´as de la informaci´on listada aqu´ı, deber´ıa leer los siguientes documentos:

5.5. Configurar XFree86

169

La documentaci´on de XFree86 en /usr/X11R6/lib/X11/doc (del paquete XFree86-3.1-doc). Deber´ıa revisar especialmente el fichero README.Config, que es un tutorial de configuraci´on de XFree86. Varios chips de v´ıdeo tienen ficheros separados en el directorio arriba mencionado (como README.Cirrus y README.S3). Lea el fichero que concierne a su tarjeta de v´ıdeo. La p´agina del manual de XFree86. La p´agina del manual de XF86Config. La p´agina del manual del servidor que est´a utilizando, como XF86 SVGA o XF86 S3.

El fichero principal de configuraci´on de XFree86 es /usr/X11R6/lib/X11/XF86Config. Este fichero contiene informaci´on sobre su rat´on, par´ametros de su tarjeta de v´ıdeo, etc. El fichero XF86Config.eg viene con la distribuci´on XFree86 como ejemplo. Copie este fichero a XF86Config y ed´ıtelo como punto de inicio. La p´agina del manual de XF86Config explica el formato del fichero XF86Config. Lea la p´agina del manual si a´un no lo ha hecho. Se va a describir un ejemplo de XF86Config, una secci´on de cada vez. Este fichero puede no resultar exactamente igual al fichero de ejemplo incluido en la distribuci´on de XFree86, pero la estructura es la misma. Observe que el formato del fichero XF86Config puede cambiar con cada versi´on de XFree86. Lea las notas de su distribuci´on para erratas. No copie el fichero de configuraci´on mostrado aqu´ı a su sistema y trate de utilizarlo. Un fichero de configuraci´on que no se corresponda con su hardware puede poner el monitor en frecuencias demasiado altas. Se han dado casos de da˜nos del monitor, especialmente monitores de frecuencia fija, esto ha sido provocado por ficheros XF86Config mal configurados. Cerci´orese completamente de que su fichero XF86Config se corresponde con el hardware antes de utilizarlo. Todas las secciones del fichero XF86Config est´an rodeadas por un par de l´ıneas con la sintaxis Section ‘‘section-name’’. . . EndSection. La primera secci´on del fichero XF86Config es Files, que tiene este aspecto: Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" EndSection

La l´ınea RgbPath establece la ruta a la base de datos de colores RGB de X11R6, y cada l´ınea FontPath pone la ruta a un directorio que contiene fuentes X11. No deber´ıa tener por qu´e modificar estas l´ıneas. Simplemente aseg´urese de que hay una entrada FontPath para cada tipo de fuente que haya instalado; esto es, para cada directorio en /usr/X11R6/lib/X11/fonts. La siguiente secci´on es ServerFlags, que especifica varios flags globales para el servidor. En general esta secci´on est´a vac´ıa. Section "ServerFlags" # Elimine este comentario para provocar un volcado de memoria en el # punto donde se reciba una se˜ nal. Esto puede dejar la terminal en # estado inutilizable, pero puede ofrecer una mejor traza de la pila # para ayudar a depurar en caso de volcado de memoria # NoTrapSignals # Elimine este comentario para deshabilitar la secuencia # de abortar el servidor # DontZap EndSection

En esta secci´on de ServerFlags todas las l´ıneas est´an comentadas. La siguiente secci´on es Keyboard. Este ejemplo muestra una configuraci´on b´asica que deber´ıa funcionar en la mayor´ıa de los sistemas. El fichero XF86Config describe como modificar la configuraci´on.

170

Caracter´ısticas Avanzadas

Section "Keyboard" Protocol "Standard" AutoRepeat 500 5 ServerNumLock EndSection

La siguiente secci´on es Pointer, que especifica par´ametros para el dispositivo de rat´on: Section "Pointer" Protocol Device

"MouseSystems" "/dev/mouse"

# Baudrate y SampleRate se aplican solo a algunos ratones Logitech # BaudRate 9600 # SampleRate 150 # Emulate3Buttons es una opci´ on para ratones Microsoft de 2 botones # Emulate3Buttons # ChordMiddle es una opci´ on para algunos ratones Logitech de 3 botones # ChordMiddle EndSection

De momento las u´ nicas opciones que le preocupan son Protocol y Device. Protocol especifica el rat´on protocol, que no es necesariamente el mismo que el del fabricante. XFree86 bajo GNU/Linux reconoce los siguientes protocolos de rat´on: BusMouse Logitech Microsoft MMSeries Mouseman MouseSystems PS/2 MMHitTab BusMouse deber´ıa ser usado con los ratones de bus Logitech. Los ratones Logitech m´as antiguos utilizan Logitech, y los nuevos ratones serie Logitech utilizan protocolos Microsoft o Mouseman. Device especifica el fichero de dispositivo por el cual el rat´on podr´a ser accedido. En la mayor´ıa de los sistemas GNU/Linux, es /dev/mouse, que generalmente es un enlace al puerto serie apropiado, como /dev/cua0 para ratones serie y el dispositivo de rat´on de bus apropiado para los ratones de bus. En cualquier caso aseg´urese de que el fichero de dispositivo existe. La secci´on siguiente es Monitor, que especifica las caracter´ısticas de su monitor. Como en otras secciones del fichero XF86Config puede haber m´as de una secci´on Monitor. Esto es u´ til si tiene varios monitores conectados al sistema o si utiliza el mismo fichero XF86Config para varias configuraciones de hardware. Section "Monitor" Identifier

"CTX 5468 NI"

5.5. Configurar XFree86

171

# !‘Estos valores son para un CTX 5468NI s´ olo! No intente usarlos # con su monitor (a menos que posea este modelo) Bandwidth HorizSync VertRefresh

60 30-38,47-50 50-90

# Modos: Nombre

dotclock

ModeLine "640x480" 25 ModeLine "800x600" 36 ModeLine "1024x768" 65

horiz

vert

640 664 760 800 800 824 896 1024 1024 1088 1200 1328

480 491 493 525 600 601 603 625 768 783 789 818

EndSection

Identifier es un nombre arbitrario para la entrada Monitor. Puede ser cualquier cadena y se utiliza para referirse m´as tarde a la entrada Monitor en el fichero XF86Config. HorizSync especifica las frecuencias v´alidas horizontales para su monitor, en kHz. Los monitores multisync pueden tener un rango de valores o varios rangos separados por comas. Los monitores de frecuencia fija exigen una lista de valores discretos, por ejemplo: HorizSync

31.5, 35.2, 37.9, 35.5, 48.95

El manual del monitor deber´ıa listar estos valores en la secci´on de especificaciones t´ecnicas. Si no es as´ı, p´ongase en contacto con el fabricante o proveedor del monitor para obtenerlos. VertRefresh especifica los valores v´alidos de refresco vertical (o frecuencias de sincronizaci´on vertical) para su monitor, en kHz. Al igual que HorizSync, puede ser un rango o una lista de valores discretos. El manual de su monitor deber´ıa listarlos. HorizSync y VertRefresh se utilizan solamente para comprobar que las resoluciones del monitor est´an en rangos v´alidos. Esto reduce la posibilidad de que se da˜ne el monitor haci´endolo trabajar a una frecuencia para la que no est´a preparado. La directiva ModeLine se utiliza para especificar los modos de resoluci´on para su monitor. El formato es ModeLine name clock horiz-values vert-values

name es una cadena arbitraria que se utiliza para referirse al modo de resoluci´on m´as tarde en el fichero. dot-clock es la frecuencia de reloj o “dot clock” asociada al modo de resoluci´on. La dot clock se expresa normalmente en MHz. Esta es la proporci´on a la que la tarjeta de v´ıdeo env´ıa pixels al monitor a esta resoluci´on. horiz-values y vert-values son cuatro n´umeros cada uno que especifican cu´ando debe disparar la pistola de electrones del monitor y cuando disparan los pulsos de sincronizaci´on horizontal y vertical en cada barrido. El fichero VideoModes.doc, incluido en la distribuci´on XFree86 describe con detalle como determinar los valores de ModeLine para cada modo de resoluci´on que permita su monitor. clock ha de corresponderse con uno de los valores de dot clock que permita su tarjeta de v´ıdeo. M´as tarde en el fichero XF86Config, podr´a especificarlos. Dos ficheros, modeDB.txt y Monitors, pueden contener los datos de ModeLine para su monitor. Est´an en /usr/X11R6/lib/X11/doc. Empiece con valores de ModeLine para los tiempos de monitores VESA est´andar porque la mayor´ıa de los monitores los permiten. ModeDB.txt incluye los valores de tiempo para las resoluciones VESA est´andar. Por ejemplo la entrada # 640x480@60Hz Modo no entrelazado # Sincronizaci´ on horizontal = 31.5kHz # Tiempos: H=(0.95us, 3.81us, 1.59us), V=(0.35ms, 0.064ms, 1.02ms) # # nombre reloj tiempo horizontal tiempo vertical flags "640x480" 25.175 640 664 760 800 480 491 493 525

172

Caracter´ısticas Avanzadas

es el tiempo VESA est´andar para un modo 640x480. Tiene un dot clock de 25.175 que debe ser permitido por su tarjeta de v´ıdeo como se describe m´as abajo. Para incluir esta entrada en el fichero XF86Config utilice la l´ınea ModeLine "640x480"25.175

640 664 760 800

480 491 493 525

El argumento name a ModeLine ("640x480") es una cadena arbitraria. Por convenci´on los modos se llaman por sus resoluciones, pero name puede t´ecnicamente ser una etiqueta descriptiva. Para cada ModeLine el servidor comprueba las especificaciones del modo y se asegura de que caen dentro del rango de valores especificado por Bandwidth, HorizSync y VertRefresh. Si no es as´ı, el servidor se quejar´a cuando intente iniciar X. Por alguna raz´on, el dot clock utilizado por el modo no deber´ıa ser mayor que el valor utilizado para Bandwidth. Sin embargo, en muchos casos, es seguro utilizar un modo que tenga un ancho de banda ligeramente mayor que el que permite su monitor. Si los tiempos de VESA est´andar no funcionan (lo sabr´a despu´es de que intente utilizarlos) mire los ficheros modeDB.txt y Monitors, que incluyen valores de modo espec´ıficos para muchos tipos de monitor. Tambi´en puede crear las entradas ModeLine a partir de estos valores. Aseg´urese de utilizar s´olo valores para su monitor concreto. Muchos monitores de 14 y 15 pulgadas no permiten modos de resoluci´on mayores y a menudo las resoluciones de 1024x768 son a valores de dot clock bajos. Si no puede encontrar modos de alta resoluci´on para su monitor en estos ficheros, seguramente se debe a que su monitor no los permite. Si est´a completamente perdido y no puede encontrar valores de ModeLine para su monitor, siga las instrucciones del fichero VideoModes.doc, que est´a incluido en la distribuci´on XFree86 y genere valores a partir de las especificaciones del manual de su monitor. Su recorrido seguramente variar´a cuando intente valores de ModeLine a mano. Pero este es un buen lugar donde mirar si no puede encontrar los valores que necesita. VideoModes.doc describe tambi´en el formato de la directiva ModeLine y otros aspectos del servidor XFree86 con detalles escabrosos. Finalmente si logra obtener valores de Modeline que son casi pero no completamente correctos, podr´ıa conseguir modificarlos un poco para alcanzar el resultado deseado. Por ejemplo, si la imagen de XFree86 est´a ligeramente desplazada o la imagen parece “movida,” siga las instrucciones del fichero VideoModes.doc y corrija los valores. Aseg´urese de comprobar los controles del monitor. En muchos casos deber´a cambiar el tama˜no horizontal y vertical de la pantalla tras arrancar XFree86 para centrar y calibrar la imagen. No utilice los valores de tiempo del monitor o los valores de ModeLine para monitores distintos de su modelo. Si intenta hacer funcionar el monitor a una frecuencia para la que no fue dise˜nado, puede da˜narlo o incluso destruirlo. La siguiente secci´on del fichero XF86Config es Device, que especifica par´ametros para la tarjeta de v´ıdeo. Este es un ejemplo. Section "Device" Identifier "#9 GXE 64" # De momento nada, despu´ es se completar´ an estos valores EndSection

Esta secci´on define propiedades para una tarjeta de v´ıdeo concreta. Identifier es una cadena arbitraria descriptiva. Se utilizar´a para referirse a la tarjeta m´as tarde. En principio no necesita incluir nada en la secci´on Device aparte de Identifier. Se usar´a el propio servidor X para comprobar las propiedades de su tarjeta de v´ıdeo y ponerlas en la secci´on Device m´as tarde. El servidor XFree86 es capaz de comprobar el chip de v´ıdeo, relojes, RAMDAC y la cantidad de RAM de v´ıdeo de la tarjeta. Esto se describe en la secci´on 5.6. Antes de hacer esto, hay que acabar de escribir el fichero XF86Config. La siguiente secci´on es Screen, que especifica la combinaci´on monitor/tarjeta de v´ıdeo a utilizar con cada servidor concreto. Section "Screen" Driver "Accel"

5.5. Configurar XFree86

173

Device "#9 GXE 64" Monitor "CTX 5468 NI" Subsection "Display" Depth 16 Modes "1024x768" "800x600" "640x480" ViewPort 0 0 Virtual 1024 768 EndSubsection EndSection

La l´ınea Driver especifica el servidor X que va a utilizar. Valores v´alidos de Driver son: Accel: Para los servidores XF86 S3, XF86 Mach32, XF86 Mach8, XF86 8514, XF86 P9000, XF86 AGX y XF86 W32. SVGA: Para el servidor XF86 SVGA. VGA16: Para el servidor XF86 VGA16. VGA2: Para el servidor XF86 Mono. Mono: Para los drivers monocromos no VGA en servidores XF86 Mono y XF86 VGA16. Aseg´urese de que /usr/X11R6/bin/X es un enlace simb´olico a este servidor. La l´ınea Device especifica el Identifier de la secci´on Device que se corresponde con la tarjeta de v´ıdeo que va a utilizar con este servidor. Anteriormente se cre´o una secci´on Device con la l´ınea Identifier "#9 GXE 64"

Por ello se emplea "#9 GXE 64" en la l´ınea Device ahora. De forma similar, la l´ınea Monitor especifica el nombre de la secci´on Monitor que se va a utilizar con este servidor. Aqu´ı "CTX 5468 NI" es el Identifier utilizado en la secci´on Monitor arriba descrita. Subsection "Display" define varias propiedades del servidor XFree86 correspondientes a su combinaci´on monitor/tarjeta. El fichero XF86Config describe todas estas opciones en detalle, pero la mayor´ıa de ellas no son necesarias para conseguir que el sistema funcione. Las opciones que deber´ıa conocer son: Depth. Define el n´umero de planos de color, es decir, el n´umero de bits por pixel. Normalmente Depth tiene el valor 16. Para el servidor VGA16 deber´ıa utilizar una profundidad de 4 y para el servidor monocromo una profundidad de 1. Si utiliza una tarjeta de v´ıdeo acelerada con bastante memoria para permitir m´as bits por pixel, puede poner Depth a 24 o 32. Si tiene problemas con profundidades mayores de 16, d´ejelo otra vez en 16 e intente resolver el problema m´as tarde. Modes. Esta es la lista de nombres de modos que han sido definidos con las directivas ModeLine en la secci´on anterior. Se emplearon ModeLines llamadas "1024x768", "800x600" y "640x48"0. Por tanto, se utiliz´o una l´ınea Modes con Modes

"1024x768" "800x600" "640x480"

El primer modo mostrado en esta l´ınea es el empleado por defecto cuando arranca XFree86. Una vez que XFree86 est´a funcionando, puede cambiar entre los modos mostrados aqu´ı con las teclas Ctrl Alt - Numeric + y Ctrl - Alt - Numeric - . Lo mejor ser´ıa que cuando configure XFree86 utilice modos de v´ıdeo de resoluci´on m´as bajos como 640x480, que tienden a funcionar en la mayor´ıa de los sistemas. Una vez que tenga la configuraci´on b´asica funcionando, puede modificar XF86Config para permitir resoluciones m´as altas. Virtual. Pone el tama˜no del escritorio virtual. XFree86 puede utilizar memoria adicional de su tarjeta de v´ıdeo para extender el tama˜no del escritorio. Cuando mueva el puntero del rat´on al borde de la pantalla, el escritorio se desplaza poniendo en primer plano el espacio adicional. Incluso si ejecuta

174

Caracter´ısticas Avanzadas

el servidor con una resoluci´on de v´ıdeo como 800x600 puede poner Virtual a la resoluci´on total permitida por la tarjeta de v´ıdeo. Una tarjeta de v´ıdeo de 1 megabyte puede permitir 1024x768 con una profundidad de 8 bits por pixel, una tarjeta de 2 megabytes permite 1280x1024 con una profundidad 8 o 1024x768 con profundidad 16. Por supuesto el a´ rea completa no ser´a visible a la vez, pero puede ser utilizada. La caracter´ıstica Virtual es bastante limitada. Si desea utilizar un aut´entico escritorio virtual los gestores de ventanas como fvwm y similares le permitir´an tener escritorios virtuales grandes tapando ventanas y utilizando otras t´ecnicas, en vez de almacenar el escritorio entero en memoria de v´ıdeo. Vea las p´aginas del manual de fvwm para m´as detalles acerca de esto. Muchos sistemas GNU/Linux utilizan fvwm por defecto. ViewPort. Si est´a utilizando la opci´on Virtual descrita anteriormente, ViewPort pone las coordenadas de la esquina superior izquierda del escritorio virtual cuando se inicia XFree86. Virtual 0 0 es un valor utilizado a menudo. Si no est´a especificado, el escritorio se centra en la pantalla del escritorio virtual, lo que puede no ser lo deseado. Hay muchas otras opciones para esta secci´on, vea la p´agina del manual de XF86Config para una descripci´on exhaustiva. En la pr´actica estas opciones no son necesarias para que funcione XFree86 inicialmente.

5.6.

Rellenando la informaci´on de la tarjeta de v´ıdeo

Ahora ya tiene el fichero XF86Config listo a excepci´on de la informaci´on completa de la tarjeta de v´ıdeo. Se utilizar´a el servidor X para comprobar estos datos y a˜nadirlos a XF86Config. En vez de comprobar esta informaci´on con el servidor X, los valores de XF86Config para muchas tarjetas est´an listados en los ficheros modeDB.txt, AccelCards y Devices. Estos ficheros se encuentran todos en /usr/X11R6/lib/X11/doc. Adem´as hay varios ficheros README para ciertos chips. Deber´ıa mirar estos ficheros para informaci´on de su tarjeta de v´ıdeo y utilizarla (clock values, tipo de chip y otras opciones) en el fichero XF86Config. Si falta alg´un dato, puede comprobarlo. En la mayor´ıa de estos ejemplos se prueban configuraciones de una tarjeta #9 GXE 64, que utiliza el chip XF86 S3. En primer lugar determine el chip de v´ıdeo de la tarjeta. Ejecutar SuperProbe (en /usr/X11R6/bin) le dir´a estos datos, pero debe conocer el nombre del chip tal como es conocido por el servidor X. Para ello, ejecute la instrucci´on X -showconfig

Esto le dar´a los nombres de chips conocidos por el servidor X. (La p´agina del manual para cada servidor X los lista tambi´en.) Por ejemplo con el servidor acelerado XF86 S3 se obtiene: XFree86 Version 3.1 / X Window System (protocol Version 11, revision 0, vendor release 6000) Operating System: Linux Configured drivers: S3: accelerated server for S3 graphics adaptors (Patchlevel 0) mmio_928, s3_generic

Los nombres v´alidos de los chips para este servidor son mmio 928 y s3 generic. La p´agina del manual de XF86 S3 describe estos chips y las tarjetas de v´ıdeo que las usan. En el caso de la tarjeta de v´ıdeo #9 GXE 64, es apropiado mmio 928. Si no sabe qu´e chip se est´a utilizando, el servidor X puede comprobarlo por usted. Para hace esto, ejecute la instrucci´on X -probeonly > /tmp/x.out 2>&1

si utiliza bash como shell. Si utiliza csh, pruebe:

5.6. Rellenando la informaci´on de la tarjeta de v´ıdeo

175

X -probeonly &> /tmp/x.out

Deber´ıa ejecutar esta instrucci´on mientras el sistema no ha sido cargado, es decir, mientras ninguna otra actividad ocurre en el sistema. Esta instrucci´on tambi´en comprueba dot clocks para su tarjeta de v´ıdeo (como se ver´a m´as abajo) y la carga del sistema puede sesgar este c´alculo. La salida de arriba, en /tmp/x.out deber´ıa contener l´ıneas como: XFree86 Version 3.1 / X Window System (protocol Version 11, revision 0, vendor release 6000) Operating System: Linux Configured drivers: S3: accelerated server for S3 graphics adaptors (Patchlevel 0) mmio_928, s3_generic Several lines deleted... (--) S3: card type: 386/486 localbus (--) S3: chipset:

864 rev. 0

(--) S3: chipset driver: mmio_928

Aqu´ı se ve que los dos chips v´alidos para este servidor (en este caso XF86 S3) son mmio 928 y s3 generic. El servidor comprob´o y encontr´o una tarjeta de v´ıdeo que tiene el chip mmio 928. En la secci´on Device del fichero XF86Config a˜nada una l´ınea Chipset que tenga el nombre del chip determinado como arriba. Por ejemplo, Section "Device" # Ya tenemos Identifier aqu´ ı ... Identifier "#9 GXE 64" # A˜ nada esta l´ ınea: Chipset "mmio_928" EndSection

Ahora hay que determinar las frecuencias de funcionamiento del reloj utilizadas por la tarjeta de v´ıdeo. Una frecuencia de funcionamiento del reloj o dot clock, es simplemente una cantidad a la que la tarjeta de v´ıdeo puede enviar pixels al monitor. Como se describi´o m´as arriba, cada resoluci´on de monitor tiene un dot clock asociado a ella. Se requiere determinar qu´e dot clocks se ofrecen con la tarjeta de v´ıdeo. En primer lugar, deber´ıa mirar la documentaci´on arriba mencionada y ver si los dot clocks de la tarjeta est´an listados all´ı. Los dot clocks son generalmente una lista de 8 o 16 valores, todos en MHz. Por ejemplo, si mira en modeDB.txt ver´a una entrada para la tarjeta Cardinal ET4000 que tiene este aspecto: # chip ET4000

ram 1024

virtual 1024 768

clocks 25 28

38

36

40

45

32

default-mode "1024x768"

flags

Los dot clocks para esta tarjeta son 25, 28, 38, 36, 40, 45, 32 y 0 MHz. En la secci´on Devices del arvhivo XF86Config a˜nada una l´ınea Clocks que contenga la lista de los dot clocks para su tarjeta. Por ejemplo, para los dot clocks de arriba, a˜nada la l´ınea Clocks 25 28 38 36 40 45 32 0

a la secci´on Devices del fichero, despu´es de Chipset. El orden de los dot clocks es importante. No reordene la lista o elimine duplicados. Si no puede encontrar los dot clocks asociados con su tarjeta, el servidor X puede comprobarlos tambi´en. Utilice X -probeonly como se describi´o arriba. La salida deber´ıa contener l´ıneas similares a la siguiente: (--) S3: clocks:

25.18

28.32

38.02

36.15

40.33

45.32

32.00

00.00

Se puede a˜nadir una l´ınea Clocks que contenga todos estos valores. Puede utilizar m´as de una l´ınea Clocks en XF86Config si todos los valores (a veces hay m´as de 8 valores de clock) no caben en una u´ nica l´ınea. De nuevo aseg´urese de poner la lista de clocks en el orden en que aparecen.

176

Caracter´ısticas Avanzadas

Aseg´urese de que no hay l´ıneas de Clocks (o de que est´an comentadas) en la secci´on Devices del fichero cuando utilice X -probeonly. Si hay una l´ınea Clocks presente, el servidor no comprueba los clocks, emplea los valores de XF86Config. Algunas tarjetas de v´ıdeo utilizan un chip de reloj programable. Mire la p´agina del manual de su servidor X o el fichero README de XFree86 que describe su tarjeta de v´ıdeo. Esencialmente, el chip permite que el servidor X le diga a la tarjeta los dot clocks a usar. Para tarjetas de v´ıdeo que tienen clock chips, puede ser que no encuentre una lista de los dot clocks para la tarjeta en ninguno de los ficheros arriba mencionados o que la lista de dot clocks impresa cuando utilice X -probeonly contenga uno o dos valores discretos de clock, siendo los dem´as duplicados o cero. O tambi´en puede que el servidor X s´olo facilite un aviso expl´ıcito de que la tarjeta de v´ıdeo tiene un chip de reloj programable como: (--) SVGA: cldg5434: Specifying a Clocks line makes no sense for this driver

Este ejemplo est´a sacado de un servidor XF86 SVGA con tarjeta Cirrus Logic PCI. Para tarjetas que emplean chips de reloj programables, utilice una l´ınea ClockChip en vez de una l´ınea de Clocks en el fichero XF86Config. ClockChip es el nombre del chip de reloj tal como es usado por la tarjeta de v´ıdeo. Las p´aginas del manual de cada servidor los describen. Por ejemplo en el fichero README.S3, se puede observar que varias tarjetas de v´ıdeo S3-864 utilican un chip de reloj “ICD2061A” y que se debe utilizar la l´ınea ClockChip "icd2061a"

en vez de Clocks en el fichero XF86Config. Esta l´ınea como la de Clocks, va dentro de la secci´on Devices, tras Chipset. De modo similar, algunas tarjetas de v´ıdeo exigen que especifique el tipo de chip RAMDAC en el fichero XF86Config. Esto puede hacerse con una l´ınea Ramdac. La p´agina del manual XF86 Accel describe esta opci´on. A menudo el servidor X ser´a capaz de calcular el RAMDAC correctamente. Algunas tarjetas de v´ıdeo exigen que especifique varias opciones en la secci´on Devices de XF86Config. Estas opciones se describen en la p´agina del manual del servidor, as´ı como en varios ficheros como README.cirrus y README.S3. Estas opciones se habilitan con una l´ınea Option. Por ejemplo la tarjeta #9 GXE 64 necesita dos opciones: Option "number_nine" Option "dac_8_bit"

Un servidor X puede funcionar sin las l´ıneas Option, pero son necesarias para lograr el mejor rendimiento de la tarjeta. Hay tambi´en muchas otras opciones que listar aqu´ı, son diferentes para cada tarjeta. Si debe usar una, las p´aginas del manual del servidor X y varios ficheros en /usr/X11R6/lib/X11/doc le dir´an cu´ales son. Cuando termine, deber´ıa tener una secci´on Devices que se parezca a esta: Section "Device" # ‘ Secci´ on Device s´ olo para la #9 GXE 64 ! Identifier "#9 GXE 64" Chipset "mmio_928" ClockChip "icd2061a" Option "number_nine" Option "dac_8_bit" EndSection

Hay otras opciones que puede incluir en la entrada Devices. Las p´aginas del manual del servidor X ofrecen los detalles exactos.

5.7.

Ejecutar XFree86.

Con el fichero XF86Config ya configurado, puede arrancar el servidor X y darse una vuelta. De nuevo, aseg´urese de que el directorio /usr/X11R6/bin est´a en el path. La orden para arrancar XFree86 es

5.8. Si se l´ıa demasiado el asunto

177

startx

No es m´as que una fachada de xinit. Inicia el servidor X y ejecuta las o´ rdenes del fichero .xinitrc de su directorio home. .xinitrc es un script del shell que contiene las l´ıneas de o´ rdenes de los clientes X para ejecutarse cuando arranque el servidor X. Si este fichero no existe se utiliza por defecto el /usr/X11R6/lib/X11/xinit/xinitrc del sistema. Un fichero .xinitrc sencillo tiene este aspecto: #!/bin/sh xterm -fn 7x13bold -geometry 80x32+10+50 & xterm -fn 9x15bold -geometry 80x34+30-10 & oclock -geometry 70x70-7+7 & xsetroot -solid midnightblue & exec twm

Este script inicia dos clientes xterm y un oclock y pone el color de la ventana principal (background) a midnightblue. Inicia twm, el gestor de ventanas. twm se ejecuta con la instrucci´on del shell exec. Esto provoca que el proceso init sea reemplazado por twm. Despu´es de que el proceso twm finalice, el servidor X se desconecta. Puede provocar la finalizaci´on de twm utilizando el men´u principal. Pulse el bot´on 1 del rat´on en el fondo del escritorio. Se desplegar´a un men´u que le permitir´a elegir Exit Twm. Aseg´urese de que la u´ ltima instrucci´on de .xinitrc empieza con exec y de que no se lanza en segundo plano (no debe haber ampersand al final de la l´ınea). Si no, el servidor X se desconectar´a en cuanto inicie los programas cliente del fichero .xinitrc. Alternativamente, puede salir de X pulsando a la vez Ctrl - Alt - Backspace . Esto mata al proceso del servidor X directamente, saliendo del sistema de ventanas. Arriba se muestra una configuraci´on simple del escritorio. De nuevo se sugiere que lea un libro como The X Window System: A User’s Guide (vea Ap´endice A). Las posibles variaciones en el uso de X y su configuraci´on son demasiadas para describirlas aqu´ı. Las p´aginas de manual de xterm, oclock y twm le ofrecen pistas acerca de c´omo empezar.

5.8.

Si se l´ıa demasiado el asunto

A menudo tendr´a algun problema con algo que no funcione a la perfecci´on la primera vez que inicie el servidor X. Esto est´a provocado casi siempre por algo en su fichero XF86Config. Normalmente los valores de tiempo del monitor o los dot clocks de la tarjeta gr´afica contienen valores incorrectos. Si la pantalla parece movida o los bordes son borrosos es un indicativo de que los valores de tiempo del monitor o de los dot clocks son err´oneos. Aseg´urese tambi´en de que especific´o correctamente el chip de la tarjeta de v´ıdeo y dem´as opciones en la secci´on Device de XF86Config. Cerci´orese absolutamente de que est´a usando el servidor X correcto y de que /usr/X11R6/bin/X es un enlace simb´olico a e´ l. Si algo m´as falla, intente iniciar X “desnudo”, es decir con una orden como: X > /tmp/x.out 2>&1

Entonces podr´a matar el servidor X (con Ctrl - Alt - Backspace ) y examinar los contenidos de /tmp/x.out. El servidor X informa de cualquier aviso o error, por ejemplo, si su tarjeta de v´ıdeo no tiene un dot clock correspondiente al modo permitido por su monitor. El fichero VideoModes.doc incluido en la distribuci´on XFree86 contiene muchas ayudas para ajustar los valores de su fichero XF86Config. Recuerde que puede utilizar Ctrl - Alt - Numeric + y Ctrl - Alt - Numeric - para cambiar entre los modos de v´ıdeo listados en la l´ınea Modes de la secci´on Screen de XF86Config. Si el modo de resoluci´on m´as alto no tiene buen aspecto, intente cambiar a una resoluci´on m´as baja. Al menos esto le deja averiguar qu´e partes de su configuraci´on de X est´an funcionando correctamente.

178

Caracter´ısticas Avanzadas

Ajuste tambi´en los botones de tama˜no vertical y horizontal de su monitor. En muchos casos, es necesario ajustarlos cuando inicie X. Por ejemplo si la pantalla parece estar ligeramente desplazada a un lado, muchas veces puede corregir esto utilizando los controles del monitor. De nuevo, el grupo de noticias de USENET comp.windows.x.i386unix est´a dedicado a discusiones acerca de XFree86. Ser´ıa buena idea leer los grupos de noticias relacionados con configuraci´on de v´ıdeo. Puede ser que se encuentre a alguien con el mismo problema. Tambi´en hay ficheros XF86Config de ejemplo creados por usuarios. Algunos de ellos est´an disponibles en el dep´osito de sunsite.unc.edu en el directorio /pub/Linux/X11 y en otros lugares. Tambi´en podr´ıa encontrar un fichero de configuraci´on que alguien haya escrito ya para su hardware.

Cap´ıtulo 6

Redes En este cap´ıtulo se ver´an las cuestiones relacionadas con las Redes —como configurar una conexi´on, usar TCP/IP, SLIP, PPP o UUCP, el correo electr´onico y las noticias.

6.1. Redes TCP/IP GNU/Linux soporta una implementaci´on completa de los protocolos de red TCP/IP (Transport Control Protocol/Internet Protocol). TCP/IP ha resultado ser hasta ahora el mejor mecanismo de comunicaci´on entre ordenadores de todo el mundo. Con GNU/Linux y una tarjeta Ethernet podr´a conectar su m´aquina a una red local o (si se tienen las conexiones apropiadas) a la Internet, la red TCP/IP de a´ mbito mundial. Poner en marcha una peque˜na red local de m´aquinas Unix es f´acil. S´olo requiere una tarjeta Ethernet en cada m´aquina y los cables adecuados as´ı como hardware accesorio (terminadores, etc). Y si su universidad o empresa tiene acceso a Internet, podr´a conectar su m´aquina GNU/Linux en esta red. La implementaci´on actual de TCP/IP y los protocolos relacionados para GNU/Linux se llama “NET-3”, anteriormente se llamaba “NET-2”. No tiene que ver con la versi´on NET-2 para BSD Unix. En realidad, se refiere a que es la segunda implementaci´on de TCP/IP que se hace para GNU/Linux. NET-3 de GNU/Linux soporta tambi´en SLIP (Serial Line Internet Protocol) y PPP (Point to Point Protocol). SLIP y PPP le permiten disponer de acceso telef´onico a Internet con un m´odem. Si su universidad o empresa proporciona accesos por SLIP o PPP, podr´a llamar desde su casa al servidor SLIP o PPP y conectarse as´ı a la Red. Rec´ıprocamente, si tiene una m´aquina GNU/Linux con acceso a Internet a trav´es de una Ethernet y con un m´odem, podr´a configurar GNU/Linux como un servidor SLIP o PPP. Para obtener m´as informaci´on sobre la configuraci´on de TCP/IP en GNU/Linux, le animamos a que lea el documento NET-3 HOWTO, disponible mediante FTP an´onimo en sunsite.unc.edu. Se trata de una gu´ıa completa de configuraci´on de TCP/IP, que incluye conexiones mediante Ethernet, SLIP y PPP. Otro documento relacionado es el Ethernet HOWTO, que se centra en c´omo configurar diversos modelos de tarjetas Ethernet. Adem´as, en el Proyecto de Documentaci´on de GNU/Linux, al que pertenece este libro, se ha desarrollado otro sobre este tema, Gu´ıa del Administrador de Redes Linux (garl). Vea, para m´as informaci´on el ap´endice A y el Ap´endice B. Otro libro interesante es TCP/IP Network Administration, de Craig Hunt. Contiene informaci´on completa acerca del uso y la configuraci´on de TCP/IP en m´aquinas Unix.

Hardware necesario. Puede utilizar TCP/IP para GNU/Linux sin ning´un hardware de red configurando el modo “bucle local” con la que se puede hablar con uno mismo. Hay algunos programas que necesitan conexiones de red en“bucle local” para funcionar. Sin embargo, si quiere usar GNU/Linux en una red TCP/IP Ethernet, necesitar´a una tarjeta Ethernet. Est´an soportadas las tarjetas m´as comunes como 3com 3c503, HP PCLAN (27245 y las series 27xxx), Western Digital WD80x3, y Novell NE2000/NE1000 al igual que muchas m´as. Si quiere m´as detalles consulte los

179

180

Redes

´ COMOS sobre Ethernet y sobre el hardware soportado. Hay algunos casos especiales a tener en cuenta con las tarjetas soportadas: 1) Algunas tarjetas est´an soportadas pero ofrecen un rendimiento pobre o tienen algunas restricciones. Esto sucede, por ejemplo, con la 3Com 3C501 que funciona pero con un horrible rendimiento y con la Racal-Interlan NI6510 que utiliza el chip am7990 la cual no funciona con m´as de 16 megas de RAM. Igualmente, muchas tarjetas que son ´ cl´onicas compatibles con NE1000/NE2000 pueden tener distintos problemas. Consulte los COMOS sobre Ethernet de GNU/Linux si desea una discusi´on completa acerca de la compatibilidad del hardware Ethernet. GNU/Linux tambi´en soporta SLIP y PPP, que permiten utilizar un m´odem para acceder a Internet a trav´es de una l´ınea telef´onica. En este caso, necesitar´a un m´odem compatible con su servidor SLIP o PPP; la mayor´ıa de servidores necesitan un m´odem a 14,4bps V32bis como m´ınimo. Se obtiene un mayor rendimiento con m´odems a 33.6bps o superiores.

6.1.1.

Configuraci´on de TCP/IP en su sistema

En esta secci´on intentaremos explicar c´omo configurar una conexi´on TCP/IP con Ethernet. N´otese que este m´etodo tendr´ıa que funcionar en muchos sistemas, pero no en todos. Nuestra explicaci´on deber´ıa ser suficiente para aclararle el camino en la configuraci´on de los par´ametros red de su m´aquina, pero hay adem´as otros trucos y detalles que no mencionaremos aqu´ı. Le aconsejamos que consulte los documentos Gu´ıa del Admiistrador de Redes GNU/Linux y NET-3 HOWTO para m´as informaci´on.1 En primer lugar, vamos a asumir que su sistema GNU/Linux ha sido instalado con el software TCP/IP. Esto incluye clientes b´asicos como telnet y ftp, o´ rdenes de administraci´on del sistema como ifconfig y route (que suelen estar en /etc) y ficheros de configuraci´on de red, como /etc/hosts. Los documentos adicionales que hemos mencionado anteriormente explican c´omo instalar todo ese software si a´un no lo ha hecho. Tambi´en vamos a suponer que el n´ucleo se ha configurado y compilado habilitando el soporte TCP/IP. Vea la secci´on 4.9 para informarse de c´omo recompilar el n´ucleo. Para incluir el soporte de red, tendr´a que contestar afirmativamente a la pregunta correspondiente que se le har´a durante la instrucci´on make config, y a continuaci´on recompilar el n´ucleo. Una vez hecho esto, se deben modificar algunos ficheros de configuraci´on que usa NET-3. Esta parte suele ser bastante simple. Lamentablemente hay bastante desacuerdo entre las distribuciones de GNU/Linux sobre d´onde deben ir los distintos ficheros de configuraci´on y programas de soporte de TCP/IP. Normalmente pueden encontrarse en /etc, pero en otros casos est´an en /usr/etc /usr/etc/inet o incluso en lugares m´as rebuscados. En el peor caso tendr´a que usar la orden find para localizar los ficheros. Tenga en cuenta tambi´en que no todas las distribuciones mantienen los ficheros y software de NET-3 en el mismo sitio y pueden estar esparcidos en varios directorios. Lo siguiente es fundamentalmente aplicable a conexiones Ethernet. Si lo que va a usar es SLIP o PPP, l´ease esta secci´on para ir entendiendo los conceptos y luego vea las instrucciones espec´ıficas en las secciones siguientes. La configuraci´on de red. Antes de configurar su sistema con TCP/IP necesita conocer cierta informaci´on sobre la red. En muchos casos, el administrador local se la proporcionar´a. Direcci´on IP. Es la direcci´on exclusiva de cada m´aquina, formada por n´umeros separados por puntos. Por ejemplo, 128.253.153.54. El administrador de red le dar´a este n´umero. Si s´olo est´a configurando el modo “bucle local” (o sea sin SLIP ni Ethernet, u´ nicamente conexiones TCP/IP a su propia m´aquina) su direcci´on IP ser´a 127.0.0.1. M´ascara de red 2 . Es un n´umero similar a la direcci´on IP, que determina qu´e parte de la direcci´on IP determina el n´umero de sub-red, y qu´e parte especifica el host en la sub-red (si tiene dudas sobre estos conceptos de redes TCP/IP le recomendamos que lea alguna introducci´on a la administraci´on de redes). 1 Algunas 2 N.

de las cosas que aqu´ı se exponen proceden del documento NET-3 HOWTO de Terry Dawson y Matt Welsh. del T.: netmask

Redes TCP/IP

181

La m´ascara de red es un patr´on de bits, que al ser superpuesto a una direcci´on de la red, le dir´a en qu´e sub-red se encuentra esa direcci´on. Esto es muy importante para el rutado y, si usted nota que puede comunicar con gente de redes externas pero no con gente de su misma red, hay muchas probabilidades que tenga mal puesta la m´ascara. Los administradores de la red habr´an seleccionado las m´ascaras de red cuando se dise˜no´ la red, y ser´an quienes deban darle la m´ascara correcta a utilizar. La mayor´ıa de redes son subredes de clase C las cuales usan la m´ascara 255.255.255.0. Las redes de clase B usan 255.255.0.0. El c´odigo de NET3 seleccionar´a autom´aticamente, si usted no especifica ninguna, una m´ascara que asume que no hay subred. Todo esto debe aplicarse tambi´en al puerto del “bucle local”. Dado que la direcci´on del “bucle local” es siempre 127.0.0.1, la m´ascara siempre ser´a 255.0.0.0. Puede especificarla de forma expl´ıcita o dejar que el sistema la ponga por defecto. Direcci´on de red. Es el resultado de la operaci´on l´ogica AND entre su direcci´on IP y la m´ascara. Por ejemplo, si su direcci´on IP es 128.253.154.32 y la m´ascara es 255.255.255.0, su direcci´on de red es 128.253.154.0. Con una m´ascara 255.255.0.0, la direcci´on ser´ıa 128.253.0.0. Si utiliza s´olo la configuraci´on en “bucle local”, la direcci´on de red no existe. Direcci´on de “broadcast”. Se utiliza para emitir paquetes que deben recibir todas las m´aquinas de la subred. As´ı pues, si el n´umero de host de la subred se obtiene mediante el u´ ltimo octeto de la direcci´on IP (o sea, la m´ascara es 255.255.255.0), su direcci´on de “broadcast” ser´a su direcci´on de red operado un OR con 0.0.0.255. Por ejemplo, si su n´umero IP es 128.253.154.32, y la m´ascara es 255.255.255.0, la direcci´on de “broadcast” ser´ıa la 128.253.154.255. Observe que por motivos hist´oricos, algunas subredes est´an configuradas para usar la direcci´on de red como direcci´on de “broadcast”. Si tiene dudas, consulte con el administrador de la red. En muchos casos, bastar´a con copiar la configuraci´on que tengan otras m´aquinas de la subred y cambiar u´ nicamente el valor IP, por supuesto. La direcci´on “broadcast” tampoco tiene utilidad en una configuraci´on en “bucle local”. Direcci´on de pasarela. Se trata de la direcci´on de la m´aquina que va a ser su puerta al mundo exterior (el resto de m´aquinas que no est´an en su misma subred) . Muchas veces es la misma direcci´on IP que la suya, s´olo que terminada en “.1”. Por ejemplo, si su direcci´on IP es 128.253.154.32, la de la pasarela podr´ıa ser la 128.253.154.1. El administrador se la dir´a en cualquier caso. En realidad se puede tener varias pasarelas. Una pasarela o gateway es simplemente una m´aquina que se encuentra a la vez en dos subredes (tiene una direcci´on IP por cada una), y direcciona los paquetes entre ellas. En muchas subredes existe una sola pasarela para comunicarse con las redes externas, pero en otras hay varias, una para cada subred adyacente. Si su red est´a aislada de otras, o su m´aquina se encuentra en configuraci´on de “bucle local”, no necesitar´a direcci´on de pasarela. Direcci´on del servidor de nombres. Suele existir un servidor que traduce nombres de m´aquinas a direcciones IP. El administrador le facilitar´a la direcci´on del servidor de nombres. Tambi´en puede ejecutar en su propia m´aquina un servidor de nombres con el programa named, en cuyo caso la direcci´on del servidor de nombres ser´a la 127.0.0.1. A menos que realmente lo necesite, le recomendamos que procure siempre usar otra m´aquina distinta. La configuraci´on de named es otro tema; y lo primordial aqu´ı es que comunique con la red. Puede tratar estos asuntos m´as tarde. En una configuraci´on de “bucle local” no es necesario un servidor de nombres. Nota para usuarios de SLIP/PPP: La informaci´on anterior puede necesitarla o no. Cuando use SLIP su direcci´on IP ser´a determinada de dos formas: bien “est´atica”, lo que significa que ser´a siempre la misma,

182

Redes

o bien “din´amica”, lo que indica que le ser´a asignada una de las disponibles cada vez que conecte con el servidor SLIP. En la secci´on sobre SLIP ampliaremos el tema. NET-3 implementa rutado completo, m´ultiples rutas, subredes (actualmente s´olo las limitadas por bytes) etc. Lo anterior describe las configuraciones de TCP/IP m´as b´asicas. Pero la suya puede ser diferente: cuando tenga alguna duda, consulte a los gur´us de la red, y eche un vistazo a las p´aginas de manual para route e ifconfig. La configuraci´on completa de redes TCP/IP supera ampliamente las intenciones de este libro, y con lo anterior s´olo pretendemos posibilitar que todo el mundo pueda poner en marcha su sistema en una red ya configurada. Los ficheros rc para trabajo en redes Los ficheros rc son scripts de configuraci´on general del sistema. Son ejecutados por el proceso init, y ponen en marcha los demonios b´asicos (como sendmail, cron etc.) y adem´as configuran par´ametros de la red como la direcci´on IP y el nombre del host. Los ficheros rc suelen estar en el directorio /etc/rc.d, pero hay sistemas en que est´an en /etc. En General las distribuciones Slackware usan los ficheros rc.inet1 etc. en /etc/rc.d mientras que las distribuciones RetHat usan un conjunto de subdirectorios. Lo que vamos a hacer aqu´ı es describir los ficheros rc que configuran TCP/IP. Son dos: rc.inet1 y rc.inet2. El primero configura par´ametros b´asicos de la red (como direcciones IP e informaci´on de rutado). El segundo lanza los demonios TCP/IP (telnetd ftpd y dem´as). En muchos sistemas se juntan los dos ficheros en uno, el rc.inet o rc.net. No tiene importancia el nombre concreto de los ficheros rc, siempre que realicen las funciones correctas y que sean ejecutados durante el arranque por init. Para conseguirlo, puede que tenga que editar /etc/inittab y quitar los comentarios de las l´ıneas que ejecutan los ficheros rc. En el peor caso tendr´ıa usted que crear desde cero los ficheros rc.inet1 y rc.inet2 y a˜nadir las entradas adecuadas en el fichero inittab. Como hemos dicho, rc.inet1 configura los par´ametros b´asicos de red. Esto incluye el n´umero IP y la direcci´on de red, y la tabla de rutado. Estas tablas se usan para rutar los datagramas entrantes y salientes de otras m´aquinas. En el caso m´as simple existen tres rutas: una para enviar paquetes a su propia m´aquina, otra para enviarlos a otras m´aquinas de la subred y una tercera para enviarlos a m´aquinas de otras subredes (a trav´es de la pasarela). Para configurar esto se usan los programas ifconfig y route, programas que suelen estar en /etc. ifconfig se utiliza para configurar la interfaz de dispositivo de red con los par´ametros que necesita, como la direcci´on IP, la m´ascara, direcci´on de broadcast y otros. route, por su lado, se utiliza para crear o modificar entradas de la tabla de rutado. Para muchas configuraciones, el siguiente rc.inet1 puede valer. Aunque, por supuesto, necesitar´a editarlo para adecuarlo a su sistema. No utilice las direcciones IP y de red del ejemplo para su propio sistema; estas corresponden a una m´aquina real de Internet. #!/bin/sh # Este fichero es /etc/rc.d/rc.inet1 -- Configuraci´ on de las interfaces TCP/IP # Primero, configurar el dispositivo bucle local HOSTNAME=‘nombre_de_host‘ /etc/ifconfig lo 127.0.0.1 /etc/route add 127.0.0.1

# utiliza la m´ ascara de red por defecto 255.0.0.0 # ruta que apunta al dispositivo bucle local

# Siguiente paso, configurar el dispositivo ethernet. Si usted s´ olo utiliza bucle local o # SLIP, ponga comentarios al resto de estas l´ ıneas. # Editar estos valores para su configuraci´ on. IPADDR="128.253.154.32" # SUSTITUYA con SU direcci´ on IP. NETMASK="255.255.255.0" # SUSTITUYA con SU m´ ascara de subred. NETWORK="128.253.154.0" # SUSTITUYA con SU direcci´ on de red. BROADCAST="128.253.154.255" # SUSTITUYA con SU direcci´ on de broadcast, si dispone.

Redes TCP/IP

GATEWAY="128.253.154.1"

183

# de una. Si no, dejar en blanco y editar la l´ ınea de abaj # SUSTITUYA con SU direcci´ on de pasarela.

/etc/ifconfig eth0 ${IPADDR} netmask ${NETMASK} broadcast ${BROADCAST} # Si no tiene direcci´ on de broadcast, cambie la l´ ınea anterior por: # /etc/ifconfig eth0 ${IPADDR} netmask ${NETMASK} /etc/route add ${NETWORK} # La l´ ınea siguiente s´ olo es necesaria si dispone de una pasarela; o sea que su red est´ a # conectada al mundo exterior. /etc/route add default gw ${GATEWAY} metric 1 # Fin de la configuraci´ on Ethernet

Quiz´as tenga que estudiarse un poco m´as el tema para su instalaci´on particular, aunque en la mayor parte de los casos el fichero anterior ser´a suficiente. rc.inet2 arranca servidores usados por TCP/IP. El m´as importante es inetd. Inetd queda en segundo plano y escucha por varios puertos de la red. Cuando una m´aquina intenta conectarse por uno de ellos (por ejemplo, por el de telnet), inetd arranca una copia del servidor correspondiente a ese puerto (para telnet arranca in.telnetd). Esto es mejor que mantener en ejecuci´on todos los servidores de red necesarios (m´ultiples copias de telnetd, ftpd y dem´as). inetd arranca los demonios conforme se van necesitando. Syslogd es el demonio de registro del sistema. Se ocupa de acumular los mensajes de registro generados por diversas aplicaciones almacen´andolos en ficheros de registro seg´un las instrucciones del fichero /etc/syslogd.conf. routed es un servidor que se ocupa de la informaci´on de rutado din´amica. Cuando su sistema intenta enviar paquetes a otra red, puede requerir nuevas entradas en las tablas de rutado. routed se encarga de manipular la tabla de rutado sin necesidad de intervenci´on del usuario. El ejemplo de rc.inet2 siguiente s´olo arranca un n´umero m´ınimo de servidores. Existen otros servidores que pueden interesarle, todos ellos relacionados con NFS. Cuando instale TCP/IP en su sistema, es mejor empezar con una configuraci´on sencilla y luego ir a˜nadiendo partes m´as complicadas (como NFS) a medida que funcionan las anteriores. Observe que en el fichero siguiente se asume que los servidores de red se encuentran en /etc. Como es normal, tiene que editar este fichero para adecuarlo a su propia configuraci´on. #! /bin/sh # Ejemplo de /etc/rc.d/rc.inet2 # Arrancar syslogd if [ -f /etc/syslogd ] then /etc/syslogd fi # Arrancar inetd if [ -f /etc/inetd ] then /etc/inetd fi # Arrancar routed if [ -f /etc/routed ] then /etc/routed -q fi

184

Redes

# Hecho!

Otro servidor que puede interesarle arrancar desde rc.inet2 es named. named es un servidor de nombres, que traducir´a nombres (locales) a direcciones IP y viceversa. Si no hay servidor de nombres en su subred o quiere proporcionar nombres nuevos a la misma, necesitar´a arrancar named (sin embargo para la mayor´ıa de configuraciones no es necesario). La configuraci´on de named es un poco compleja y requiere cierto cuidado y planificaci´on, por lo que le recomendamos consultar bibliograf´ıa espec´ıfica. El fichero /etc/hosts /etc/hosts contiene una lista de direcciones IP y nombres de m´aquinas que les corresponden. En general, /etc/hosts s´olo contiene entradas para su m´aquina y quiz´as alguna otra “importante”, como servidores de nombres o pasarelas. El servidor de nombres local convierte autom´aticamente los nombres de otras m´aquinas a su direcci´on IP. Por ejemplo, si su m´aquina es loomer.vpizza.com con la direcci´on IP 128.253.154.32, su /etc/hosts ser´ıa como este: 127.0.0.1 128.253.154.32

localhost loomer.vpizza.com loomer

Si solo usa el “bucle local”, la u´ nica l´ınea necesaria en /etc/hosts es la que tiene el n´umero 127.0.0.1, a˜nadiendo tras localhost el nombre de su m´aquina. El fichero /etc/networks El fichero /etc/networks contiene los nombres y las direcciones de su red y otras. Es usado por la orden route y permite, si lo desea, referirse a las redes por nombre. Cada subred para la que quiera a˜nadir una ruta con el mandato route (generalmente llamado desde rc.inet1 como se ha descrito antes) debe aparecer en el fichero /etc/networks. Por ejemplo, default loopnet mynet

0.0.0.0 127.0.0.0 128.253.154.0

# rutado por defecto - obligatorio # red de ’bucle local’ - obligatorio # Ponga aqui su direccion de red

El fichero /etc/host.conf Este fichero dice a su sistema c´omo resolver los nombres de los hosts. Debe contener dos l´ıneas: order hosts,bind multi on

Estas l´ıneas indican a los mecanismos de resoluci´on que empiezen buscando en el fichero /etc/hosts y luego pregunten al servidor de nombres, si existe. La entrada multi permite que para un nombre de m´aquina haya varias direcciones IP en /etc/hosts. El fichero /etc/resolv.conf En este fichero se configura el mecanismo de resoluci´on, especificando la direcci´on del servidor de nombres (si existe) y el nombre del dominio de su m´aquina. El nombre de dominio es el nombre de host completamente calificado (si su m´aquina tiene un nombre Internet registrado) pero cortando el nombre de host. O sea, si su m´aquina se llama loomer.vpizza.com, el dominio es simplemente vpizza.com. Por ejemplo, si su m´aquina es goober.norelco.com, y dispone de un servidor de nombres en la direcci´on 128.253.154.5, su /etc/resolv.conf tendr´ıa este aspecto: domain nameserver

norelco.com 127.253.154.5

Con l´ıneas nameserver adicionales podr´a especificar la existencia de varios servidores de nombres.

Redes TCP/IP

185

Ajuste del nombre de su host Para establecer el nombre de su host deber´ıa usar la orden hostname. Esto suele hacerse desde el fichero /etc/rc o /etc/rc.local. Busque en sus ficheros rc y localice desde d´onde se llama. Por ejemplo, si su nombre de host completo es loomer.vpizza.com, edite el archivo rc correspondiente para que ejecute el mandato: /bin/hostname loomer.vpizza.com

Tenga en cuenta que el ejecutable hostname puede no encontrarse en el directorio bin de su sistema. A ver si funciona. Una vez que haya puesto a punto los ficheros anteriores, deber´ıa reiniciar GNU/Linux e intentar utilizar la red. Hay muchos sitios donde las cosas pueden fallar, por lo que es mejor probar partes independientes de la configuraci´on de red (no es una buena idea probar la configuraci´on de la red ejecutando Mosaic a trav´es de una conexi´on de red X). ´ Con la orden netstat puede ver las tablas de encaminamiento. Esta suele ser la principal fuente de problemas. En la p´agina del manual para esta instrucci´on encontrar´a detallada la sintaxis adecuada. Para comprobar que funciona su conexi´on, le sugerimos probar un cliente como telnet para ver si puede conectarse a m´aquinas de su subred y de otras redes. Esto le ayudar´a a delimitar el origen del problema. Por ejemplo, si puede conectarse a m´aquinas de otras subredes pero no de la suya propia, es m´as que probable que se trate de un problema con la m´ascara de red o las tablas de encaminamiento. Ejecutando route como root podr´a modificar directamente con las entradas de la tabla. Tambi´en deber´ıa hacer pruebas de conectividad utilizando direcciones IP directamente en lugar de nombres. As´ı, si tiene problemas para ejecutar $ telnet shoop.vpizza.com

la causa puede ser una configuraci´on incorrecta del servidor de nombres. Si funciona usando la direcci´on IP, se puede casi asegurar que el resto de la configuraci´on est´a bien hecha y que el problema se encuentra en la direcci´on del servidor de nombres. La depuraci´on de configuraciones de red puede ser tarea dif´ıcil, y no podemos tratarla aqu´ı. Le sugerimos, si no consigue otra ayuda, que consulte el libro Gu´ıa del Administrador de Redes Linux de esta misma serie.

6.1.2.

Configuraci´on de SLIP

El protocolo SLIP (Serial Line Internet Protocol3 ) permite utilizar TCP/IP mediante una l´ınea serie, como puede ser una l´ınea telef´onica con m´odem o cualquier tipo de l´ınea dedicada as´ıncrona. Por supuesto, para usar SLIP tiene que tener acceso a un servidor SLIP. Muchas empresas y universidades proporcionan acceso SLIP por poco dinero. Existen principalmente dos programas relacionados con SLIP: dip y slattach. Ambos se usan para iniciar una conexi´on SLIP sobre un dispositivo serie. Es necesario utilizar uno de estos dos programas para habilitar SLIP; no es suficiente con llamar al servidor SLIP con programas como kermit y despu´es usar las instrucciones ifconfig y route. Esto se debe a que dip y slattach realizan una llamada del sistema ioctl() especial para hacerse con el control del dispositivo serie y ponerlo a disposici´on de la interfaz de SLIP. Con dip puede llamarse a un servidor SLIP, hacer ciertas negociaciones de entrada con el mismo (intercambio de usuario y password, por ejemplo) y despu´es iniciar la conexi´on SLIP. Por su lado, slattach se limita pr´acticamente a modificar la l´ınea serie para que la utilice SLIP, por lo que est´a indicado para l´ıneas dedicadas que no requieren interacci´on con el m´odem o ni ninguna negociaci´on de protocolo. Casi todo el mundo, sin embargo, usa dip. Con dip tambi´en puede configurar su sistema GNU/Linux como servidor SLIP, permitiendo a otras m´aquinas hacer una llamada telef´onica y conectarse a la red a trav´es de su m´odem y su conexi´on Ethernet. Vea la documentaci´on y los manuales en l´ınea de dip para m´as informaci´on. A SLIP se le llama conexi´on “punto a punto” (point-to-point) pues a ambos lados de la l´ınea existen s´olo las dos m´aquinas involucradas (no como sucede en una ethernet). Esta idea se generaliza y mejora con el protocolo PPP (point-to-point protocol) que tambi´en se ha portado a GNU/Linux. 3 N.

del T.: Protocolo de l´ınea serie

186

Redes

Cuando inicia una conexi´on al servidor SLIP, se le asignar´a una direcci´on IP, bien de forma “est´atica” (su direcci´on IP es siempre la misma) o “din´amica” (su direcci´on puede ser diferente de un d´ıa para otro). Por lo general, los valores de la direcci´on y pasarela asignados ser´an impresos por el servidor SLIP al conectarse. El programa dip es capaz de capturar esos valores y configurar su sistema para adaptarse a ellos. Esencialmente, configurar una conexi´on SLIP es como configurar la conexi´on en “bucle local” o con Ethernet. En las siguientes l´ıneas le mostramos las diferencias. Es importante que vea lo que hemos explicado antes sobre configuraci´on en general de TCP/IP, y aplique ahora las modificaciones que le vamos a contar. Conexiones SLIP con asignaci´on de IP est´atica usando dip Si su servidor SLIP le permite tener la direcci´on IP est´atica, lo m´as adecuado es insertar la direcci´on y el nombre del host en el fichero /etc/hosts. Adem´as, deber´ıa configurar los ficheros rc.inet2, host.conf y resolv.conf como se ha dicho antes. Igualmente, configure el fichero rc.inet1 como se ha descrito antes. Sin embargo, solo tiene que ejecutar ifconfig y route para el dispositivo “bucle local”, puesto que dip ya ejecutar´a las o´ rdenes ifconfig y route adecuadas para el dispositivo SLIP. Pero si usa slattach s´ı tendr´a que incluir o´ rdenes ifconfig/route en rc.inet1 para el dispositivo SLIP (en breve veremos c´omo). El programa dip deber´ıa configurar sus tablas de rutado para la conexi´on SLIP. Sin embargo, puede no hacerlo bien, y tendr´a que corregirlo ejecutando por su cuenta ifconfig o route cuando se haya conectado. Quiz´as le convenga entonces escribirse un shell script que lo haga autom´aticamente. En muchos casos, la pasarela es el propio servidor SLIP. Puede que conozca la direcci´on con antelaci´on o que la imprima el servidor SLIP en el momento de la conexi´on. De todas formas, el script que utilice dip (que detallamos a continuaci´on) puede deducirlo de la informaci´on que env´ıa el servidor SLIP. Puede que necesite el argumento pointopoint en ifconfig si ve que dip no configura bien la interfaz. Por ejemplo, si la direcci´on del servidor SLIP es 128.253.154.2 y la suya es 128.253.154.32, la orden a ejecutar (como root) podr´ıa ser: ifconfig sl0 128.253.154.32 pointopoint 128.253.154.2

ejecutado como root y tras conectar con dip. La documentaci´on en l´ınea de esta orden le ser´a u´ til. Observe que los nombres de dispositivo SLIP que se usan en ifconfig y route son sl0, sl1, etc. (y no como en ethernet, que es eth0, eth1, etc.) En la secci´on posterior 6.1.2 le explicaremos c´omo configurar dip para conectarse a un servidor SLIP. Conexiones SLIP con asignaci´on de IP est´atica usando slattach Si tiene una l´ınea dedicada o un cable conectado directamente al servidor SLIP, no es necesario usar dip para iniciar la conexi´on. En su lugar puede usar slattach para configurar el dispositivo SLIP. En este caso, el fichero /etc/rc.inet1 puede quedar como sigue: #!/bin/sh IPADDR="128.253.154.32" REMADDR="128.253.154.2"

# Ponga aqui su direccion IP # Ponga aqui la del servidor de SLIP

# Modifique lo siguiente para su dispositivo serie adecuado a la # conexi´ on SLIP: slattach -p cslip -s 19200 /dev/ttyS0 /etc/ifconfig sl0 $IPADDR pointopoint $REMADDR up /etc/route add default gw $REMADDR

slattach asigna el primer dispositivo SLIP disponible (sl0,sl1, etc.) a la l´ınea serie especificada. Observe que el primer par´ametro de slattach es el protocolo SLIP a utilizar. Actualmente solo valen slip y cslip. slip es el SLIP normal, y cslip es un SLIP que incluye compresi´on de las cabeceras de los datagramas. Por ello su elecci´on habitual ser´a cslip a menos que tenga alg´un problema con esta conexi´on. Si tiene m´as de una interfaz SLIP tendr´a que tener en cuenta algunas cosas respecto al rutado. Tiene que decidir qu´e rutas a˜nadir, y esto debe hacerse en funci´on de la configuraci´on de la red a la que se conecte. Le ser´an de ayuda los libros sobre configuraci´on de TCP/IP, la documentaci´on en l´ınea de la orden route, etc.

Redes TCP/IP

187

Conexiones SLIP con asignaci´on de IP din´amica usando dip. Si el servidor SLIP le asigna din´amicamente las direcciones IP, no sabr´a, evidentemente, su direcci´on IP antes de conectarse, con lo que no puede incluir esa informaci´on en /etc/hosts (aunque s´ı incluir´a la informaci´on del “bucle local”, 127.0.0.1). Muchos servidores SLIP env´ıan al terminal la direcci´on IP y la del propio servidor. Por ejemplo, un servidor SLIP podr´ıa decirle esto al conectarse: Your IP address is 128.253.154.44. Server address is 128.253.154.2.

dip puede capturar estos n´umeros devueltos por el servidor y utilizarlos para configurar el dispositvo SLIP. Vea la secci´on 186 para informarse sobre la configuraci´on de los ficheros de TCP/IP para utilizar con SLIP. Ahora le indicaremos c´omo se configura dip para conectarse al servidor SLIP.

Utilizaci´on de dip dip puede facilitar el proceso de conexi´on a un servidor SLIP, pues se ocupar´a de entrar en el sistema remoto y configurar el dispositivo SLIP. Este programa es el m´as indicado a menos que su l´ınea sea dedicada. Para utilizar dip tendr´a que escribir un “script” que contendr´a o´ rdeness para comunicar con el servidor SLIP durante la entrada en el sistema remoto. Por ejemplo, incluir´a env´ıo autom´atico de usuario y contrase˜na al servidor as´ı como lo necesario para obtener su la direcci´on IP desde el servidor. Lo que sigue es un ejemplo de script dip para asignaci´on din´amica de direcci´on IP. Para asignaci´on est´atica tendr´a que poner al principio del script los valores fijos de las direcciones IP en las variables $local y $remote. Vea la p´agina de manual de dip para m´as informaci´on. main: # MTU es ’Maximum Transfer Unit’ o tama˜ no m´ aximo de los paquetes # transmitidos por el dispositivo SLIP. En muchos servidores este # valor debe ser 1500 o 1506. Hable con el administrador de la red # si no est´ a seguro. get $mtu 1500 # Hacer que el rutado de SLIP sea el de su sistema por omisi´ on. default # Elegir puerto serie y velocidad. port cua03 speed 38400 # Reiniciar el modem y la linea del terminal. Si le da problemas, # comente la linea. reset # Preparar para hacer la llamada. Sustituya la l´ ınea siguiente # con la cadena de inicializaci´ on del m´ odem. send ATT&C1&D2\\N3&Q5%M3%C1N1W1L1S48=7\r wait OK 2 if $errlvl != 0 goto error # Llamada al servidor SLIP. Ponga aqu´ ı el n´ umero de tel´ efono dial 2546000 if $errlvl != 0 goto error wait CONNECT 60 if $errlvl != 0 goto error # Ahora estamos conectados. Hay que entrar en el sistema. login: sleep 3 send \r\n\r\n

188

Redes

# Esperar la solicitud de entrada (login:) wait login: 10 if $errlvl != 0 goto error # Enviar el nombre de usuario send USERNAME\n # Esperar la solicitud de contrase˜ na (password) wait ord: 5 if $errlvl != 0 goto error # Enviar la contrase˜ na send PASSWORD\n # Esperar la confirmaci´ on del servidor SLIP de que est´ a preparado wait annex: 30 if $errlvl != 0 goto error # Enviar instrucciones al servidor para iniciar la conexi´ on SLIP send slip\n wait Annex 30 # Obtener la direccion IP desde el servidor. La orden ’get...remote’ # lee un texto de la forma xxx.xxx.xxx.xxx y lo asigna a la variable # dada como segundo argumento (aqui es $remote). get $remote remote if $errlvl != 0 goto error wait Your 30 # Obtener la direccion local IP desde el servidor y asignarla a $local. get $local remote if $errlvl != 0 goto error # Lanzar la conexi´ on SLIP done: print CONECTADO a $remote en $rmtip print La direcci´ on de PASARELA es $rmtip print La direcci´ on LOCAL es $local mode SLIP goto exit error: print Conexi´ on SLIP a $remote ha fallado. exit:

dip ejecuta autom´aticamente las o´ rdenes ifconfig y route seg´un los valores asignados a las variables $local y $remote. Aqu´ı, estas variables son asignadas con la orden get...remote, que obtiene el texto del servidor SLIP y lo asigna a la variable. Si las o´ rdenes ifconfig y route que dip ejecuta no funcionan, siempre puede llamarlas por su cuenta desde un gui´on de shell tras ejecutar dip o modificar las fuentes del propio dip. Con la opci´on -v dip dar´a informaci´on de depuraci´on generada durante la conexi´on y le ayudar´a a averiguar las causas del problemas. Ahora, para ejecutar dip y abrir la conexi´on SLIP, escriba una orden como: /etc/dip/dip -v /etc/dip/mychat 2>&1

Estando los ficheros de dip, incluyendo script y mychat.dip en /etc/dip.

6.2. Redes de Conexi´on Telef´onicas y PPP

189

Las explicaciones de esta secci´on le deber´ıan haber permitido conectarse a la red, bien sea por Ethernet o por SLIP. De nuevo le volvemos a recomendar que consulte un libro sobre configuraci´on de redes TCP/IP, en especial si en la red hay configuraciones especiales de rutado o similar.

6.2. Redes de Conexi´on Telef´onicas y PPP GNU/Linux posee una implementaci´on completa de los protocolos de red PPP (punto a punto). PPP es un mecanismo para crear y ejecutar IP (el protocolo de Internet) y otros protocolos de red sobre una conexi´on serie (usando un cable-m´odem), sobre un enlace establecido con telnet o un enlace hecho usando m´odems y l´ıneas telef´onicas (y por supuesto utilizando l´ıneas digitales como RDSI). Esta secci´on cubrir´a s´olo la configuraci´on de PPP como cliente, conectando el equipo a trav´es de un m´odem anal´ogico a una m´aquina remota que proporciona el servicio de conexi´on PPP. Para una informaci´on completa sobre la puesta a punto de PPP bajo GNU/Linux, recomendamos leer el Linux PPP HOWTO4 , disponible v´ıa ftp an´onimo en sunsite.unc.edu. El PPP HOWTO es una gu´ıa completa para la configuraci´on de PPP, incluyendo m´odem, RDSI y cable-m´odem bajo GNU/Linux. Mucha de la informaci´on de esta secci´on se obtuvo de dicho documento. La Gu´ıa del Administrador de Red Linux, de tldp-es, est´a tambi´en disponible. Vease ap´endice A para mayor informaci´on sobre estos documentos.

6.2.1.

Qu´e se necesita para empezar

Asumiremos que su n´ucleo ha sido configurado y compilado para soportar TCP/IP. V´ease la Secci´on 4.9 para informaci´on acerca de la compilaci´on del n´ucleo. Para habilitar la red, se debe contestar “s´ı(yes)” a las preguntas adecuadas durante el make config. Asumiremos tambi´en que PPP est´a compilado e instalado en el sistema. En cuanto a la versi´on del n´ucleo, asumiremos que se est´a utilizando GNU/Linux 1.2.x con la versi´on 2.1.2 del software PPP o GNU/Linux 1.3.x/2.0.x y PPP 2.2.0. Cuando se escribi´o este libro la u´ ltima versi´on estable de PPP disponible para GNU/Linux era la PPP-2.2f. Por favor, vea el kerneld mini-HOWTO si planea usar m´odulos para cargar PPP en el n´ucleo. Es muy recomendable usar versiones del n´ucleo y PPP que se sepa que son estables conjuntamente. Debe leerse tambi´en: la documentaci´on que viene con el paquete PPP; las p´aginas del manual de pppd y chat; (usar man chat y man pppd para verlas) La GNU/Linux Network Administration Guide (NAG); El Net-2/3 HOWTO; Documentaci´on del n´ucleo de GNU/Linux instalado en /usr/src/linux/Documentation cuando se instala el c´odigo fuente de GNU/Linux; La p´agina de informaci´on de configuraci´on del m´odem, v´ease Modem Setup Information (http://www.in.net/info/modems/index.html) Los libros excelentes de GNU/Linux/Unix publicados por O’Reilly y Asociados. V´ease (O’Reilly and Associates On-Line catalog (http://www.ora.com/). Si es nuevo en Unix/Linux, ¡corra (no ande) a su tienda de libros de inform´atica m´as cercana e invierta en alguno de ellos inmediatamente! La PPP-FAQ mantenida por Al Longyear, disponible en (ftp://sunsite.unc.edu/pub/linux/docs/faqs; ver Ap´endice C). Contiene una gran cantidad de informaci´on u´ til en formato pregunta/respuesta que es muy u´ til cuando no funciona adecuadamente PPP. 4 N.

del T.: y el COMO correspondiente disponible en http://www.insflug.org

190

Caracter´ısticas avanzadas

6.2.2.

Una visi´on de los pasos involucrados

Hay que dar varios pasos para poner a punto el sistema para usar PPP. Se recomienda leer atentamente los siguientes pasos antes de intentar establecer una conexi´on PPP. Cada uno de estos pasos se discutir´a en detalle posteriormente. 1.

Asegurarse de que el soporte para TCP/IP est´e compilado en el n´ucleo.

2.

Asegurarse de que el soporte PPP est´e compilado en el n´ucleo de forma est´atica o como un m´odulo cargable.

3. Asegurarse de que el software PPP est´a compilado e instalado en el sistema. 4.

Asegurarse de que existe un m´odem configurado e instalado en la computadora y que se conoce el puerto serie asignado al m´odem.

5.

Asegurarse que se posee la siguiente informaci´on del proveedor de servicio de conexi´on PPP (normalmente un Proveedor de Servicios de Internet o ISP): El n´umero de tel´efono que se debe marcar para conectarse al proveedor de servicio de conexi´on PPP. Si se est´a recibiendo una asignaci´on de IP din´amica o est´atica. En este u´ ltimo caso, se debe conocer el n´umero IP est´atico. La direcci´on IP del servidor de nombres, DNS en sus siglas inglesas; servidor que se utiliza para identificar las direcciones IP de las m´aquinas cuando se est´a conectado.

´ Asegurarse que el nucleo tiene soporte para TCP/IP. Las operaciones de GNU/Linux PPP se dividen en dos: 1) El demonio PPP y el soporte del n´ucleo para PPP. Muchas distribuciones proporcionan soporte para PPP en sus n´ucleos de instalaci´on por defecto, pero otras no. Hay que asegurarse que TCP/IP est´a compilado en el n´ucleo. Esto puede hacerse con la instrucci´on: grep -i ‘‘TCP/IP’’ /var/adm/messages

Si se obtiene una l´ınea similar a Jun

8 09:52:08 gemini kernel: Swansea University Computer Society TCP/IP for NET3.019

entonces se tiene soporte TCP/IP compilado. Adem´as se debe buscar la informaci´on anterior durante el proceso de arranque de GNU/Linux. En m´aquinas muy r´apidas, estos mensajes se desplazan a mucha velocidad. Se puede utilizar May - ReP´ ag para desplazar los mensajes de pantalla hacia arriba y leerlos. ´ Asegurarse que el nucleo tiene soporte para PPP. Si en el arranque el n´ucleo proporciona mensajes como PPP Dynamic channel allocation code copyright 1995 Caldera, Inc. PPP line discipline registered.

entonces es que tiene soporte PPP. Tambi´en se puede utilizar la orden # grep -i ‘‘PPP’’ /var/adm/messages

Si se obtiene una l´ınea similar a Jun

8 09:52:08 gemini kernel: PPP: version 0.2.7 (4 channels) NEW_TTY_DRIVERS OPTIMIZE_FLAGS

significa que el soporte para PPP est´a presente.

Redes de conexi´on telef´onica y PPP

191

Asegurarse que el m´odem est´a configurado. Hay que estar seguro que el m´odem est´a puesto a punto de forma correcta y que se conoce el puerto serie al que est´a conectado. DOS com1: = GNU/Linux /dev/ttyS0 (/dev/cua0) DOS com2: = GNU/Linux /dev/ttyS1 (/dev/cua1) etc´etera Hist´oricamente GNU/Linux usaba los dispositivos cuax para enviar y los dispositivos ttySx para recibir. Con la versi´on del n´ucleo 2.0.x, esto cambi´o y pasaron a utilizarse s´olo los ttySx tanto para enviar como para recibir. Los dispositivos cuax desaparecer´an en posteriores versiones del n´ucleo. Si se est´a utilizando un m´odem (externo) de alta velocidad (14.400 baudios o m´as), el puerto serie debe ser capaz de manejar y enviar todo lo que el m´odem sea capaz de producir, particularmente cuando el m´odem comprime los datos. Esto requiere utilizar un puerto serie con un UART moderno (Universal Asynchronous Receiver Transmitter) por ejemplo, un 16550A. Si se est´a utilizando una m´aquina antigua (o un puerto serie antiguo), es posible que el puerto serie tenga s´olo un UART 8250, que producir´a problemas importantes al usarse con m´odems r´apidos. Se puede usar la instrucci´on # setserial -a /dev/ttySx

para que GNU/Linux informe sobre el tipo de UART que se posee. Si no se tiene un UART tipo 16550A, invierta en una nueva tarjeta serie. Es necesario configurar el m´odem correctamente para PPP, para hacer esto ¡LEA EL MANUAL DEL ´ MODEM!. Muchos m´odems vienen con la configuraci´on de f´abrica que selecciona las opciones necesarias para utilizar PPP. La configuraci´on espec´ıfica recomendada (en o´ rdenes est´andar de Hayes) es: Control de flujo por hardware (RTS/CTS) (&K3 en muchos m´odems) E1 Eco ON (ver /usr/src/linux/include/linux/serial.h) (requerido para que chat funcione) Q0 Informar del resultado de operaciones (requisito para que funcione chat) S0=0 Auto Responder en OFF (a no ser que se desee que el m´odem responda el tel´efono) &C1 Detecci´on de portadora en ON s´olo despu´es de conectar. &S0 Data Set Ready (DSR) siempre ON ( (depende) Terminal de datos preparado (Data Terminal Ready) Existe una p´agina que ofrece configuraciones ejemplo para una variedad creciente de m´odems en “Modem setup information” (http://www.in.net/info/modems/index.html) que puede ayudarle en esto. Use software de comunicaciones, como minicom o seyon, para obtener informaci´on sobre la configuraci´on del m´odem y poner los valores requeridos por PPP. Muchos m´odems dan su configuraci´on actual en respuesta a AT&V, pero deber´ıa consultar el manual del m´odem. Si se desajusta completamente la configuraci´on, puede obtenerse de nuevo la configuraci´on de f´abrica, utilizando la, normalmente saludable, opci´on AT&F. (En muchos m´odems he encontrado que la configuraci´on de f´abrica incluye todo lo necesario para PPP, pero debe comprobarse). Una vez que se ha conseguido la configuraci´on requerida del m´odem, conviene guardarla. Ahora hay que tomar una decisi´on: guardar estas caracter´ısticas en la memoria no vol´atil del m´odem, para que puedan ser llamadas por la orden AT apropiada; o bien enviar al m´odem la configuraci´on correcta durante el proceso de marcado del PPP. Si s´olo va a utilizarse el m´odem desde GNU/Linux para llamar al ISP o servidor corporativo, lo m´as sencillo es guardar la configuraci´on en la RAM no vol´atil. Por otra parte, si el m´odem va a usarse desde otras aplicaciones o sistemas operativos, es conveniente pasar la informaci´on al m´odem en cada llamada. (Adem´as tiene la ventaja que no puede perderse la informaci´on en caso que se borre la memoria del m´odem).

192

Caracter´ısticas avanzadas

Informaci´on del ISP. Antes de poder establecer una conexi´on PPP con un servidor remoto, es necesario obtener informaci´on del administrador de sistema o del servicio de atenci´on al cliente del ISP. El n´umero(s) de tel´efono a marcar para el servicio. Si est´a detr´as de una centralita o similares, el n´umero que da tono para una llamada externa, este es normalmente el cero (0). ´ ´ ¿Proporciona el servidor direcciones IP DINAMICAS o ESTATICAS? Si el servidor utiliza direccio´ nes IP ESTATICAS, entonces es necesario conocer el la direcci´on asignada. Si el ISP proporciona una conexi´on a una subred de direcciones IP v´alidas, se necesitar´a saber las direcciones IP que vayan a utilizarse y la m´ascara de red (netmask). ´ Muchos ISPs utilizan direcciones IP DINAMICAS, Como se mencion´o anteriormente, esto tiene ciertas implicaciones en los servicios que pueden utilizarse. ´ Sin embargo, incluso si se utiliza una direcci´on IP ESTATICA, muchos servidores PPP, no permitir´an nunca (por razones de seguridad) al cliente especificar un n´umero IP, por el riesgo de seguridad. ¡Necesita pues esta informaci´on! ¿Qu´e son los n´umeros IP del Servidor de Nombres del ISP? Debe haber al menos dos, aunque s´olo uno es necesario. Puede haber un problema aqu´ı. La configuraci´on del PPP de MS Windows 95, permite que las direcciones DNS pasen al cliente dentro del proceso de la conexi´on, por lo que su ISP puede comentarle que no necesita la direcci´on IP de los servidores DNS. Para GNU/Linux, se necesitan las direcciones de al menos un DNS. La implementaci´on de GNU/Linux de PPP, no permite la configuraci´on de la direcci´on IP del DNS din´amicamente en tiempo de conexi´on y posiblemente nunca lo haga. ¿Requiere el servidor el uso de PAP/CHAP? Si este es el caso, se necesita conocer el “id” y “secret” para usar en la conexi´on. (Probablemente el nombre de usuario y la contrase˜na proporcionados por el ISP). ¿Lanza autom´aticamente PPP el servidor o hay que proporcionarle alguna instrucci´on para que se lance PPP una vez que hemos conectado? En ese caso, ¿cual es la instrucci´on? ¿Es el servidor un sistema Microsoft Windows NT?, y si es as´ı, ¿est´a utilizando el sistema PAP/CHAP de MS?. Muchas redes locales utilizan MS Windows NT. Cada dispositivo conectado a Internet debe tener su propio y u´ nico n´umero IP. Estos se asignan de forma centralizada por una autoridad designada en cada pa´ıs. Entonces, para utilizar una conexi´on PPP, se debe tener un n´umero IP asignado. Debido al n´umero creciente de m´aquinas en Internet (en parte debido al gran n´umero de usuarios PPP), se ha desarrollado un esquema din´amico para PPP que proporciona un IP al instante cuando se establece la conexi´on PPP. Esto quiere decir que se tendr´an diferentes direcciones IP cada vez que se establezca una conexi´on PPP con el servidor. Este es el m´etodo m´as habitual de muchos ISP. El otro ´ m´etodo es utilizar una IP est´atica. Usted no puede elegir su propia IP, e´ sta debe ser asignada por un organismo estatal encargado de la asignaci´on de direcciones IP. Esto previene que dos computadores tengan la misma direcci´on IP, lo que provocar´ıa problemas en Internet. El proveedor de servicior PPP remoto, debe decirle si se est´a utilizando IP est´atica o din´amica y proporcionarle su direcci´on IP en caso de que se utilice el m´etodo est´atico. Es importante notar que si se utiliza asignaci´on din´amica de IP, es muy muy dif´ıcil proporcionar alg´un servicio de Internet permanente como servidores WWW, servicios de gopher o servidores Chat. S´ı se podr´an utilizar estos servicios que est´en en otras m´aquinas, pero no ofrecer dichos servicios en su m´aquina sin un gran esfuerzo. Esto queda fuera del alcance de este documento. PAP y CHAP son los dos m´etodos habituales de autenticaci´on. GNU/Linux soporta ambos.

Redes de conexi´on telef´onica y PPP

193

Probando el m´odem y el servicio remoto. Ahora que se tienen solucionadas la configuraci´on del puerto serie y del m´odem, es una buena idea estar seguro de si son las indicadas para conectar con el ISP y comprobar si se puede realizar la conexi´on. Usando un paquete de comunicaciones, como minicom o seyon, ponga a punto la inicializaci´on del m´odem requerida por PPP marcando el n´umero del servidor PPP al que se quiere conectar con una sesi´on PPP. (Nota:en este punto NO estamos intentando establecer una conexi´on PPP, s´olo comprobar si tenemos el n´umero de tel´efono correcto y averiguando exactamente lo que el servidor nos solicita para establecer la conexi´on y lanzar PPP). Durante este proceso, o bien se captura (registr´andolo en un fichero) el proceso de ingreso completo, o se escribe exactamente con cuidado (mucho cuidado) todo lo que el servidor solicite. Es hora de dar el nombre de usuario y la contrase˜na (y cualquier otra instrucci´on que se necesite para establecer la conexi´on PPP). Si el servidor usa PAP, no se ver´a un indicador de o´ rdenes de ingreso, pero puede aparecer en su lugar la representaci´on en texto del protocolo de control de enlace, como una cadena de caracteres extra˜nos en la pantalla. Algunas advertencias: Algunos servidores son muy inteligentes: se puede ingresar usando nombre/contrase˜na mediante texto o usando PAP. Por tanto, si el servidor ISP usa PAP, pero no se ven los caracteres extra˜nos inmediatamente, no quiere decir que se est´e haciendo algo mal. Algunos servidores solicitan inicicialmente poner alg´un texto y entonces comienzan la secuencia PAP. Algunos servidores PPP son pasivos, es decir simplemente esperan sin responder hasta que el cliente env´ıa un paquete lcp v´alido. Si el servidor PPP al que se va a conectar opera en modo pasivo, ¡nunca ver´a los caracteres extra˜nos! Algunos servidores no lanzan PPP hasta que se presiona ENTER, as´ı que es u´ til hacerlo si se ha accedido correctamente y no se ven los mensajes extra˜nos. Es u´ til repetir esta operaci´on al menos dos veces, puesto que algunos servidores cambian sus indicador de o´ rdeness cada vez que se ingresa. Los dos indicador de o´ rdeness fundamentales que la configuraci´on debe ser capaz de indentificar cada vez que se realice la conexi´on con: El indicador de o´ rdenes que solicita el nombre de usuario. El indicador de o´ rdenes que solicita la contrase˜na. Si es necesario dar alguna instrucci´on para lanzar el PPP en el servidor, hay que saber cuando el servidor lo solicita. Si el servidor lanza autom´aticamente PPP, una vez que se ingresa, aparecer´a en pantalla una cadena de caracteres extra˜nos, esto se debe a que el servidor env´ıa informaci´on a la m´aquina sobre c´omo configurar e iniciar la conexi´on PPP. Puede ser algo como: y}#.!}!}!} }8}!}}U}"}\&} } } } }}\& ...}’}"}(}"} .˜˜y} En muchos sistemas PPP debe ser expl´ıcitamente lanzado en el servidor. Esto es bastante normal, porque el servidor ha sido configurado para permitir ingresos PPP y de shell usando la misma pareja nombre/contrase˜na. Si este es el caso, hay que dar la instrucci´on una vez que se ha ingresado. De nuevo aparecer´an los caracteres extra˜nos en pantalla. Si no se observan inmediatamente, presione Enter para verlos y lanzar PPP en el servidor. En este momento, puede colgarse el m´odem (normalmente tecleando +++ r´apidamente y entonces introduciendo la instrucci´on ATH0 una vez que el m´odem responda con OK). Si no puede hacerse funcionar el m´odem, es conveniente leer el manual del m´odem, las paginas del manual del software de comunicaciones y el Serial HOWTO. Una vez arreglado, comenzar de nuevo.

194

Caracter´ısticas avanzadas

Utilizando servidores de Internet con direcciones IP din´amicas. Si se utilizan direcciones IP din´amicas (y muchos proveedores de servicios lo har´an a menos que pague m´as por su conexi´on), se deben conocer las limitaciones impuestas. Lo primero, los servicios de salida funcionar´an correctamente. Esto es, se puede enviar correo electr´onico usando sendmail (configur´andolo correctamente claro), obtener ficheros de servidores ftp remotos, hacer finger a usuarios en otras m´aquinas, navegar por la web, etc. En particular, se puede responder correo electr´onico que se haya bajado a la m´aquina mientras se est´a desconectado. El mensaje permanecer´a en la cola de correo hasta que se establezca de nuevo conexi´on con el ISP. Sin embargo, su m´aquina no est´a conectada a Internet 24 horas al d´ıa, ni tiene el mismo n´umero IP cada vez que se conecta, por lo que es imposible recibir directamente correo en dicha m´aquina y es muy dif´ıcil poner a punto un servidor web o ftp al que sus amigos puedan acceder. En lo que concierne a Internet, su m´aquina no existe como una u´ nica, permanentemente conectada m´aquina, puesto que no posee una direcci´on IP u´ nica. Si se levanta un WWW (u otro servidor), e´ ste es totalmente desconocido para cualquier usuario en Internet, salvo que sepan que su m´aquina est´a actualmente conectada y cual es su n´umero IP. Hay varias formas de obtener esta informaci´on, desde llamarlos, enviarles un mensaje de correo o usar el fichero “.plan” en una cuenta shell en su proveedor de servicios (suponiendo que el proveedor permita acceso mediante shell y finger). Para muchos usuarios, esto no es un problema, mucha gente lo que quiere es enviar y recibir correo electr´onico (usando su cuenta en el proveedor de servicios) y conectarse a servidores WWW, ftp y otros. Si necesita conexiones a servidores propios en su m´aquina, necesitar´a un n´umero IP est´atico. Ficheros de configuraci´on de la conexi´on PPP. Ahora es necesario entrar como root para crear los directorios y editar los ficheros necesarios para poner a punto PPP. PPP usa una serie de ficheros para realizar y configurar una conexi´on PPP. Difieren en el nombre y la ubicaci´on entre PPP 2.1.2 y 2.2. Para PPP 2.1.2 los ficheros son: /usr/sbin/pppd /usr/sbin/ppp-on /usr/sbin/ppp-off /etc/ppp/options /etc/ppp/options.ttyXX

# el binario PPP # el gui´on de marcado/conexi´on # el gui´on de desconexi´on # las opciones que pppd usa para todas las conexiones # las opciones espec´ıficas para una conexi´on en este puerto

Para PPP 2.2 los ficheros son: /usr/sbin/pppd /etc/ppp/scripts/ppp-on /etc/ppp/scripts/ppp-on-dialer /etc/ppp/scripts/ppp-off /etc/ppp/options /etc/ppp/options.ttyXX

# el binario PPP # el gui´on de marcado/conexi´on # parte 1 del gui´on de marcado # el gui´on de chat # las opciones que pppd usa para todas las conexiones # las opciones espec´ıficas para una conexi´on en este puerto

Los usuarios de Red Hat GNU/Linux deben notar que la instalaci´on est´andar de Red Hat 4.X pone estos guiones en /usr/doc/PPP-2.2.0f-2/scripts. En el directorio /etc debe haber un directorio ppp: drwxrwxr-x

2 root

root

1024 Oct

9 11:01 ppp

Si no existiese, debe crearse con estos propietarios y permisos. Si el directorio existiese ya, debe contener un fichero patr´on de opciones llamado options.tpl. Este fichero se incluye m´as abajo en caso de que fuese necesario. Impr´ımalo ya que contiene explicaciones de casi todas las opciones de PPP (es u´ til leerlo a la vez que la p´agina del manual de pppd). Mientras puede utilizaarse este fichero como base para el fichero /etc/ppp/options, es posiblemente mejor crear su propio fichero, que no incluya todos los comentarios del fichero patr´on, e´ ste ser´a m´as corto y f´acil de leer y mantener. Algunas distribuciones de PPP no incluyen el fichero options.tpl. Debe examinarse el documento PPPHOWTO de la versi´on completa.

Redes de conexi´on telef´onica y PPP

195

¿Qu´e opciones debo usar? Bueno, como en todo eso depende. Las opciones especificadas aqu´ı deben funcionar en muchos servidores. ´ (/etc/ppp/options.tpl) y las p´aginas del Sin embargo, si no funcionase, LEA EL FICHERO PATRON manual de pppd y pregunte a los administradores/usuarios que manejan el servidor al cual quiere conectarse. Hay que fijarse que los guiones de conexi´on presentados aqu´ı utilizan algunas opciones de la l´ınea de instrucciones para hacer las cosas un poco m´as f´aciles de cambiar. # /etc/ppp/options (sin soporte PAP/CHAP) # # Evitar que pppd se bifurque al segundo plano # -detach # # utilizar las l´ ıneas de control del m´ odem modem # usar bloqueos uupc para asegurarse del acceso exclusivo al dispositivo # serie lock # usar control de flujo por hardware crtscts # crear una ruta predeterminada para esta conexi´ on en la tabla de # enrutamiento defaultroute # No seleccionar ninguna secuencia de control ’’escapada’’ asyncmap 0 # utilizar un paquete de tama˜ no m´ aximo de transmisi´ on de 552 bytes mtu 552 # utilizar un paquete de tama˜ no m´ aximo de recepci´ on de 552 bytes mru 552 # #-------Fin del ejemplo /etc/ppp/options (sin soporte PAP/CHAP)--------------

Configurando la conexi´on PPP manualmente. Una vez que se han creado los ficheros /etc/ppp/options y /etc/resolv.conf (y, si es necesario, el fichero /etc/ppp/pap—chap-secrets), se pueden probar las opciones estableciendo manualmente una conexi´on PPP. Una vez que funcione la conexi´on manual, se automatizar´a el proceso. Para hacer esto, el software de comunicaciones debe ser capaz de apagar SIN reiniciar el m´odem. Minicom puede hacerlo con la sentencia Control - A Q Estar seguro de entrar como root. Lanzar el software de comunicaciones (como minicom), marcar el n´umero del servidor y entrar. Si necesita escribir una orden para lanzar el PPP en el servidor, h´agalo. Ahora ver´a los caracteres extra˜nos que vimos antes. Si se utiliza PAP o CHAP, entonces la simple conexi´on con el sistema remoto debe lanzar PPP en el servidor remoto y se observar´an los caracteres extra˜nos en pantalla sin ingresar (esto puede no funcionar en todos los servidores, puede funcionar si se presiona Enter). Ahora quite el software de comunicaciones sin apagar el m´odem y teclee como root: # pppd -d /dev/ttyS0 38400 &

Poniendo, por supuesto, el nombre del dispositivo al que est´e conectado el m´odem. La opci´on -d permite la depuraci´on, la conversaci´on de comienzo de la conexi´on PPP ser´a registrada en los ficheros de registro de su sistema, lo cual es muy u´ til para rastrear problemas m´as tarde. Las luces del m´odem deben parpadear si la conexi´on PPP se establece. Para que se establezca la conexi´on son necesarios unos instantes.

196

Caracter´ısticas avanzadas

En este momento se puede mirar la interfaz PPP, con la instrucci´on: # ifconfig

Adem´as de alg´un dispositivo Ethernet y loop back de los que se disponga, debe aparecer algo como: PPP0

Link encap:Point-Point Protocol inet addr:10.144.153.104 P-t-P:10.144.153.51 Mask:255.255.255.0 UP POINTOPOINT RUNNING MTU:552 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:0 errors:0 dropped:0 overruns:0

Donde inet addr:10.144.153.10 es el n´umero IP del final del enlace. P-t-P:10.144.153.5 es el n´umero IP del SERVIDOR. (Ifconfig no dar´a estas direccionesIP, sino las usados por su servidor PPP). Nota: ifconfig tambi´en dice que la conexi´on est´a hecha y funcionando. Ahora debe ser posible ver una ruta con el servidor (y m´as all´a). Para hacer esto se utiliza la instrucci´on: # route -n

Debe obtenerse algo como: Kernel routing table Destination Gateway 10.144.153.3 * 127.0.0.0 * 10.0.0.0 * default 10.144.153.3

Genmask 255.255.255.255 255.0.0.0 255.0.0.0 *

Flags UH U U UG

MSS 1500 3584 1500 1500

Window Use Iface 0 1 ppp0 0 11 lo 0 35 eth0 0 5 ppp0

Hay que notar que existen DOS entradas apuntando a la interfaz PPP. La primera es una ruta al HOST (indicada por la etiqueta H) y permite ver el host al que se conecta la m´aquina, pero no m´as. La segunda es la ruta predeterminada (establecida con la opci´on defaultroute dada a pppd). Esta es la ruta que le dice a la m´aquina donde mandar los paquetes NO destinados a el/los ethernet(s) local/es, para los que tenemos rutas de red espec´ıficas. El servidor PPP es pues el responsable de encaminar nuestros paquetes en Internet y captar los paquetes de vuelta y hacerlos llegar a nuestra m´aquina. Si no existe una tabla de rutas con dos entradas, algo est´a mal. En particular si el syslog muestra un mensaje diciendo que pppd no est´a reemplazando una ruta existente por omisi´on, entonces existe una ruta predeterminada apuntando al interfaz Ethernet, que debe ser reemplazada por una ruta de red espec´ıfica: ´ ¡SOLO SE PUEDE TENER UNA RUTA PREDETERMINADA! Debe explorarse el sistema de ficheros de inicializaci´on para encontrar d´onde se est´a a˜nadiendo esta ruta predeterminada debe contener una instrucci´on con route add default ...). Hay que cambiar esto por algo como route add net ... Ahora se puede probar la conexi´on haciendo ’ping’ al n´umero del servidor que se obtuvo con ifconfig, por ejemplo: # ping 10.144.153.51

Debe recibirse una respuesta como: PING 10.144.153.51 (10.144.153.51): 56 data bytes 64 bytes from 10.144.153.51: icmp_seq=0 ttl=255 time=328.3 64 bytes from 10.144.153.51: icmp_seq=1 ttl=255 time=190.5 64 bytes from 10.144.153.51: icmp_seq=2 ttl=255 time=187.5 64 bytes from 10.144.153.51: icmp_seq=3 ttl=255 time=170.7

ms ms ms ms

Redes de conexi´on telef´onica y PPP

197

Esta lista seguir´a gener´andose sin l´ımite, para pararla presionar Control - C , al punto que se obtendr´a la informaci´on: --- 10.144.153.51 ping statistics --4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 170.7/219.2/328.3 ms

Ahora se puede intentar hacer ping a un host por su nombre (no al servidor de PPP) sino a otro que se conozca el nombre y se piense que debe estar funcionando. Por ejemplo: # ping sunsite.unc.edu

En este momento debe haber una peque˜na pausa, puesto que GNU/Linux est´a obteniendo el n´umero IP del servidor DNS especificado en /etc/resolv.conf, as´ı que no hay que preocuparse (aunque las luces del m´odem deben parpadear). En breves instantes debe recibirse una respuesta como: PING sunsite.unc.edu (152.2.254.81): 56 data bytes 64 bytes from 152.2.254.81: icmp_seq=0 ttl=254 time=190.1 64 bytes from 152.2.254.81: icmp_seq=1 ttl=254 time=180.6 64 bytes from 152.2.254.81: icmp_seq=2 ttl=254 time=169.8 64 bytes from 152.2.254.81: icmp_seq=3 ttl=254 time=170.6 64 bytes from 152.2.254.81: icmp_seq=4 ttl=254 time=170.6

ms ms ms ms ms

Una vez m´as, se para la salida tecleando Control - C y se obtienen las estad´ısticas... --- sunsite.unc.edu ping statistics --5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 169.8/176.3/190.1 ms

Si no se obtiene respuesta, debe hacerse ping a la direcci´on IP del servidor DNS del ISP. Si dicho servidor responde al ping, entonces debe existir un problema en /etc/resolv.conf. Si no funciona, existe un problema con la ruta o el ISP tiene problemas al devolver los paquetes. Debe comprobarse la tabla de rutas como se ense˜no´ anteriormente y si todo est´a correcto debe contactarse con el ISP. Una buena comprobaci´on del ISP es usar otro sistema operativo para conectarse. Si se puede ir m´as all´a del ISP, el problema est´a aqu´ı. Si todo funciona, cerrar la conexi´on tecleando: # ppp-off

Tras una breve pausa, el m´odem debe colgar. Si esto no funciona, puede o apagar el m´odem o lanzar el software de comunicaciones e interrumpir el m´odem con +++ y entonces colgar con ATH0 cuando reciba el OK del m´odem. Debe adem´as limpiar el fichero de bloqueo creado por pppd, escribiendo: # rm -f /var/lock/LCK..ttySx

6.2.3.

Creando los guiones de conexi´on

Se puede seguir realizando la conexi´on manualmente como hemos visto hasta ahora, pero es mucho m´as elegante hacer algunos guiones que lo hagan autom´aticamente. Un conjunto de guiones automatiza la conexi´on y lanza PPP, as´ı que todo lo que debe hacerse (como root o miembro del grupo PPP) es escribir una instrucci´on para establecer la conexi´on. Si el ISP no exige usar PAP/CHAP, e´ stos son los guiones: Si el paquete PPP est´a instalado correctamente, existen dos ficheros ejemplo. Para PPP 2.1.2 est´an en /usr/sbin y para PPP 2.2 en /etc/ppp/scripts. Se llaman: para PPP-2.1.2

198

Caracter´ısticas avanzadas

ppp-on ppp-off y para PPP-2.2 ppp-off ppp-on ppp-on-dialer Ahora bien, si se est´a utilizando PPP 2.1.2, es realmente urgente borrar los ficheros ejemplo. Hay problemas potenciales con ellos, y no diga que funcionan bien, yo los he usado durante mucho tiempo tambi´en (¡y los recomend´e en la primera versi´on de este HOWTO!). Para el beneficio de los usuarios de PPP 2.1.2, existen mejores versiones patr´on, tomadas de la distribuci´on PPP 2.2. Yo sugiero copiar y utilizar estos guiones en vez de los antiguos de PPP-2.1.2. El gui´on ppp-on: Este es el primero del PAR de guiones que realmente realizan la conexi´on. #!/bin/sh # # Gui´ on para iniciar una conexi´ on PPP. Esta es la primera parte del # par de guiones. Este no es un par seguro de guiones porque los c´ odigos # son visibles con la ordem ’ps’. Sin embargo es simple. # # ´ Estos son los par´ ametros. C´ ambielos como los necesite. TELEPHONE=555-1212 # El n´ umero de telefono de la conexi´ on. ACCOUNT=george # El n´ umero de cuenta para entrar(en ’George Burns’) PASSWORD=gracie # La contrase˜ na para esta cuenta(y ’Gracie Allen’) LOCAL_IP=0.0.0.0 # La direcci´ on local si se sabe. Din´ amica = 0.0.0.0 REMOTE_IP=0.0.0.0 # La direcci´ on remota si se desea. Normalmente 0.0.0.0 NETMASK=255.255.255.0 # La m´ ascara de red apropiada. # # Se exportan para hacerlos disponibles a ’ppp-on-dialer’ export TELEPHONE ACCOUNT PASSWORD # # ´ Este es el lugar donde se encuentra el gui´ on que marca el tel´ efono. # Por favor, use el nombre absoluto porque la variable \$PATH no se usa # en la opci´ on de conexi´ on. (Hacer esto en una cuenta de ’root’ ser´ ıa # un agujero de seguridad, as´ ı que no pregunte.) # DIALER_SCRIPT=/etc/ppp/ppp-on-dialer # # Iniciar la conexi´ on # # exec /usr/sbin/pppd debug /dev/ttySx 38400 \ \$LOCAL_IP:\$REMOTE_IP \ connect \$DIALER_SCRIPT

El gui´on ppp-on-dialer: #!/bin/sh # # Esta es la parte 2 del gui´ on ppp-on. Realizar´ a el protocolo de conexi´ on # para la conexi´ on deseada. # /usr/sbin/chat -v \ TIMEOUT 3 \ ABORT ’\nBUSY\r’ \ ABORT ’\nNO ANSWER\r’ \

Redes de conexi´on telef´onica y PPP

ABORT ’’ ’OK-+++\c-OK’ TIMEOUT OK CONNECT ogin:--ogin: assword:

199

’\nRINGING\r\n\r\nRINGING\r’ \rAT ATH0 30 ATDT\$TELEPHONE ’’ \$ACCOUNT \$PASSWORD

\ \ \ \ \ \ \

Para ppp-2.2, el gui´on ppp-off es como: #!/bin/sh ###################################################################### # # Determina el dispositivo a ser eliminado. # if [ "\$1" = "" ]; then DEVICE=ppp0 else DEVICE=\$1 fi

###################################################################### # # Si el fichero pid de ppp0 est´ a presente, entonces el programa est´ a ejecut´ andose. P´ aral if [ -r /var/run/\$DEVICE.pid ]; then kill -INT ‘cat /var/run/\$DEVICE.pid‘ # # Si kill no funcion´ o entonces no hay ning´ un proceso ejecut´ andose para ´ ese # pid. Puede significar tambi´ en que un fichero cerrojo se ha dejado suelto. Quiz´ a desee # el fichero cerrojo al mismo tiempo. if [ ! "\$?" = "0" ]; then rm -f /var/run/\$DEVICE.pid echo "ERROR: fichero de bloqueo ya quitado" exit 1 fi # # ´ Exito. Dejar que pppd limpie su propia porquer´ ıa. echo "Enlace PPP a \$DEVICE finalizado." exit 0 fi # # El proceso PPP no est´ a corriendo para ppp0 echo "ERROR: El enlace PPP no est´ a activo en \$DEVICE" exit 1

6.2.4.

Editando los guiones de inicio de PPP suministrados

Como los guiones nuevos vienen separados en dos, los editaremos por turnos. El gui´on ppp-on. Debe editarse el gui´on ppp-on para poner SU nombre de usuario en su ISP, SU contrase˜na (password) en su ISP y el n´umero de tel´efono del ISP. Cada una de las l´ıneas como TELEPHONE= realmente actualizan variables del entorno que contienen la informaci´on situada a la derecha del ’=’ (sin contar los comentarios por supuesto). Por tanto hay que editar cada una de estas l´ıneas y comprobar si es correcta para su ISP y conexi´on. Tambi´en, como se est´a configurando el n´umero IP (si es necesario) en el fichero /etc/ppp/options, ´ BORRESE la l´ınea que incluye:

200

Caracter´ısticas avanzadas

\$LOCAL_IP:\$REMOTE_IP \ Adem´as, hay que asegurarse que la variable de entrono DIALER SCRIPT apunta al path completo y nombre del gui´on de marcado que realmente se va a usar. Por tanto si se ha movido o renombrado el gui´on, hay que asegurarse de corregir la l´ınea correspondiente del gui´on ppp-on. El gui´on ppp-on-dialer. Este es el segundo gui´on y es el que realmente establece la conexi´on PPP. Nota: un gui´on chat est´a escrito normalmente en una sola l´ınea, los separadores {} se utilizan para permitir la continuaci´on de la l´ınea en varias l´ıneas distintas y ser m´as legibles por las personas, pero no forman parte del gui´on. Sin embargo, es muy u´ til verlo en detalle, para entender qu´e es lo que realmente (supuestamente) est´a pasando. Un gui´on chat es una secuencia de parejas de “cadenas de espera” y “cadenas de env´ıo”. En particular, n´otese que SIEMPRE se espera alguna respuesta despu´es de enviar algo. Si tenemos que enviar algo SIN recibir nada antes, debemos utilizar una cadena de espera vac´ıa (indicada por “”) y de forma similar para cuando esperamos recibir algo sin mandar nada. Tambi´en, si una cadena contiene varias palabras, (por ejemplo NO CARRIER), se debe entrecomillar, para que chat lo entienda como una sola entidad. La l´ınea chat en nuestro ejemplo es: exec /usr/sbin/chat -v

Invoca a chat, la opci´on -v le dice a chat que copie TODAS sus E/S en los registros del sistema (normalmente /var/log/messages). Una vez que est´e satisfecho del funcionamiento del gui´on de chat, se puede editar esta l´ınea y quitar el -v para evitar registros innecesarios en el syslog. TIMEOUT

3

Establece el tiempo m´aximo de respuesta del m´odem en 3 segundos. Debe aumentarse a 5 o´ 10 segundos si se utiliza un m´odem realmente lento. ABORT

’\nBUSY\r’

Si la cadena BUSY (ocupado) es recibida, se aborta la operaci´on. ABORT

’\nNO ANSWER\r’

Si la cadena NO ANSWER (sin respuesta) es recibida, se aborta la operaci´on. ABORT

’\nRINGING\r\n\r\nRINGING\r’

Si la cadena (repetida) RINGING (llamando) es recibida, se aborta la operaci´on. ¡Esto es porque alguien est´a llamando por tel´efono! "

\rAT

No se espera respuesta del m´odem y se env´ıa la cadena AT OK-+++\c-OK

ATH0

Esta es un poco m´as complicada y usa algunas de las capacidades de chat para recuperar errores. Lo que dice es: Espera OK, si NO es recibido (porque el m´odem no est´a en modo de recibir o´ rdenes), manda +++ (la cadena est´andar para un m´odem compatible Hayes que pone el m´odem en modo de recibir o´ rdenes) y espera recibir OK. Entonces se env´ıa ATH0 (la cadena para colgar el m´odem). Esto permite al gui´on protegerse de la situaci´on en la que el m´odem est´a encendido pero no da respuesta. TIMEOUT

30

Redes de conexi´on telef´onica y PPP

201

Establece 30 segundos como el tiempo necesario para volver a lanzar el gui´on. Si tiene problemas porque se aborta el gui´on de chat por el este tiempo muerto, aum´entelo a 45 segundos o m´as. OK

ATDT\$TELEPHONE

Espera el OK ( la respuesta del m´odem a la orden ATH0) y marca el n´umero de tel´efono al que queremos llamar. CONNECT

’’

Espera CONNECT (que nuestro m´odem env´ıa cuando el m´odem remoto contesta) y no env´ıa nada. ogin:--ogin:

\$ACCOUNT

De nuevo, tenemos un problema. Esperamos el indicador de o´ rdenes de registro (...ogin:) pero no hemos recibido nada por el tiempo muerto, entonces enviamos de nuevo respuesta y esperamos el indicador de o´ rdenes de registro. Cuando se recibe el indicador de o´ rdenes, enviamos el nombre de usuario (almacenado en la variable de entorno $ACCOUNT). 5 assword:

\$PASSWORD

Esperamos que se solicite la contrase˜na y se la enviamos (de nuevo almacenada en una variable de entorno). Este gui´on de chat tiene una capacidad razonable de recuperarse de errores. Chat tiene muchas m´as caracter´ısticas que las mostardas aqu´ı. Para m´as informaci´on consulte la p´agina del manual de chat (man 8 chat)6 .

6.2.5.

Iniciando PPP en el servidor

Mientras que el gui´on ppp-on-dialer es bueno para servidores que lanzan el pppd del servidor cuando se ingresa, algunos servidores requieren que se lance expl´ıcitamente. Si es necesario incluir una instrucci´on para lanzar PPP en el servidor, hay que editar el gui´on ppp-ondialer. Al final del gui´on (tras la l´ınea con la contrase˜na) hay que a˜nadir una pareja adicional de “cadenas de espera y env´ıo”, que tienen un significado especial en el shell Bourne como: \$[]

Una vez que chat encuentra el indicador de o´ rdenes de shell, escribe la instrucci´on necesaria para lanzar PPP en el servidor PPP del ISP. En un caso particular, el servidor utiliza el indicador est´andar del int´erprete de o´ rdenes Bash de GNU/Linux: [hartr@kepler hartr]$

que necesita la respuesta # PPP

para lanzar PPP en el servidor. Es una buena idea permitir un margen de error aqu´ı, para lo cual utilizar hartr--hartr ppp 5 N. del T.: En la mayor´ıa de los ISP’s de Espa˜ na, esto no es necesario y debe comentarse, debido a que se usa autentificaci´on PAP. Ver secci´on PAP. 6 N. del T.: En la mayor´ıa de los ISP de Espa˜ na, esto no es necesario y debe comentarse. Ver secci´on PAP m´as adelante.

202

Caracter´ısticas avanzadas

Que dice, si no recibimos el indicador de o´ rdenes en el tiempo muerto, enviar un retorno de carro y esperar el indicador de o´ rdenes de nuevo. Una vez que se recibe el indicador de o´ rdenes, se env´ıa la cadena PPP. Nota: No olvidar poner un \ al final de la l´ınea previa, para que chat piense que el gui´on es una sola l´ınea. Lamentablemente, algunos servidores producen un conjunto de indicador de o´ rdenes muy diferentes. Es necesario conectarse varias veces usando minicom para entender que es lo que hace nuestro servidor y construir las cadenas de espera necesarias.

6.2.6.

Si el servidor usa PAP

Si el servidor al que se quiere conectar utiliza autenticaci´on PAP o CHAP, ser´a necesario trabajar un poco m´as 7 . Al fichero de opciones anterior, hay que a˜nadir las l´ıneas: # # fuerza pppd a usar el nombre de usuario de tu ISP como nombre de host # durante el proceso de autenticaci´ on # name # se tiene que editar esta l´ ınea. # # # En , hay que poner el nombre con el que te identificas al # servidor, es decir, en mi caso reemplazo por # anonimo@servidor # # Si se est´ a ejecutando un *servidor* PPP y se necesita forzar PAP o CHAP # descomentar la l´ ınea apropiada de las siguientes. NO USE ESTO si es un cliente # conect´ andose a un servidor PPP (incluso si usa PAP o CHAP) por que esto har´ ıa # que el SERVIDOR se autentique a s´ ı mismo a tu m´ aquina (lo que ciertamente # no puede hacerse----y el enlace fallar´ a). #+chap #+pap # # Si usa secretos ENCRIPTADOS en el fichero /etc/PPP/pap-secrets # entonces descomente la siguiente l´ ınea. # Nota: esto NO es lo mismo que usar contrase˜ nas encriptadas como en MS, ya que # existe una opci´ on llamada as´ ı en el acceso telef´ onico de MS (RAS) en Windows NT. #+papcrypt

Uso de MSCHAP Microsoft Windows NT RAS puede configurarse para utilizar una variante de CHAP (Challenge/Handshake Authentication Protocol). En las fuentes de PPP, puede encontrarse un fichero llamado README.MSCHAP80, que informa sobre esto. Puede averiguarse si el servidor solicita autenticaci´on mediante este protocolo, habilitando la depuraci´on en pppd. Si el servidor est´a utilizando autenticaci´on MS CHAP, aparecer´an l´ıneas como: rcvd [LCP ConfReq id=0x2 ]

Donde la clave est´a en auth chap 80. Para utilizar MS CHAP, hay que recompilar pppd con soporte para ello. Vea las instrucciones de README.MSCHAP80 en las fuentes de PPP con las instrucciones de compilaci´on con esta variante. 7 N.

del T.: Si su servidor usa PAP, y los intentos de conexi´on fallan mire si en el gui´on de chat no ha comentado las l´ıneas correspondientes al login y password. Si no lo est´an, com´entelas anteponiendo un # delante de las dos l´ıneas. La autentificaci´on PAP requiere que no se usen esas l´ıneas ya que la autentificaci´on se hace mediante las opciones name nombre@servidor (en pppd) y el fichero pap-secrets. Vea Un gui´on para conexiones autentificadas PAP/CHAP para ver el aspecto del gui´on de conexi´on de chat m´as adelante en este mismo texto.

Redes de conexi´on telef´onica y PPP

203

Si est´a usando autenticaci´on pap o chap, debe crearse el fichero “secrets”. Estos son 1) /etc/ppp/papsecrets y 2) /etc/ppp/chap-secrets. 8 Deben pertenecer al usuario root, grupo root y tener permisos 740 por seguridad. El primer punto que hay que decir acerca de PAP y CHAP es que est´an dise˜nados para autentificar m´aquinas y no usuarios. En otras palabras, una vez que la m´aquina ha realizado su conexi´on PPP al servidor, CUALQUIER usuario en el sistema puede usar esa conexi´on—no s´olo usted. PAP puede (y para CHAP LO HACE) requerir autenticaci´on bidireccional—´esto es un nombre y contrase˜na v´alidos se requieren en cada computadora para la correspondiente computadora involucrada. Sin embargo, e´ sta no es la manera en la que la mayor´ıa de los servidores PPP que ofrecen conexiones telef´onicas PPP mediante autenticaci´on PAP operan. O lo que es lo mismo, su ISP probablemente le habr´a dado un nombre de usuario y contrase˜na para permitirle conectar a sus sistemas y de all´ı a Internet. Su ISP no est´a interesado para nada en el nombre de su computadora. Esto se consigue utilizando el nombre de usuario que se pone en la opci´on name que se le pasa a pppd. As´ı que si se quiere usar el nombre de usuario que le ha dado el ISP, a˜nada la l´ınea name nombre nombre_usuario_en_el_ISP al fichero /etc/ppp/options. T´ecnicamente, se deber´ıa usar user usuario local nombre en el ISP para PAP, pero pppd es suficientemente inteligente para interpretar el nombre como usuario si se requiere para usar PAP. La ventaja de usar la opci´on “name” es que tambi´en es v´alida para CHAP. Como PAP es para autenticar computadoras, t´ecnicamente se necesita especificar tambi´en un nombre en la computadora remota. Sin embargo, como mucha gente s´olo tiene un u´ nico ISP, se puede usar un comod´ın (*) para el host remoto en el fichero “secrets”. El fichero /etc/ppp/pap-secrets se asemeja a # Contrase˜ nas para autenticaci´ on usando PAP # cliente servidor secreto direcciones IP locales aceptables Los cuatro campos se delimitan por espacios en blanco, y el u´ ltimo puede estar vac´ıo. (que es lo que se quiere para una adjudicaci´on din´amica o probablemente est´atica de su direcci´on IP por su ISP). Supuesto que su ISP le da el nombre de usuario “pedro” y la contrase˜na “picapiedra” se deber´ıa poner “name pedro” en el fichero /etc/ppp/options y poner el fichero /etc/ppp/pap-secrets como sigue: # Contrase˜ nas para autenticaci´ on PAP # cliente servidor secreto direcciones IP locales aceptables pedro * picapiedra Esto dice para el nombre local de m´aquina pedro (al que le hemos dicho a pppd que use incluso si no es nuestro nombre local) y por CUALQUIER servidor, que use la contrase˜na picapiedra. D´ese cuenta de que no se necesita especificar una direcci´on IP local a no ser que queramos FORZAR una direcci´on IP local particular est´atica. Incluso si se intenta esto, es posible que no funcione en la mayor´ıa de servidores PPP (por razones de seguridad) puesto que no permiten que los sistemas remotos pongan la direcci´on IP que ellos deseen que se les d´e. Esto requiere que se tengan m´etodos de autenticaci´on mutua—esto es se debe permitir a la m´aquina local identificar al servidor remoto y al servidor remoto identificar la m´aquina local. As´ı que si su m´aquina es pedro y la remota es pablo, su m´aquina deber´ıa poner “ name pedro remotename pablo” y la m´aquina remota deber´ıa poner “name pablo remotename pedro” en sus respectivos ficheros /etc/ppp/options.ttySx Los ficheros /etc/ppp/chap-secrets para “pedro” deber´ıan parecerse a # Secretos para autentificarse mediante CHAP 8 N.

del T.: S´olo es necesario uno de ellos dependiendo de si la autenticaci´on es chap o pap.

204

Caracter´ısticas avanzadas

# cliente pedro pablo

servidor pablo pedro

secreto picapiedra wilma

direcciones IP locales aceptables

y para pablo # Secretos para autentificarse mediante CHAP # cliente servidor secreto direcciones IP locales aceptables pablo pedro picapiedra pedro pablo wilma F´ıjese en particular que ambas m´aquinas deben tener entradas para autenticaci´on bidirecional. Esto permite a la m´aquina local autentificarse ella misma a la remota Y a la m´aquina remota autentificarse ella misma a la m´aquina local. Un gui´on para conexiones autentificadas mediante PAP/CHAP Si su ISP usa PAP/CHAP, entonces el gui´on de chat es m´as simple. Todo lo que necesita hacer el gui´on es llamar al tel´efono, esperar una conexi´on y dejar que pppd entre. #!/bin/sh # # Esta es la segunda parte del gui´ on ppp-on. Realizar´ a el protocolo de conexi´ on # para el enlace # exec /usr/sbin/chat -v \ TIMEOUT 3 \ ABORT ’\nBUSY\r’ \ ABORT ’\nNO ANSWER\r’ \ ABORT ’\nRINGING\r\n\r\nRINGING\r’ \ ’’ \rAT \ ’OK-+++\c-OK’ ATH0 \ TIMEOUT 30 \ OK ATDT\$TELEPHONE \ CONNECT ’’ \

Como ya hemos visto, se puede activar la informaci´on de debug en el log del sistema con la opci´on -d a pppd. La opci´on “debug” es equivalente a e´ sta. A medida que establecemos una conexi´on nueva con un gui´on nuevo, deje la opci´on debug activada por ahora. (Cuidad´ın: si el espacio de disco escasea, registrar los intercambios pppd puede hacer que el syslog crezca en demas´ıa y acabar con todo el espacio—pero para hacer esto debe fallar la conexi´on y mantenerse intent´andolo por unos minutos). Una vez que se est´a satisfecho y todo est´e funcionando como es debido, entonces se puede quitar esta opci´on. exec /usr/sbin/pppd debug file options.myserver /dev/ttyS0 38400 \

Probando el gui´on de conexi´on Abra un Xterm como root (si se est´a en X) o una consola virtual y entre como root. En esta sesi´on nueva, ejecute la siguiente orden: # tail -f /var/log/messages

Muchos sistemas registran la salida al fichero /var/log/messages. Si tiene un nombre diferente en el sistema, sustituya el nobre de fichero de registros del sistema en la orden de arriba. En la primera ventana (o consola virtual) ejecute la orden # ppp-on &

Redes de conexi´on telef´onica y PPP

205

(o como quiera que haya nombrado su versi´on editada de /usr/sbin/ppp-on). Si no puso el gui´on en segundo plano especificando la opci´on & al final de la orden, no se le devolver´a al indicador del sistema hasta que PPP termine (cuando el enlace finalice). Ahora cambie la ventana donde se est´a mostrando el registro del sistema. Se ver´a entonces algo como lo siguiente (supongo que mantiene todav´ıa las opciones -v en chat y -d en pppd). . . esto es el gui´on de chat que es registrado con sus respuestas en el sistema por las opciones de inicio de pppd: Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct

21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21

16:09:58 16:09:59 16:09:59 16:09:59 16:10:00 16:10:00 16:10:00 16:10:00 16:10:00 16:10:22 16:10:22 16:10:22 16:10:22 16:10:23 16:10:23 16:10:23 16:10:23 16:10:23 16:10:23 16:10:23 16:10:24 16:10:24 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:27

hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin

chat[19868]: chat[19868]: chat[19868]: chat[19868]: chat[19868]: chat[19868]: chat[19868]: chat[19868]: chat[19868]: chat[19868]: chat[19868]: chat[19868]: chat[19868]: chat[19868]: chat[19868]: chat[19868]: chat[19868]: chat[19868]: chat[19868]: chat[19868]: chat[19868]: chat[19868]: pppd[19872]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]:

abort on (NO CARRIER) abort on (BUSY) send (ATZˆM) expect (OK) ATZˆMˆM OK -- got it send (ATDT722298ˆM) expect (CONNECT) ˆM ATDT722298ˆMˆM CONNECT -- got it send (ˆM) expect (ogin:) kepler login: -- got it send (hartrˆM) expect (ssword:) hartrˆM Password: -- got it send (??????ˆM) expect (hartr) [hartr -- got it send (PPPˆM) pppd 2.1.2 started by root, uid 0 Using interface PPP0 Connect: PPP0 /dev/cua1 fsm_sdata(LCP): Sent code 1, id 1. LCP: sending Configure-Request, id 1 fsm_rconfreq(LCP): Rcvd id 1. lcp_reqci: rcvd MRU (1500) (ACK) lcp_reqci: rcvd ASYNCMAP (0) (ACK) lcp_reqci: rcvd MAGICNUMBER (a098b898) (ACK) lcp_reqci: rcvd PCOMPRESSION (ACK) lcp_reqci: rcvd ACCOMPRESSION (ACK) lcp_reqci: returning CONFACK. fsm_sdata(LCP): Sent code 2, id 1. fsm_rconfack(LCP): Rcvd id 1. fsm_sdata(IPCP): Sent code 1, id 1. IPCP: sending Configure-Request, id 1 fsm_rconfreq(IPCP): Rcvd id 1. ipcp: received ADDR (10.144.153.51)

206

Caracter´ısticas avanzadas

Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct Oct

21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21

16:10:27 16:10:27 16:10:27 16:10:27 16:10:27 16:10:28 16:10:30 16:10:30 16:10:30 16:10:31 16:10:31 16:10:31 16:10:31 16:10:31 16:10:31 16:10:31 16:10:31 16:10:31 16:10:31 16:10:31 16:10:31

hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin hwin

pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]:

(ACK) ipcp: received COMPRESSTYPE (45) (ACK) ipcp: returning Configure-ACK fsm_sdata(IPCP): Sent code 2, id fsm_sdata(IPCP): Sent code 1, id IPCP: sending Configure-Request, fsm_rconfreq(IPCP): Rcvd id 255. ipcp: received ADDR (10.144.153.51) (ACK) ipcp: received COMPRESSTYPE (45) (ACK) ipcp: returning Configure-ACK fsm_sdata(IPCP): Sent code 2, id fsm_rconfack(IPCP): Rcvd id 1. ipcp: up local IP address 10.144.153.104 remote IP address 10.144.153.51

1. 1. id 1

255.

´ (Nota— Se est´a usando DIRECCION IP ESTATICA— aqu´ı mi m´aquina env´ıa la direcci´on al servidor ´ PPP— no ver´a esto si usa DIRECCION IP DINAMICA.) Adem´as este servidor requiere una orden espec´ıfica para comenzar PPP por su parte. Parece una buena idea revisar como antes con pings a direcciones IP y nombres de host. Inicie el navegador web o lo que sea y a surfear—¡est´a conectado!

6.2.7.

Desconexi´on del enlace PPP

Cuando se haya finalizado la conexi´on PPP, debe utilizarse la orden est´andar ppp-off para cerrarla (hay que recordar que para hacer esto hay que ser root o miembro del grupo pppusers). En el registro del sistema se ver´a algo como: Oct Oct Oct Oct Oct Oct Oct

21 21 21 21 21 21 21

16:10:45 16:10:45 16:10:45 16:10:45 16:10:46 16:10:46 16:10:46

hwin hwin hwin hwin hwin hwin hwin

pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]: pppd[19873]:

Interrupt received: terminating link ipcp: down default route ioctl(SIOCDELRT): Bad address fsm_sdata(LCP): Sent code 5, id 2. fsm_rtermack(LCP). Connection terminated. Exit.

No se preocupe aerca de SIOCDELRT—tan s´olo es pppd d´andose cuenta de que est´a finalizando y no es nada de lo que deba preocuparse.

6.2.8.

Resolviendo problemas comunes una vez que la conexi´on funciona

Un problema que se encontrar´a es que muchos proveedores de servicios, dar´an soporte s´olo al paquete de ´ software que ellos mismos distribuyen. Este es t´ıpicamente para Microsoft Windows y muchos proveedores de servicios parece que no conocen nada de Unix o GNU/Linux. Por tanto, hay que estar preparados para obtener asistencia muy limitada de ellos. Resoluci´on de problemas de direccionamiento De acuerdo, la conexi´on PPP est´a establecida y funciona correctamente y se puede hacer ping al servidor PPP mediante la direcci´on IP (el segundo o n´umero IP “remoto” que aparece con ifconfig ppp0), pero no se puede ir m´as all´a.

Redes de conexi´on telef´onica y PPP

207

Antes que nada, hay que tratar de hacer ping a las direcciones IP especificadas en /etc/resolv.conf como servidores de nombres. Si esto funciona se puede ir m´as all´a del servidor PPP ( a menos que e´ ste tenga el mismo n´umero IP que el IP “remoto” de la conexi´on). Por tanto hay que tratar de hacer ping al nombre completo de Internet de su proveedor de servicios: ping mi.isp.net

Poniendo, por supuesto, el nombre de su ISP real. Si esto no funciona, usted tiene un problema con la resoluci´on de nombres. Esto es probablemente por una errata en el fichero /etc/resolv.conf. Compruebe este fichero cuidadosamente, compar´andolo con la informaci´on del fichero ejemplo /etc/resolv.conf de la Secci´on 6.1.1. Si esto no funciona (y el proveedor confirma que sus servidores de nombres est´an funcionando), existe un problema en alg´un sitio, por lo que hay que comprobar cuidadosamente la instalaci´on de GNU/Linux (comprobando expresamente los permisos de los ficheros). ¡Una posibilidad es que el servidor remoto sea un servidor GNU/Linux donde la opci´on de reenv´ıo IP (“IP forwarding”) no haya sido especificada en el n´ucleo!. Inspeccionando un intento fallido (Debugging). Hay un buen n´umero de razones por las que la conexi´on puede no funcionar— que chat no haya finalizado correctamente, que se tenga una l´ınea con ruido, etc. As´ı que revise los registros del sistema para m´as indicaciones. Un problema muy com´un es que la gente compile el soporte PPP en el n´ucleo y cuando intentan ejecutar pppd, ¡el n´ucleo dice que no soporta PPP! Hay una serie de razones por las que esto puede ocurrir. No se inici´o el n´ucleo nuevo que se compil´o con soporte PPP. Se produjo un error al instalar el m´odulo PPP que se compil´o. Se esperaba que los m´odulos fuesen cargados autom´aticamente y no lo son. Se est´a usando una versi´on incorrecta de PPP para el n´ucleo. No se ejecuta pppd como root. Se cometi´o una equivocaci´on al escribir alg´un gui´on de inicio. No se inicia sesi´on correctamente en el servidor. No se inicia PPP en el servidor. EL proceso remoto de PPP es lento al empezar. La ruta por omisi´on no est´a puesta. ¡Y un mont´on de otros! Eche un vistazo al PPP FAQ (el cu´al es realmente una serie de preguntas y respuestas). ¡Este es un documento f´acil de entender, y las respuestas est´an all´ı! Si las respuestas a sus preguntas no se encuentran all´ı, el problema no es un fallo de PPP. Obteniendo ayuda cuando se est´a totalmente atascado. Si no se es capaz de hacer funcionar el enlace PPP, vuelva a trav´es de este documento y rev´ıselo todo—junto con la salida creada por “chat -v” y “pppd -d” el el registro del sistema. Tambi´en consulte la documentaci´on de PPP y el FAQ adem´as de otros documentos mencionados aqu´ı. Si todav´ıa est´a atascado, intente con los grupos de noticias comp.os.linux.misc y comp.os.linux.networking que son regularmente visitados por gente que puede ayudarle, as´ı como comp.protocols.ppp Si elige buscar en los grupos USENET, por favor no publique un mensaje muy largo consistiendo en la salida de debuging, Esto malgasta grandes cantidades de ancho de banda. Es mucho mejor describir el problema y quiz´a incluir unas pocas lineas de la salida de debugeo (definitivamente no m´as de una pantalla).

208

Caracter´ısticas Avanzadas

6.3. Red con UUCP UUCP (UNIX-to-UNIX Copy) es un viejo mecanismo usado para transferir informaci´on entre sistemas Unix. Mediante UUCP, los sistemas Unix se comunican con otros (v´ıa m´odem), transfiriendo mensajes de correo, art´ıculos de noticias, ficheros y dem´as. Si no tiene acceso TCP/IP o SLIP, puede usar UUCP para comunicarse con el mundo. Casi todo el software de correo y noticias (ver Secciones 6.5 y 6.6) se puede configurar para usar transferencias UUCP. De hecho, si tiene alg´un servidor Internet cercano, puede recibir correo en su sistema de esa red mediante UUCP. El libro Linux Network Administrator’s Guide contiene informaci´on completa para configurar y utilizar UUCP en GNU/Linux. Tambi´en encontrar´a informaci´on en el documento UUCP-HOWTO, que puede obtener por FTP an´onimo de sunsite.unc.edu. Otra fuente de informaci´on sobre UUCP es el libro Managing UUCP and USENET, de Tim O’Reilly y Grace Todino. Vea el ap´endice A para m´as informaci´on.

6.4. Redes con sistemas Microsoft Samba es un conjunto de programas que trabajan juntos para permitir a clientes el acceso a ficheros e impresoras de un servidor a trav´es del protocolo SMB (Server Message Block). Escrito inicialmente para Unix, Samba se ejecuta ahora tambi´en en Netware, OS/2 y VMS. En la pr´actica esto significa que se pueden redireccionar a GNU/Linuxdiscos e impresoras de clientes Lan Manager, Windows 3.11, Windows NT, GNU/Linuxy OS/2. Esto permite a estos sistemas operativos comportarse como un servidor LAN o un servidor Windows NT, s´olo que con funcionalidad y flexibilidad a˜nadida para hacer la vida m´as f´acil para los administradores. Samba: Integrando Unix y Windows contiene informaci´on completa sobre la configuraci´on y uso de Samba en GNU/Linux. Las p´aginas de Samba est´an en http://samba.anu.edu.au/samba/ y el SMB HOWTO puede ser de ayuda tambi´en.

6.5.

Correo electr´onico

Como casi todos los UNIX, GNU/Linux dispone de paquetes de software para tener correo electr´onico. ´ Este puede ser tanto local (entre usuarios de su sistema) como remoto (entre usuarios de otras m´aquinas o redes mediante una red TCP/IP o UUCP). El software de correo elect´onico consta normalmente de dos partes: un agente de usuario o mailer y un programa de transporte. El agente de usuario es el software que el usuario utiliza para crear mensajes, leerlos, etc. Podemos destacar aqu´ı los programas elm y mailx. El programa de transporte es quien se ocupa de entregar correo tanto remoto como local, conociendo protocolos de comunicaciones y dem´as. El usuario nunca interact´ua directamente con este programa, sino que lo hace a trav´es del agente de usuario. Sin embargo, como administrador del sistema es importante que comprenda c´omo funciona el programa de transporte, con el fin de configurarlo seg´un sus necesidades. En GNU/Linux, el m´as conocido de los programas de transporte es sendmail. Es capaz de enviar tanto correo local como remoto v´ıa UUCP o TCP/IP. Una alternativa a sendmail es Smail, que es menos complicado de configurar. En el documento Linux Mail HOWTO se expone m´as informaci´on sobre el software disponible para correo y c´omo configurarlo. Si pretende tener correo remoto, necesitar´a entender los conceptos de TCP/IP o UUCP (seg´un la red utilizada) (vea las secciones 6.1 y 6.3). Los documentos de UUCP y TCP/IP indicados en el ap´endice A tambi´en le ayudar´an. Casi todo el software de correo para GNU/Linux puede obtenerse mediante FTP an´onimo de sunsite.unc.edu en el directorio /pub/linux/system/Mail.

6.6. Noticias y Usenet GNU/Linux proporciona tambi´en una serie de facilidades para manejar las noticias. Puede elegir configurar un servidor de noticias local, que permitir´a a los usuarios enviar “art´ıculos” a los diversos “grupos” del

Noticias y Usenet

209

sistema. . . una animada forma de discutir. Sin embargo, si tiene acceso a una red UUCP o TCP/IP, podr´a participar realmente en Usenet, una red de noticias de a´ mbito mundial. En el software de noticias hay dos partes, el servidor y el cliente. El servidor de noticias es el software que controla los grupos de noticias y se ocupa de enviar los art´ıculos a otras m´aquinas (si estamos en una red). El cliente, o lector de noticias, es el software que conecta al servidor para permitir que los usuarios lean y escriban art´ıculos. Hay varios tipos de servidores de noticias para GNU/Linux. Todos siguen un dise˜no y esquema de protocolos parecido. Principalmente, tenemos los servidores “C News” e “INN”. En cuanto a clientes, destacamos rn y tin. La selecci´on del cliente es m´as o menos cuesti´on de gustos. Todos los lectores de noticias trabajar´an igual de bien con versiones distintas del software del servidor, por tanto el lector de noticias es independiente del servidor elegido y viceversa. Si s´olo pretende leer y escribir art´ıculos localmente (no como parte de USENET), necesitar´a un servidor que corra en su sistema, as´ı como el lector para los usuarios. El servidor guardar´a los art´ıculos en un directorio como /usr/spool/news, y el lector se compilar´a para buscar los art´ıculos en ese directorio. Sin embargo, si desea tener noticias en red, tendr´a ahora varias opciones m´as. Para redes basadas en TCP/IP se usa el protocolo NNTP (Network News Transmision Protocol). NNTP permite al cliente leer los art´ıculos a trav´es de la red, desde una m´aquina remota. NNTP tamb´en permite a los servidores enviarse art´ıculos por la red. En esto se basa USENET. Casi todas las empresas y universidades conectadas cuentan con uno o m´as servidores NNTP para controlar todas las noticias USENET en ese lugar. Cualquier otra m´aquina de esa empresa o universidad tiene un lector de noticias para leer y enviar art´ıculos al servidor NNTP. Lo que quiere decir que en realidad s´olo el servidor NNTP almacena los art´ıculos en disco. Aqu´ı tenemos algunos de los posibles marcos de configuraci´on de las noticias. Noticias locales. Es decir, no hay conexi´on a red o no se desea tener noticias en red. En este caso, hay que ejecutar C News o INN en su m´aquina, e instalar el lector para leer las noticias locales. Con acceso a red TCP/IP y servidor NNTP. Si existe un servidor NNTP ya configurado, puede leer y escribir art´ıculos desde su m´aquina GNU/Linux instalando un lector basado en NNTP (casi todos los lectores tienen opciones de configuraci´on para leer noticias en NNTP). Por lo tanto, no necesita preocuparse de instalar el servidor o guardar art´ıculos en su sistema. El lector se ocupar´a de enviarlos a la red. Por supuesto, necesitar´a configurar TCP/IP y tener acceso a la red (vea la Secci´on 6.1). Tiene acceso a la red TCP/IP pero no hay un servidor NNTP. En este caso, puede instalar un servidor NNTP en su sistema. Puede instalar un lector de noticias local o basado en NNTP, y el servidor almacenar´a art´ıculos en su sistema. Adem´as, puede instalarlo para comunicarse con otros servidores NNTP para intercambiar art´ıculos. Desea transferir noticias con UUCP. Si tiene acceso a UUCP (ver la Secci´on 6.3), puede participar en USENET de la misma forma. Necesitar´a instalar un servidor de noticias (local) y un lector. Adem´as necesitar´a configurar su software UUCP para transferir los art´ıculos peri´odicamente a otra m´aquina con UUCP (conocido como “proveedor de noticias”). En UUCP no se usa el protocolo NNTP, sino que posee su propio mecanismo para transferir art´ıculos. Muchos programas de noticias “est´andares” (disponibles por FTP an´onimo en ftp.uu.net, directorio /news) podr´ıan no compilarse en GNU/Linux. Los parches que hagan falta se encuentran en sunsite.unc.edu, directorio /pub/linux/system/Mail (aqu´ı se encuentra tambi´en todo el software de correo para GNU/Linux). Pueden encontrarse tamb´en versiones ya compiladas. Para m´as informaci´on, l´ease el documento Linux News HOWTO que encontrar´a en sunsite.unc.edu. El documento del LDP Linux Network Administrator’s Guide tambi´en contiene informaci´on completa sobre configuraci´on del software de noticias para GNU/Linux. El libro Managing UUCP and Usenet, de Tim O’Reilly y Grace Todino es una gu´ıa excelente para configurar el software de noticias y UUCP. Tambi´en es de inter´es el documento “How to become a USENET site”, disponible en ftp.uu.net, directorio /usenet/news.announce.newusers.

210

Caracter´ısticas Avanzadas

Ap´endice A

Fuentes de informaci´on sobre GNU/Linux en ingl´es Este ap´endice contiene informaci´on sobre varias fuentes de informaci´on sobre GNU/Linux: documentos en l´ınea, libros y dem´as. Muchos de estos documentos se encuentran tanto en forma impresa como electr´onicamente en Internet o en sistemas BBS. Muchas distribuciones de GNU/Linux tambi´en incluyen mucha de esta documentaci´on en la distribuci´on misma, por lo que una vez que haya instalado GNU/Linux estos ficheros pueden encontrarse ya presentes en su sistema.

Documentos en l´ınea en ingl´es Estos documentos deber´ıan estar disponibles en cualquiera de los sitios FTP con ficheros de GNU/Linux (vea el Ap´endice C para una lista). Si no tiene acceso directo a un FTP quiz´a pueda encontrar estos documentos en otros servicios en l´ınea como CompuServe, BBSs locales y dem´as. Si tiene acceso al correo por Internet puede usar el servicio ftpmail para recibir estos documentos. Vea el Ap´endice C para mayor informaci´on. Los siguientes documentos en particular pueden encontrarse en sunsite.unc.edu en el directorio /pub/Linux/docs. Existen r´eplicas de este directorio en muchos sitios; no obstante, si no encuentra ninguna r´eplica cerca de usted e´ ste es uno bueno por el que decidirse. Las preguntas con respuesta m´as frecuentes sobre GNU/Linux La lista de preguntas m´as frecuentes o ((FAQ)) es una lista de preguntas ¡y respuestas! comunes sobre GNU/Linux. Con este documento se pretende ofrecer una fuente de informaci´on general sobre GNU/Linux, problemas comunes y soluciones as´ı como una lista de otros recursos de informaci´on. Todo nuevo usuario de GNU/Linux deber´ıa leer este documento. Se encuentra disponible en numerosos formatos como ASCII plano, PostScript o HTML. La FAQ de GNU/Linux la mantiene Roert Kiesling, [emailprotected]. La GNU/Linux META-FAQ La META-FAQ es una recopilaci´on de ((metapreguntas)) sobre GNU/Linux; es decir, fuentes de informaci´on sobre el sistema GNU/Linux y otros temas generales. Es un buen punto de partida para el usuario de Internet que desee encontrar m´as informaci´on sobre este sistema. Se ocupa de ella Michael K. Johnson, [emailprotected]. La GNU/Linux INFO-SHEET La [ GNU/Linux INFO-SHEET ] es una introducci´on t´ecnica al sistema GNU/Linux. Se trata de una presentaci´on general de las prestaciones del sistema y del software disponible, y adem´as incluye una lista con otras fuentes de informaci´on sobre GNU/Linux. El formato y el contenido son similares en su naturaleza a la META-FAQ; casualmente tambi´en la mantiene Michael K. Johnson. 211

212

Linux Journal

Ap´endice

Linux Journal pone a disposici´on p´ublica en formato electr´onico a trav´es de su sitio web http://www.linuxjournal.com/ art´ıculos seleccionados de la revista (que se publica mensualmente). Los art´ıculos cubren materias para usuarios principiantes y avanzados, incluyen prestaciones de GNU/Linux que se usan en el ((mundo real)) y art´ıculos y tablas en los que compara las distribuciones de GNU/Linux y a los que con frecuencia se hace referencia.

GNU/Linux Gazette Publicaci´on en l´ınea de car´acter gratuito que puede encontrar en http://www.linuxgazette.com/, Linux Gazette ofrece respuestas y entretenimiento ((haciendo GNU/Linux algo m´as divertido)). La gaceta la produce SSC, los editores de Linux Journal. Puede ponerse en contacto con [emailprotected] para m´as informaci´on. GNU/Linux Resources GNU/Linux Resources (http://www.linuxresources.com/) cubre ((lo que es, d´onde conseguirlo, c´omo conseguir toda la informaci´on que necesita para hacer que funcione y mucho m´as)). El mapa de software GNU/Linux El mapa de software para GNU/Linux es una lista de aplicaciones disponibles para GNU/Linux, d´onde conseguirlas, qui´en las mantiene y dem´as. Se encuentra lejos de estar completa. Compilar una lista completa del software existente para GNU/Linux ser´ıa pr´acticamente imposible. No obstante, se incluyen muchos de los paquetes de software m´as populares para GNU/Linux. Si no puede encontrar una aplicaci´on en particular que cubra sus necesidades e´ ste es un buen lugar por el que comenzar. Lo mantiene Lars Wirzenius, [emailprotected]. El ´ındice de HOWTOs sobre GNU/Linux Los HOWTOs de GNU/Linux son una recopilaci´on de documentos, en cada uno de los cuales se describe en detalle un cierto aspecto del sistema GNU/Linux. Los mantiene Matt Welsh [emailprotected]. El HOWTO-Index lista los documentos HOWTO que hay disponibles. Otros documentos en l´ınea Si se mueve por el subdirectorio docs de cualquier sitio FTP con GNU/Linux ver´a muchos otros documentos que no se encuentran listados aqu´ı: un mont´on de FAQs, experiencias interesantes y otra informaci´on importante. Esta miscel´anea resulta dif´ıcil de categorizar aqu´ı; si no ve lo que anda buscando en la lista de arriba e´ chele un vistazo a uno de los sitios con fichero sobre GNU/Linux que se listan en el Ap´endice C.

Introducci´on al Linux Documentation Project El Linux Documentation Project (LDP) trabaja desarrollando documentaci´on fidedigna y de calidad para el sistema operativo GNU/Linux. El objetivo principal de los autores del LDP es el de escribir documentos en varios formatos que cubran la instalaci´on, la configuraci´on y el uso de GNU/Linux. El LDP produce documentos en diferentes formatos: texto plano que puede leer en cualquier parte, p´aginas HTML que puede leer con cualquier navegador, p´aginas de manual que pueden leerse en l´ınea o en un libro y documentaci´on que puede imprimirse y leerse en libros. El ((hogar)) del LDP es su p´agina web, situada en http://www.tldp.orge ´ es el lugar donde buscar actuaincontables r´eplicas en http://www.tldp.org/mirrors.html. Este lizaciones, noticias y algunos documentos que s´olo est´an publicados en la red. Algunos documentos que s´olo pueden encontrarse en Internet son:

Fuentes de informaci´on sobre GNU/Linux

213

Linux Gazette, una recopilaci´on mensual de art´ıculos in´editos y cartas de usuarios de GNU/Linux de todo el mundo. The Linux Kernel Hackers’ Guide, un foro interactivo y moderado donde los desarrolladores del n´ucleo de GNU/Linux conversan sobre temas relativos al desarrollo del n´ucleo. COMOs especiales, documentos que se basan en cosas que no podr´ıan explicarse en versiones en texto plano. Adem´as de las p´aginas web del LDP, e´ ste produce cuatro tipos b´asicos de documentaci´on: gu´ıas, HOWTOs y mini-HOWTOs, p´aginas man y FAQs. Gu´ıas Libros enteros sobre temas complejos. HOWTOs y mini HOWTOs Documentos en los que se cubre de una manera completa un tema bien definido o de una manera m´as sencilla alguna tarea concreta. p´aginas man Documentaci´on para programas independientes, formatos de fichero y funciones de bibliotecas en el formato est´andar de referencia UNIX. FAQs Las preguntas m´as frecuentes sobre varias materias, incluyendo la FAQ de GNU/Linux. Si tiene alg´un comentario sobre alg´un documento en particular de los de esta serie m´andeselo al autor. Todos los documentos incluyen la direcci´on de correo-e del autor para enviarle comentarios y, aunque los autores no siempre tienen tiempo para responder, leen y tienen en consideraci´on los comentarios considerados hacia su trabajo. Sus comentarios ayudan a mejorar las nuevas versiones de estos documentos. Si tiene alg´un comentario o sugerencia sobre el LDP en general puede enviar un mensaje a .

Libros y otras obras publicadas Linux Journal es una revista mensual para y sobre la comunidad de GNU/Linux, escrita y producida por desarrolladores y entusiastas de GNU/Linux. Se distribuye en todo el mundo y es una excelente manera de mantenerse en contacto con la din´amica del mundo de GNU/Linux, especialmente si no tiene acceso a las noticias de USENET. En el momento de escribir esto las suscripciones a Linux Journal se encuentran entorno a los US$22/a˜no en los Estados Unidos, US$27 en Canad´a y US$37 en el resto del mundo. Para suscribirse, o para mayor informaci´on, escriba a Linux Journal, PO Box 55549, Seattle, WA, 98155-0549, USA, o llame al +1 206 782-7733, o al n´umero gratuito 1-888-66-Linux en Norteam´erica. Su n´umero de fax es el +1 206 782-7191 y la direcci´on de correo-e es [emailprotected]. Tambi´en puede encontrar una FAQ sobre Linux Journal y art´ıculos de ejemplo por FTP an´onimo en /pub/Linux/docs/linux-journal dentro de sunsite.unc.edu. Como ya hemos dicho, no hay muchos libros publicados que hablen de GNU/Linux especificamente. De todos modos, si es nuevo en el mundo de UNIX o quiere m´as informaci´on de la que aqu´ı se presenta le sugerimos que eche un vistazo a los siguientes libros.

T´ıtulos sobre GNU/Linux T´ıtulo:

The Complete Linux Kit

Autor:

Stefan Strobel, Rainer Maurer, Stefan Middendorf, Volker Elling

Editor:

Springer Verlag, 1997

ISBN:

0387142371, $59.95

214

Ap´endice

Descripci´on del editor: esta obra de dos vol´umenes que incluye cuatro CD-ROMs incluye Linux Universe: Installation and Configuration y Linux: Unleashing the Workstation in Your PC. El primero es un libro/CD-ROM que incluye una versi´on completamente instalable de GNU/Linux 2.0 y gu´ıa de instalaci´on detallada para instalar y administrar cualquier sistema GNU/Linux junto con diferentes herramientas y aplicaciones GNU/Linux. T´ıtulo:

Linux: Installation, Configuration, and Use

Autor:

Michael Kofler

Editor:

Addison-Wesley, 1997

ISBN:

0201178095, $34.95

Descripci´on del editor: una extensa gu´ıa pr´actica, en este libro se cubre la instalaci´on, configuraci´on y uso de GNU/Linux. Michael Kofler acompa˜na a los lectores por la instalaci´on, la administraci´on a un nivel sencillo y el uso del editor Emacs, el sistema de edici´on de documentos LaTeX y el lenguaje de programaci´on Tcl/Tk. El CD-ROM contiene RedHat GNU/Linux 4.1 y las fuentes completas de los n´ucleos 2.0.29 y 2.1.28. T´ıtulo:

GNU/Linux: Configuration and Installation (3rd Edition)

Autor:

Patrick Volkerding

Editor:

IDG Books, 1997

ISBN:

1558285660, $39.95

Resumen: Nuestro conjunto de 2 CD-ROMs ofrece una de las distribuciones m´as populares de GNU/Linux, Slackware 96, y viene directamente de Patrick Volkerding, el creador de Slackware. Le proporciona consejos no documentados y t´ecnicas instalar, usar y optimizar su sistema GNU/Linux. T´ıtulo:

Linux in Plain English

Autor:

Patrick Volkerding, Kevin Reichard

Editor:

IDG Books, 1997

ISBN:

1558285423 , $19.95

Incluye listados detallados de todas las o´ rdenes de GNU/Linux, cubriendo el conjunto de o´ rdenes GNU y la shell de GNU/Linux Bash, la manipulaci´on de ficheros, el procesado de textos, la impresi´on, Internet, el FTP y la administraci´on de sistemas. T´ıtulo:

Linux for Dummies (1st Ed)

Autor:

Craig Witherspoon, Coletta Witherspoon

Editor:

IDG Books, 1998

ISBN:

0764502751 , $24.99 Un libro para quienes comienzan en GNU/Linux

T´ıtulo:

Linux for Dummies Quick Reference

Autor:

Phil Hughes

Editor:

IDG Books, 1998

Fuentes de informaci´on sobre GNU/Linux

ISBN:

0764503022, $14.99

Descripci´on del editor: Esta ((referencia r´apida)) es una c´omoda gu´ıa para los o´ rdenes y tareas de GNU/Linux m´as comunes, poni´endose un especial e´ nfasis en los editores de texto m´as populares, las interfaces de ventanas y los distintos sabores de GNU/Linux. El libro cubre las o´ rdenes del int´erprete, o´ rdenes b´asicas de scripting de shell y o´ rdenes habituales en la administraci´on y las redes. T´ıtulo:

Discover Linux (1st Ed)

Autor:

Steve Oualline

Editor:

IDG Books, 1997

ISBN:

0764531050 , $24.99

Descripci´on del editor: Los usuarios que conozcan UNIX y quieran aprender a usar GNU/Linux encontrar´an lo que necesitan saber en este t´ıtulo. Entre los diferentes tipos de p´ublicos se incluyen los programadores, los administradores de red, la gente que necesite una conexi´on sencilla a la Internet/Web, los usuarios que necesiten un cortafuegos seguro y los aficionados a los juegos. El CD-ROM incluye la popular distribuci´on RedHat Linux 4.1 de una f´acil instalaci´on. T´ıtulo:

Complete Red Hat Linux Resource Kit C/Dos/Us

Autor:

Obra colectiva

Editor:

Macmillan Digital, 1997

ISBN:

0672310570 , $64.99

Descripci´on del editor: ¡Convierta su PC en una potente estaci´on de trabajo UNIX! Red Hat GNU/Linux es la implementaci´on m´as activa del sistema operativo GNU/Linux. Esta recopilaci´on incluye el software m´as actual adem´as de todo lo necesario para ejecutar el popular sistema UNIX de 32 bits. Incluye la instalaci´on m´as sencilla de todos los sistemas GNU/Linux, m´as de 180 programas y un gestor RPM permiti´endole actualizar su software a nuevas versiones sin reinstalar el sistema. Tambi´en viene con el servidor web Apache, juegos y una gu´ıa de usuario de 250 p´aginas. T´ıtulo:

Running Linux (2nd Edition)

Autor:

Matt Welsh, Lar Kaufman

Editor:

O’Reilly and Associates, 1996

ISBN:

1565921518 , $29.95

Descripci´on del editor: Esta segunda edici´on de Running Linux cubra todo lo que necesita para entender, instalar y comenzar a usar el sistema operativo GNU/Linux. Incluye un extenso tutorial de instalaci´on, informaci´on completa sobre el mantenimiento del sistema, herramientas para el desarrollo de documentos y programaci´on. T´ıtulo:

The No B.S. Guide to Linux

Autor:

Bob Rankin

Editor:

No Starch Press, 1997

215

216

Ap´endice

ISBN:

1886411042 , $34.95

Descripci´on del editor: esta gu´ıa ofrece toda la informaci´on que necesitan los nuevos usuarios sin abrumarles con lecciones de historia o detalles t´ecnicos. El formato de preguntas y respuestas de esta gu´ıa permitea los lectores resolver sus problemas, descubrir trucos para la barra de tareas y diferentes atajos as´ı como hacer la transici´on al nuevo sistema lo m´as fluida posible. T´ıtulo:

Linux Start-Up Guide : A Self-Contained Introduction

Autor:

Fred Hantelmann, A. Faber (Translator)

Editor:

Springer Verlag, 1997

ISBN:

354062676X , $28.00

Descripci´on del editor: Esta descripci´on sistem´atica para principiantes, administradores de sistemas y nuevos usuarios de GNU/Linux proporciona todos los detalles de la arquitectura del sistema operativo, o´ rdenes b´asicas de GNU/Linux y los t´ıpicos paquetes de desarrollo y aplicaciones.

Uso de UNIX T´ıtulo:

Learning the UNIX Operating System

Autor:

Grace Todino & John Strang

Editor:

O’Reilly and Associates, 1987

ISBN:

0-937175-16-1, $9.00

Un buen libro introductorio para aprender el sistema operativo UNIX. La mayor´ıa de la informaci´on deber´ıa poder aplicarse tambi´en a GNU/Linux. Le sugiero que lea este libro si es nuevo en UNIX y desea realmente iniciarse usando su nuevo sistema. T´ıtulo:

Learning the vi Editor

Autor:

Linda Lamb

Editor:

O’Reilly and Associates, 1990

ISBN:

0-937175-67-6, $21.95

Este libro versa entorno al editor vi, un potente editor de textos que encontrar´a en todo sistema UNIX. A menudo es importante conocer y saber usar vi, porque no siempre tendr´a acceso a un editor ((de verdad)) como Emacs. T´ıtulo:

VI Tutorial

Autor:

Belinda Frazier

Editor:

Specialized Systems Consultants

ISBN:

0-916151-54-9, $6.00

En este tutorial se proporcionan explicaciones de ejemplos de o´ rdenes en vi. Aunque seg´un algunos usuarios veteranos de vi aprendieron algo nuevo la primera vez que leyeron el VI Tutorial, e´ ste est´a dirigido a los usuarios principiantes o no muy avanzados de vi.

Fuentes de informaci´on sobre GNU/Linux

T´ıtulo:

Bourne Shell Tutorial

Autor:

Phil Hughes

Editor:

Specialized Systems Consultants

ISBN:

0-916151-39-5, $6.00

En este tutorial se explican las muchas capacidades de la shell del UNIX System V est´andar, conocida habitualmente como la Shell Bourne. Se incluye una gu´ıa de referencia de 4 p´aginas con las o´ rdenes integradas en la shell y un res´umen de 3 p´aginas con algunas de las o´ rdenes UNIX m´as usadas.

Administraci´on de sistemas T´ıtulo:

Essential System Administration

Autor:

Æleen Frisch

Editor:

O’Reilly and Associates, 1991

ISBN:

0-937175-80-3, $29.95

Del cat´alogo de O’Reilly and Associates, ((Como cualquier otro sistema multiusuario, UNIX requiere de especiales cuidados. Essential System Administration le informa de c´omo llevarlos a cabo. Este libro acaba con el mito y la confusi´on entorno a este importante tema ofreci´endole una introducci´on compacta y manejable a las tareas de las que ha de hacerse cargo cualquier persona responsable de un sistema UNIX.)) Yo mismo no lo podr´ıa haber dicho mejor. T´ıtulo:

Samba: Integrating UNIX and Windows

Autor:

John D. Blair

Editor:

Specialized Systems Consultants

ISBN:

1-57831-006-7, $29.95

Samba es la herramienta elegida a la hora de ofrecer la posibilidad de poder compartir ficheros o servicios de impresi´on con Windows desde sistemas UNIX o tipo UNIX. Disponible libremente bajo la Licencia P´ublica GNU, Samba permite integrar perfectamente m´aquinas UNIX en una red Windows sin necesidad de instalar software adicional en las m´aquinas con Windows. Usado junto a GNU/Linux o FreeBSD, Samba ofrece una alternativa de bajo coste al NT Server para Windows. T´ıtulo:

TCP/IP Network Administration

Autor:

Craig Hunt

Editor:

O’Reilly and Associates, 1990

ISBN:

0-937175-82-X, $24.95

Completa gu´ıa para instalar y configurar una red TCP/IP. No siendo este libro espec´ıfico sobre GNU/Linux, claramente el 90 % de e´ l puede aplicarse a GNU/Linux. Acompa˜nado del GNU/Linux NET-2 HOWTO y Gu´ıa de administraci´on de redes, se trata de un gran libro en el que se discuten los conceptos y detalles t´ecnicos entorno a TCP/IP. T´ıtulo:

Managing UUCP and Usenet

Autor:

Tim O’Reilly and Grace Todino

217

218

Ap´endice

Editor:

O’Reilly and Associates, 1991

ISBN:

0-937175-93-5, $24.95

En este libro se nos habla de c´omo instalar y configurar software para redes UUCP, incluyendo la configuraci´on de noticias USENET. Si est´a interesado en UUCP o en acceder a noticias USENET en su sistema no puede dejar de leer este libro.

El sistema X-Window T´ıtulo:

The X Window System: A User’s Guide

Autor:

Niall Mansfield

Editor:

Addison-Wesley

ISBN:

0-201-51341-2, ??

Un completo tutorial y gu´ıa de referencia para usar el sistema X-Window. Si instal´o XWindow en su sistema GNU/Linux y quiere saber c´omo sacarle el m´aximo partido posible deber´ıa leer este libro. A diferencia de otros sistemas de ventanas, mucha de la potencia que proporciona X no resulta demasiado obvia a primera vista.

Programaci´on T´ıtulo:

The C Programming Language

Autor:

Brian Kernighan and Dennis Ritchie

Editor:

Prentice-Hall, 1988

ISBN:

0-13-110362-8, $25.00

Este libro es toda una obligaci´on para cualquier que desee programar en C en un sistema UNIX (o, de hecho, en cualquier sistema). No siendo este libro espec´ıfico de UNIX de una manera demasiado ostensible puede aplicarse bastante bien a la programaci´on en C bajo UNIX. T´ıtulo:

The Unix Programming Environment

Autor:

Brian Kernighan and Bob Pike

Editor:

Prentice-Hall, 1984

ISBN:

0-13-937681-X, $40.00

Una descripci´on de la programaci´on bajo sistemas UNIX. Se cubren todas las herramientas involucradas trat´andose de una buena lectura el mundo de la programaci´on, un tanto amorfo, en UNIX. T´ıtulo:

Advanced Programming in the UNIX Environment

Autor:

W. Richard Stevens

Editor:

Addison-Wesley

ISBN:

0-201-56317-7, $50.00

Esta voluminosa obra contiene todo lo que necesita saber para programar en UNIX a nivel del sistema: E/S de ficheros, control de procesos, comunicaci´on entre procesos, se˜nales, E/S de

Fuentes de informaci´on sobre GNU/Linux

terminales, las tareas. Este libro se enfoca en varios est´andares UNIX, incluido POSIX.1, al que GNU/Linux se adhiere bastante.

´ Sobre el nucleo T´ıtulo:

Inside Linux: A Look at Operating System Development

Autor:

Randolph Bentson

Editor:

Specialized Systems Consultants

ISBN:

0-916151-89-1, $22.00

Este libro nos presenta una introducci´on informal a diferentes asuntos del entorno operativo repasando la historia de los sistemas operativos, centr´andose en c´omo se usan y en los detalles de uno de ellos. Los contenidos son fruto de un dedicado esfuerzo por trenzar la historia, la teor´ıa y la pr´actica de manera que el lector pueda ver con mayor claridad lo que sucede dentro del sistema. T´ıtulo:

The Design of the UNIX Operating System

Autor:

Maurice J. Bach

Editor:

Prentice-Hall, 1986

ISBN:

0-13-201799-7, $70.00

Este libro cubre los algoritmos y las interioridades del n´ucleo de UNIX. No es espec´ıfico de ning´un n´ucleo en particular aunque se decanta m´as por la rama System V. Se trata del mejor por el que comenzar si quiere entender los engranajes internos del n´ucleo Linux. T´ıtulo:

The Magic Garden Explained

Autor:

Berny Goodheart and James Cox

Editor:

Prentice-Hall, 1994

ISBN:

0-13-098138-9, $53.00

Este libro describe en detalle el n´ucleo de System V R4. A diferencia del libro de Bach, que se centra sobretodo en los algoritmos que hacen funcionar al n´ucleo, en este libro se presenta la implementaci´on SVR4 a un nivel m´as t´ecnico. Aunque Linux y SVR4 son s´olo primos lejanos, este libro puede darle una visi´on muy rica sobre el funcionamiento de la implementaci´on de un n´ucleo UNIX real. Tambi´en es un libro muy moderno sobre el n´ucleo UNIX, pues se public´o en 1.994. T´ıtulo:

Linux Kernel Internals

Autor:

Michael Beck

Editor:

Addison-Wesley, 1997

ISBN:

0201331438, $41.95 Un vistazo al n´ucleo y algunos detalles t´ecnicos sobre el n´ucleo Linux

219

220

Ap´endice

Ap´endice B

El Proyecto de Documentaci´on de Linux en castellano El Proyecto de Documentaci´on de Linux es la secci´on hispana del Linux Documentation Project. Actualmente se encarga de la traducci´on al espa˜nol de los documentos del LDP ingl´es as´ı como la elaboraci´on de documentos propios en espa˜nol. Mucha de la informaci´on presente en el LDP est´a traducida y puede encontrarse en la direcci´on http://www.es.tldp.org. Hay muchos m´as documentos que est´an sin traducir, as´ı que se anima a todo el que quiera a participar en el proyecto. En el Proyecto de Documentaci´on de Linux, los documentos correspondientes a los HOWTOs, miniHOWTOs y FAQs se denominan COMOS, mini-COMOs y PUFs (PregUntas Frecuentes).

El INSFLUG

Dentro del Proyecto de Documentaci´on de Linux, el INSFLUG mantiene una biblioteca con los documentos COMOs actualizados as´ı como un ´ındice que los cataloga. Se puede acceder a los documentos del INSFLUG directamente por la p´agina web siguiente: http://www.insflug.org

P´aginas del manual en castellano

El grupo PAMELI es el que se encarga del mantenimiento de las p´aginas del manual en castellano. El servidor web de PAMELI se encuentra en la direcci´on: http://ditec.um.es/ piernas/manpages-es/ y tambi´en est´a replicado en las m´aquinas de tldp-es

Bibliograf´ıa en castellano A continuaci´on adjuntamos algunas direcciones de algunas editoriales donde encontrar libros en castellano sobre GNU/Linux.

Direcciones web de editoriales Anaya Multimedia http://www.anayamultimedia.es Osborne/McGraw Hill http://www.mcgraw-hil.es Prensa T´ecnica http://www.prensatecnica.com Prentice Hall/Pearson http://www.pearsonedlatino.com Marcombo http://www.marcombo.es Paraninfo http://www.paraninfo.es 221

222

Ap´endice

Publicaciones en castellano A continuaci´on se facilitan unas pocas referencias de los libros que pueden ser u´ tiles. T´ıtulo:

La Biblia de Red Hat Linux

Autor:

David Pitts

Editor:

Anaya Multimedia, 1999

ISBN:

84-415-0524-1, 37,86 t

Descripci´on del editor: esta obra corresponde a la colecci´on de libros t´ecnicos de Anaya y viene con un CD con la distibuci´on Red Hat T´ıtulo:

Corel Linux

Autor:

Francisco Charte Ojeda

Editor:

Anaya, 2000

ISBN:

84-415-1047-4, 12,02 t Una gu´ıa pr´actica que se adjunta con un CD con la distribuci´on Corel Linux

T´ıtulo:

Unix. Sistema V Versi´on 4

Autor:

Kenneth H. Rosen y otros

Editor:

Osborne/McGraw Hill, 1998

ISBN:

84-481-0969-4, 50 t

Este es un libro imprescindible. En e´ l se explica todo sobre Unix a nivel de uso y administraci´on. No es un libro espec´ıfico de un sistema concreto sino que habla de los diversos Unix en uso actualmente, incluido Linux T´ıtulo:

Linux M´axima Seguridad

Autor:

An´onimo

Editor:

Prentice Hall/Pearson, 2000

ISBN:

84-8322-244-2, 48 t

Es un libro que trata sobre seguridad, y como todos los libros sobre seguridad tiende a quedarse r´apidamente obsoleto. Incluye un CD con herramientas, lo cual est´a bien, y da una visi´on elemental acerca de las pol´ıticas correctas de seguridad. Muy recomendable para los que se inicien en el tema T´ıtulo:

Linux. Utilizaci´on: versi´on 2.0 a 2.2 del n´ucleo

Autor:

Bruno Guerin

Editor:

ENI, 2000

ISBN:

2-7460-0642-1, 18,70 t

Lo bueno de este libro es que trata de la multitud de programas en modo texto que podemos encontrar en GNU/Linux. Un tesoro para los amantes de la consola.

Fuentes de informaci´on sobre GNU/Linux

T´ıtulo:

Sistemas Abiertos

Autor:

Luis J. Cearra Zabala

Editor:

Universidad Polit´ecnica de Madrid, 1998

ISBN:

84-87238-97-1, 12 t

Probablemente el mejor libro que se haya hecho para los que nunca hayan usado UNIX. El libro trata todos los aspectos m´as importantes del uso de un sistema Unix, y est´a orientado a los alumnos que cursan el primer a˜no de Ingenier´ıa Inform´atica. Contiene tests para auto evaluar los conocimientos que se adquieren a trav´es de e´ l. Lo malo del libro es que no contine ni una sola l´ınea acerca de administraci´on del sistema ni sobre las X. Todo e´ l trata sobre la l´ınea de o´ rdenes, desde las m´as b´asicas hasta la edici´on de scripts con expresiones regulares

Prensa especializada Existen algunas revistas que con car´acter mensual aparecen a la venta. Unos ejemplos: Linux actual S´olo Linux

223

224

Ap´endice

Ap´endice C

Tutorial FTP y lista de sitios de r´eplica El Protocolo de Transferencia de Ficheros (FTP, File Transfer Protocol) es un conjunto de programas utilizados para transferir ficheros entre sistemas en Internet. la mayor´ıa de los sistemas Unix, VMS y MSDOS en Internet tienen un programa llamado ftp que se usa para transferir estos ficheros, y si se tiene acceso a Internet, la mejor forma de descargar software para GNU/Linux es usando ftp. Este ap´endice cubre el uso b´asico de ftp. —Por supuesto, hay muchas m´as funciones y usos de ftp que los que aqu´ı se dan. Al final de este ap´endice hay una lista de los sitios FTP donde puede encontrarse software GNU/Linux. Tambi´en, si no se posee acceso directo a Internet, pero se puede intercambiar correo electr´onico con Internet, se incluye informaci´on acerca del uso de ftpmail m´as abajo. Si est´a usando un sistema MS-DOS, Unix o VMS para descargar ficheros desde Internet, entonces ftp es un programa de o´ rdenes. Sin embargo, hay otras implementaciones de ftp por ah´ı fuera, como la versi´on de Macintosh (llamada Fetch) con un interfaz de men´us muy sencillo, que es auto-explicativo. Incluso si no est´a usando la versi´on de l´ınea de o´ rdenes de ftp, la informaci´on que se da aqu´ı deber´ıa ayudar. ftp puede usarse tanto para subir (enviar) como para bajar (recibir) ficheros desde otros sitios de Internet. En muchas situaciones, se va a estar descargando software. En Internet hay un gran n´umero de sitios FTP disponibles para uso p´ublico, m´aquinas que permiten a cualquiera conectarse mediante ftp a ellas y descargar software libre. Uno de estos grandes ficheros de Internet es sunsite.unc.edu, el cu´al tiene un mont´on de software de Sun Microsystems, y act´ua como uno de los principales sitios de GNU/Linux. En adici´on, muchos sitios FTP hacen r´eplica del software que otros tienen, —esto es, que el software subido a un sitio ser´a autom´aticamente copiado en otros sitios distintos. No se sorprenda si ve una copia exacta de los mismos ficheros en dos sitios de fichero diferentes.

Iniciando una transferencia ftp Note que en el ejemplo “screens” impreso debajo s´olo se muestra la informaci´on m´as importantem y que lo que vea usted puede diferir. Tambi´en o´ rdenes en it´alicas representan o´ rdenes que usted teclea; lo dem´as es la salida de la pantalla. Para empezar el ftp y conectarse a un sitio, simplemente use la orden ftp hostname

donde hostname es el nombre del sitio al que se est´a conectando. Por ejemplo, para conectarse al sitio m´ıtico shoop.vpizza.com podemos usar la orden ftp shoop.vpizza.com

Identific´andose Cuando ftp comienza se ver´a algo parecido a esto: 225

226

Ap´endice

Connected to shoop.vpizza.com. 220 Shoop.vpizza.com FTPD ready at 15 Dec 1992 08:20:42 EDT Name (shoop.vpizza.com:mdw):

Aqu´ı, ftp est´a pregunt´andonos para que le demos el nombre de usuario con el que queremos entrar en shoop.vpizza.com. El predeterminado aqu´ı es mdw, que es mi nombre de usuario en el sistema desde el que estoy usando el FTP. Dado que no tengo una cuenta en shoop.vpizza.com no puedo entrar como yo mismo. En cambio para acceder al software disponible al p´ublico en un sitio FTP, se entra como anonymous, y se da la direcci´on de correo electr´onico (si tiene una) como contrase˜na. As´ı que, deber´ıa teclear: Name (shoop.vpizza.com:mdw): anonymous 331-Guest login ok, send e-mail address as password. Password: [emailprotected] 230- Welcome to shoop.vpizza.com. 230- Virtual Pizza Delivery[tm]: Download pizza in 30 cycles or less 230- or you get it FREE! ftp>

Desdee luego, deber´ıa dar su direcci´on de correo electr´onico en vez de la m´ıa, y no se har´a eco a la pantalla mientras la escribe (al fin y al cabo es t´ecnicamente una “contrase˜na”). El ftp deber´ıa permitirnos la entrada y estar´ıamos dispuestos a descargar software.

Viendo qu´e hay por ah´ı Bien,estamos dentro. Nuestro indicador de o´ rdenes es ftp>, y el programa ftp est´a esperando o´ rdenes. Hay unos pocos o´ rdenes que se necesitan saber: Primero, los o´ rdenes ls file

y dir file

ambos dan listados de ficheros (donde file es un argumento opcional especificando un nombre particular de fichero a listar). La diferencia es que ls normalmente da un listado corto y dir da un listado m´as largo (que es con m´as informaci´on acerca de los tama˜nos de los ficheros, fechas de modificaci´on, y esas cosas). La orden cd directory

nos situar´a en el directorio dado (de lamisma forma que la orden cd en Unix o MS-DOS). Se puede usar la orden cdup

para cambiar al directorio padre1 . La orden help command

dar´a ayuda acerca de un comando ftp (como ls o cd). Si no se especifica ning´un comando, ftp listar´a todos los o´ rdenes disponibles. Si tecleamos dir en este punto veremos un directorio inicial listando donde estamos. ftp>dir 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 1337 1 El

directorio encima del actual.

Tutorial FTP y lista de sitios de r´eplica

dr-xr-xr-x 2 root drwxr-xr-x 2 root drwxr-xr-x 2 root drwxr-xr-x 19 root drwxrwx-wx 4 root drwxr-xr-x 3 root

wheel wheel wheel wheel ftp-admi wheel

227

512 512 512 1024 1024 512

Aug Aug Jan Jan Feb Mar

13 13 25 27 6 11

13:55 13:58 17:35 21:39 22:10 1992

bin dev etc pub uploads usr

226 Transfer complete. 921 bytes received in 0.24 seconds (3.7 Kbytes/s) ftp>

Cada una de estas entradas es un directorio, no un fichero individual que podamos descargar (especificado por la d en la primera columna de la lista). En la mayor´ıa de los sitios de fichero FTP, el software disponible p´ublicamente est´a bajo el directorio /pub , as´ı que vamos all´ı. ftp>cd pub ftp>dir 200 PORT command successful. 150 ASCII data connection for /bin/ls (128.84.181.1,4525) (0 bytes). total 846

-rw-r--r--r--r--r--rw-r--r--r--r--r--rw-r--r--rw-r--r--rw-rw-rw-r--r--r--rw-r--r-drwxr-xr-x -rw-r--r--

1 1 1 1 1 1 1 1 1 2 1

root 3807 539 65534 root 432 615 root root 2195 root

staff staff staff 65534 other staff staff wheel staff staff staff

1433 15586 52664 56456 2013041 41831 50315 12168 7035 512 5593

Jul May Feb Dec Jul Jan Apr Dec Aug Mar Jul

12 1988 README 13 1991 US-DOMAIN.TXT.2 20 1991 altenergy.avail 17 1990 ataxx.tar.Z 3 1991 gesyps.tar.Z 30 1989 gnexe.arc 16 1992 linpack.tar.Z 25 1990 localtime.o 27 1986 manualslist.tblms 10 00:48 mdw 19 1988 t.out.h

226 ASCII Transfer complete. 2443 bytes received in 0.35 seconds (6.8 Kbytes/s) ftp>

Aqu´ı podemos ver un n´umero de (interesantes?) ficheros, uno de los cuales se llama README, el cual deberemos descargar (muchos sitios FTP tienen un README en el directorio /pub).

Descarga de ficheros Antes de descargar ficheros, hay unas pocas cosas que necesitas tener en cuenta. Activar la impresi´on de marcas hash. Las marcas hash se imprimen en la pantalla cuando los ficheros est´an transfiri´endose. Permiten saber cuanto le falta a la transmisi´on y que la conexi´on no se ha colgado (as´ı que no se sentar´a por 20 minutos, pensando que todav´ıa est´a descargando un fichero). En general una marca hash aparece como un signo de celdilla (#), y se imprime una por cada 1024 o 8192 bytes transferidos, dependiendo del sistema. Para activar el marcado hash, teclee la orden hash. ftp>hash Hash mark printing on (8192 bytes/hash mark). ftp>

228

Ap´endice

Determinar el tipo de fichero que se est´a descargando. Tan lejos como el FTP nos concierne, los ficheros se dividen en dos sabores: binarios y texto. La mayor´ıa de los ficheros que se descargan son binarios, esto es programas, ficheros comprimidos, ficheros archivados, etc. Sin embargo, muchos ficheros (como los README) son ficheros de texto. ¿Por qu´e el tipo de fichero importa? S´olo porque en algunos sistemas (como MS-DOS), ciertos caracteres en los ficheros de texto, como los retornos de carro, necesitan ser convertidos para que el fichero se pueda leer. Cuando se transfiere en modo binario, no se hace ninguna conversi´on—el fichero simplemente se transfiere byte a byte. Las o´ rdenes bin y ascii seleccionan el modo de transferencia binario y texto, respectivamente. Cuando tenga dudas, siempre use el modo binario para transferir ficheros Si intenta transferir un fichero binario como texto, corromper´a el fichero y ser´a inutilizable. (Esta es una de las equivocaciones m´as frecuentes que se cometen cuando se realiza un FTP) Sin embargo puede usarse el modo texto para transferir ficheros de texto. (cuyo nombre de fichero usualmente termina en .txt). Para nuestro ejemplo, vamos a descargar el fichero /tt README, que es un fichero de texto, as´ı que usamos la orden ftp>ascii 200 Type set to A. ftp>

Seleccionar el directorio local. Su directorio local es el directorio en su sistema donde quiere que los ficheros descargados se almacenen. Mientras que la orden cd cambia el directorio remoto (en la m´aquina remota a la que se est´a haciendo FTP), la orden lcd cambia el directorio local. Por ejemplo, para seleccionar el directorio local a /home/db/mdv/tmp, utilice la orden ftp>lcd /home/db/mdw/tmp Local directory now /home/db/mdw/tmp ftp>

Ahora est´a preparado para descargar el fichero. El comando get nombre-remoto nombre-local

se usa para esto, donde nombre-remoto es el nombre del fichero enla m´aquina remota, y nombre-local es el nombre that you wish to give the file on your local machine. The que usted desea dar al fichero en su m´aquina local. El argumento nombre-local es opcional, por defecto el nombre de fichero local es el mismo que el nombre remoto. Sin embargo, si por ejemplo est´as descargando el fichero README, y ya existe otro fichero con el mismo nombre en el directorio local, quiz´a quieras darle un nombre diferente al nombre-local para que as´ı el primero no sea sobreescrito. En nuestro ejemplo, para descargar el fichero README, simplemente usamos ftp>get README 200 PORT command successful. 150 ASCII data connection for README (128.84.181.1,4527) (1433 bytes). # 226 ASCII Transfer complete. local: README remote: README 1493 bytes received in 0.03 seconds (49 Kbytes/s) ftp>

Terminando la transferencia FTP para finalizar la sesi´on FTP, simplemente ejecuta la orden

Tutorial FTP y lista de sitios de r´eplica

229

quit

La orden close

puede ser usada para cerrar la conexi´on con el servidor FTP actual; la orden open puede usarse entonces para comenzar una sesi´on con otro sitio (sin quitar el programa FTP, todo junto). ftp>close 221 Goodbye. ftp>quit

Utilizaci´on de ftpmail ftpmail es un servicio que permite obtener ficheros de un sitio FTP por correo electr´onico. Si no se tiene un acceso directo a Internet, pero es capaz de enviar correo electr´onico a Internet (desde un servicio como CompuServe, por ejemplo), ftpmail es una buena forma de obtener ficheros de sitios FTP. Desafortunadamente, ftpmail puede ser lento, especialmente cuando se trata de tareas grandes. Antes de intentar descargar grandes cantidades de software usando ftpmail, aseg´urese de que su cola de correo (mail spool) es capaz de manejar el tr´afico de intrada. Muchos sistemas mantienen cuotas al correo electronico entrante, y quiz´as borren su cuenta si su correo sobrepasa su cuota. Tan s´olo use el sentido com´un. sunsite.unc.edu, uno de los mayores servidores FTP dedicados a GNU/Linux dispone de un servidor ftpmail. Para usar este servicio, se env´ıa un correo a [emailprotected]

con un cuerpo de mensaje conteniendo solo la palabra: help

Esto enviar´a de vuelta una lista de o´ rdenes ftpmail y un breve tutorial acerca del uso del sistema. Por ejemplo, para obtener una lista de los ficheros GNU/Linux que se encuentran en sunsite.unc.edu, se env´ıa un mensaje a la direcci´on de arriba conteniendo el texto: open sunsite.unc.edu cd /pub/GNU/Linux dir quit

Puede usar el servicio ftpmail para conectar a cualquier servidor FTP; no est´a limitado a sunsite.unc.edu. La siguiente secci´on lista un numero de servidores de ficheros GNU/Linux por FTP.

Lista de servidores FTP de GNU/Linux La tabla en la p´agina 230 es un listado de los m´as conocidos servidores de ficheros FTP que contienen software para GNU/Linux. Tenga en cuenta que muchos otros sitios son r´eplicas de e´ stos, y haba m´as que tengan software GNU/Linux que no se encuentren en esta lista. tsx-11.mit.edu, sunsite.unc.edu, y nic.funet.fi son los “home sites” para el software GNU/Linux, donde la mayor´ıa del software nuevo se sube. La mayor´ıa de los sitios de esta lista hacen mirror de una combinaci´on de estos tres. Para reducir el tr´afico de red, elige un sitio que est´e geogr´aficamente m´as cerca de ti.

230

Ap´endice

Site Name tsx-11.mit.edu sunsite.unc.edu nic.funet.fi ftp.mcc.ac.uk fgb1.fgb.mw.tu-muenchen.de ftp.informatik.tu-muenchen.de ftp.dfv.rwth-aachen.de ftp.informatik.rwth-aachen.de ftp.ibp.fr kirk.bu.oz.au ftp.uu.net wuarchive.wustl.edu ftp.win.tue.nl ftp.ibr.cs.tu-bs.de ftp.denet.dk

IP Address 18.172.1.2 152.2.22.81 128.214.6.100 130.88.200.7 129.187.200.1 131.159.0.110 137.226.4.105 137.226.112.172 132.227.60.2 131.244.1.1 137.39.1.9 128.252.135.4 131.155.70.100 134.169.34.15 129.142.6.74

Directory /pub/Linux /pub/Linux /pub/OS/linux /pub/linux /pub/linux /pub/Linux /pub/linux /pub/Linux /pub/linux /pub/OS/Linux /systems/unix/linux /systems/linux /pub/linux /pub/os/linux /pub/OS/linux

Cuadro C.1: Servidores FTP de GNU/Linux

Ap´endice D

Obtener una distribuci´on por correo postal Las distribuciones de GNU/Linux normalmente se pueden descargar desde Internet. Sin embargo, debido a que muchos de los usuarios de GNU/Linux hispanos no disponen de una conexi´on de alta velocidad RDSI o xDSL, se proporcionan aqu´ı algunos distribuidores de GNU/Linux que pueden enviarle una distribuci´on por correo postal.

˜ Distribuidores en Espana A continuaci´on se adjuntan algunos lugares en Espa˜na donde env´ıan distribuciones por correo:

La p´agina de distribuciones de TLDP-ES es la principal referencia en Espa˜na. La direcci´on es la siguiente http://lucas.hispalinux.es/htmls/distribuidores.html Asociaci´on Inform´atica Abierta http://www.abierta.org Free Software 4 Everybody http://www.simotril.com/fs43 Ciberdroide Inform´atica http://www.ciberdroide.com OpenCD http://www.opencd.com

Distribuidores en Hispanoam´erica ´ ACERCA DE ESTE PUNTO RUEGO ENCARECIDAMENTE ME HAGAN LLEGAR INFORMACION ´ PARA INCLUIRLA EN LA EDICION FINAL

231

232

Ap´endice

Ap´endice E

The GNU General Public License Printed below is the GNU General Public License (the GPL or copyleft), under which Linux is licensed. It is reproduced here to clear up some of the confusion about Linux’s copyright status—Linux is not shareware, c and it is not in the public domain. The bulk of the Linux kernel is copyright 1993 by Linus Torvalds, and other software and parts of the kernel are copyrighted by their authors. Thus, Linux is copyrighted, however, you may redistribute it under the terms of the GPL printed below.

GNU GENERAL PUBLIC LICENSE Version 2, June 1991 c Copyright 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. P REAMBLE The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software– to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation’s software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author’s protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors’ reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone’s free use or not licensed at all.

233

234

Appendix

The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The “Program”, below, refers to any such program or work, and a “work based on the Program” means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term “modification”.) Each licensee is addressed as “you”. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program’s source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a. You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b. You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c. If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

The GNU General Public License

235

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a. Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b. Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machinereadable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c. Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients’ exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

236

Appendix

If any portion of this section is held invalid or unenforceable under any particular circ*mstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circ*mstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and “any later version”, you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

The GNU General Public License

237

END OF TERMS AND CONDITIONS A PPENDIX : H OW TO A PPLY T HESE T ERMS TO YOUR N EW P ROGRAMS If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found. c one line to give the program’s name and a brief idea of what it does. Copyright 19yy name of author This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type ‘show w’. This is free software, and you are welcome to redistribute it under certain conditions; type ‘show c’ for details.

The hypothetical commands ‘show w’ and ‘show c’ should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than ‘show w’ and ‘show c’; they could even be mouse-clicks or menu items–whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a “copyright disclaimer” for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program ‘Gnomovision’ (which makes passes at compilers) written by James Hacker. signature of Ty Coon, 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.

´ Indice alfab´etico *, 111 .bash profile, 131 .bashrc, 131 .profile, 131 .tcshrc, 132 / en nombres de ruta, 98 nombre del directorio ra´ız, 98 /Image, 134 /bin/bash, 110 /bin/csh, 110 /bin/sh, 110 /bin/tcsh, 110 /dev/console, 108 /dev/cua, 108 /dev/hd, 108 /dev/lp, 108 /dev/null, 108 /dev/pty, 108 /dev/tty, 108 /dev/ttyS, 108 /etc, 108 /etc/Image, 134 csh.login, 132 /etc/fstab, 139 /etc/getty, 159 /etc/group formato de, 145 /etc/host.conf, 184 /etc/hosts, 184 /etc/init, 159 /etc/inittab, 159 /etc/networks, 184 /etc/passwd, 143 /etc/profile, 131 /etc/rc, 159 /etc/rc.local, 159 /etc/resolve.conf, 184 /etc/zImage, 134 /home, 108 /lib, 108 /linux instalaci´on, 93 /proc, 108

montaje de, 139 /sbin, 108 /tmp, 108 /usr, 109 /usr/X11R6, 109 /usr/X11R6/lib/X11/XF86Config, 169 /usr/etc, 109 /urs/g++-include, 109 /usr/include, 109 /usr/lib, 109 /usr/local, 109 /usr/man, 109 /usr/src, 109 /var, 110 /var/log, 110 /var spool, 110 /vmlinux, 134 /vmlinuz, 134 /zImage, 134 , 113 ?, 112 o´ rdenes - flag de opci´on de orden, 105 agrupando con guiones, 129 sumario de b´asicas, 105 sumario de las b´asicas, 107 GNU/Linux p´aginas de manual para, 104 ˜ para referirse al directorio inicial, 100 Linux Gazette, 212 Linux Journal, 212, 213 Linux Resources, 212 GNU/Linux, 1 conceptos b´asicos, 95–100 copiar, 17 desarrollo, 14 distribuciones, 15 errores, 14 estabilidad, 17 filosof´ıa, 13 historia, 2 instalaci´on, 27 238

´ ´ INDICE ALFABETICO

multitarea definici´on, 95 obtenci´on, 27 y el coste, 17 386BSD, 17 a˜nadiendo usuarios, 142 administraci´on de usuarios a˜nadiendo usuarios, 142 administraci´on del sistema arrancando Linux, 134–135 cierre del sistema, 136 afio, 150 alpha, 14 anfitri´on configuraci´on, 159 apagar, 83 argumento orden definici´on, 97 arrancando, 134–135 con LILO, 134–135 de un disquete de mantenimiento, 160 arrancando Linux con un disquete de arranque, 134 arrancando sistemas no-Linux, 134 ayuda comercial, 24 consiguiendo, 24–25 en l´ınea, 104 ayuda, consiguiendo, 21 backflops, 150 bash, 110 beta, 14 bg, 122 bibliotecas actualizaci´on, 157 arreglando corrompidas, 162 /bin, 107 boot scripts, 159 borrar directorio, 103 ficheros, 103 Bourne again shell, 110 Bourne shell, 110 C News, 209 C Shell (csh), 110 canales creaci´on, 115 canalizaci´on definici´on, 115

239

caracteres comod´ın *, 111 ?, 112 en nombres de fichero, 112 caracteres comod´ınes definici´on, 111 caracteres comodin en nombres de fichero, 111 cat, 106 para ver el contenido de un fichero, 103 cd, 100–101, 105 cfdisk, 38 chmod, 117 cierre del sistema, 136 cliente noticias definici´on, 209 Coherent, 17 consola definici´on, 96 nombre para dispositivo, 108 virtual, 96 consolas virtuales, 108 contrase˜na arreglando la de root, 161 cambiando con passwd, 98 definici´on, 95 control de tareas, 119–123 controlador de dispositivo, 107 copiar ficheros, 102 copiar GNU/Linux, 17 copias de seguridad, 149–150 a disquete, 150 incremental, 150 multi-volumen, 150 copying Linux, 233–237 copyright, 233–237 correo electr´onico, 208 transporte definici´on, 208 cp, 102, 105 cuantas creaci´on, 96 cuenta de usuario creaci´on, 96 Debian GNU/Linux, 39 listas de correo, 51 Debian GNU/Linux), 52 desarrollo alpha, 14 beta, 14

240

convenciones, 14 desastres recuperaci´on de, 160–162 con disquete de mantenimiento, 160 deshabilitando usuarios, 145 desmontando sistemas de ficheros, 141 /dev, 107 /dev/sd, 108 /dev/sr, 108 /dev/st, 108 device driver, 107 dinero, 17 dip, 185 conexi´on con un servidor SLIP, 187 conexion a un servidor SLIP con, 188 direccion IP est´atica con, 186 direcciones IP din´amicas con diph, 187 gui´on chat para, 188 script chat para, 187 direcci´on de broadcast definici´on, 181 direcci´on de pasarela definici´on, 181 direcci´on de red definici´on, 181 direcci´on IP definici´on, 180 directorio . para referirse al, 100 /etc, 108 /home, 108 /lib, 108 /proc, 108 /tmp, 108 /usr/X11R6, 109 /usr/bin, 109 /usr/etc, 109 /urs/g++-include, 109 /usr/include, 109 /usr/lib, 109 /usr/local, 109 /usr/man, 109 /usr/src, 109 /var, 110 /var/log, 110 /var spool, 110 a´ rbol, 98 anidamiento, 98 /bin, 107 borrar, 103 creaci´on, 102 de trabajo actual

´ ´ INDICE ALFABETICO

definici´on, 99 definici´on, 98 /dev, 107 estructura, 98 movi´endose por ella con cd cd, 100 inicial ˜ para referise a, 100 definici´on, 98 listado de los contenidos de, 102 listar los contenidos de, 101 padre, 98 .. para referirse al, 100 permisos cambiando, 117 dependencias de, 117 ejecuci´on, 116 escritura, 116 lectura, 116 ra´ız definici´on, 98 directorio de trabajo definici´on, 99 directorio inicial, 100 definido, 143 directorio padre, 98 .. para referirse a, 100 directorioy /usr, 109 directory /sbin, 108 disco duro problemas, 88 discos duros nombres de dispositivo, 108 dispositivo disquete, 107 fd, 107 floppy disk, 107 dispositivos /dev/console, 108 /dev/cua, 108 /dev/hd, 108 /dev/lp, 108 /dev/null, 108 /dev/pty, 108 /dev/sd, 108 /dev/sr, 108 /dev/st, 108 /dev/tty, 108 /dev/ttyS, 108 acceso, 107 consola, 108

´ ´ INDICE ALFABETICO

consolas virtuales, 108 discos duros, 108 null, 108 pseudo-terminales, 108 puertos paralelos, 108 puertos serie, 108 SCSI, 108 dispositivos SCSI nombres para, 108 disquete nombres de dispositivo para, 107 disquete de arranque, 160 creando, 134 disquete de mantenimiento, 160 disquetes como medio de copias de seguridad, 150 desmontando, 152 sistemas de ficheros en, 152 disquette arranque/ra´ız, 160 de mantenimiento, 160 distribuci´on env´ıo postal, 231 distribuciones, 15, 27, 38–39 Debian), 52 Red Hat Linux, 52 S.u.S.E., 81 Slackware, 64 documentaci´on, 211–219 documentos COMO, 212 documentos HOWTO, 212 en l´ınea, 21, 211–212 en linea FAQ, 21 HOWTO, documentos, 21 listas de correo, 23 libros, 21, 213–219 libros en castallano, 222 Linux Documentation Project, 21, 212–213 preguntas m´as frecuentes, 211 documentos COMO, 212 documentos HOWTO, 212 e-mail, 208 mailer definici´on, 208 transporte definici´on, 208 e2fsck, 141, 161 echo, 107 editor definici´on, 123

241

editor de texto comparaci´on, 123 definici´on, 123 efsck, 141 ejecutable definici´on, 101 elm, 208 Emacs, 123 emergencias recuperaci´on de, 160–162 con disquete de mantenimiento, 160 enlaces, 118–119 duros, 118 mostrar n´umero de, 118 r´ıgidos, 118 simb´olicos, 119 entorno personalizaci´on, 128–132 variables PATH, 131 entrada redirecci´on, 114 entrada al sistema, 96 entrada est´andar, 113 redirecci´on, 114 EOT se˜nal, 113 errores, 14 estabilidad, 17 estrada est´andar, 115 ethernet tarjetas soportadas, 179 exit, 97 expansion de comodines definicion, 111 exportar, 130 FAQ, 21 fdisk, 37 fg, 122 fichero borrar, 103 dispositivo, 107 ejecutable definici´on, 101 mover, 103 nombre, 98 fichero de constrase˜nas formato de, 143 fichero null, 108 ficheros a˜nadiendo a, 115

´ ´ INDICE ALFABETICO

242

copiar, 102 definici´on, 98 enlaces, 118–119 listado, 101–102 listando permisos con ls, 116 MS-DOS, 104 n´umero de inodo de, 118 ocultos no hacen juego con los comodines, 112 permisos cambiando, 117 definici´on, 116 dependencias de, 117 ejecuci´on, 116 escritura, 116 interpretaci´on, 116 lectura, 116 permisos de, 116–118 propiedad del grupo, 116 propiedad del usuario, 116 rc para TCP/IP, 182 recuperaci´on, 161 salvaguarda, 149–150 ver el contenido de, 103 ficheros de inicializaci´on para int´erpretes de comandos, 131 rc, 182 filtros definici´on, 114 find para copias de seguridad incrementales, 150 - de opci´on de orden, 105 floppy nombres de dispositivo para, 107 free software, 13 Free Software Foundation, 233 fsck, 141, 161 FTP buenas pr´acticas, 229 lista de servidores, 229 utilizaci´on, 225 FTP ftpmail, 229 fuentes de informaci´on, 211–219 gateway definici´on, 181 gcc actualizaci´on, 158 General Public License, 233–237 getty, 159

GID definici´on, 143 GNU General Public License, 233–237 GNU/Emacs, 123 GNU/Linux estructura de directorio, 98 grep, 107 group ID definici´on, 143 grupos, 116 guiones de inicializaci´on para int´erpretes de comandos, 131 guiones de int´erprete de o´ rdenes definici´on, 129 guiones del int´erprete de o´ rdenes comentarios, 129 inicializacion, 131 permisos para, 129 variables en, 129 halt, 136 hardware conflictos, 86, 87 problemas, 86, 89 problemas con el disco duro, 87, 88 problemas con SCSI, 88, 89 requerimientos, 17 tarjeta de v´ıdeo, 163 tarjetas ethernet, 179 home, 100 host name host name, 159 configuraci´on, 159 hostname definici´on, 95 hostname, 185 HOWTO, documentos, 21 HURD, 17 ifconfig, 182 inetd, 183 informaci´on bibliograf´ıa en castellano, 221 en castellano, 221 man-es, 221 PAMELI, 221 Proyecto de Documentaci´on de Linux, 221 iniciando problemas, 86 inicio problemas, 84, 91 init, 159

´ ´ INDICE ALFABETICO

inittab, 159 INN, 209 inodos definici´on, 118 instalaci´on, 27–93 errores en los medios, 89 permisos de ficheros, 93 problemas, 84–93 problemas con el hardware, 86, 89 problemas en el inicio, 86, 91 problemas en la post-instalaci´on, 91 problemas en la postinstalaci´on, 93 problemas iniciando, 84 problemas present´andose, 92 Slackware, 64 installaci´on LILO, 92 int´erprete de o´ rdenes definici´on, 96 indicador, 97 variables definici´on, 129 int´erprete de conexi´on definici´on, 143 Int´erprete de presentaci´on definici´on, 131 int´erpretes de comandos ficheros de inicializaci´on, 131 Internet listas de correo, 23 IRQ, 86 kill, 121 lecttores definici´on, 209 lecturas sugeridas, 213–219 libros, 213–219 LILO, 134–135 como cargador de arranque, 134 instalaci´on, 134 problemas en la instalaci´on, 92 problemas iniciando, 84 seleccionando el sistema operativo por defecto para, 135 Linux, 237 copyright, 233–237 fuentes de informaci´on, 21 linux servicio t´ecnico comercial, 24 Linux Documentation Project, 21, 212–213 Linux Red Hat, 62

243

listando los contenidos de(, 101 listando los contenidos del directorio, 102 listas de correo, 23 Debian, 51 logging in, 96 logging out con orden exit, 97 login, 96 definici´on, 95 ls, 101–102, 105 listado permisos de fichero con, 116 m´ascara de red definici´on, 180 mailer for e-mail, 208 mailx, 208 man, 104, 106 Mapa de software de GNU/Linux, 212 maunal de linux, 104 mensaje de error command not found, 97 mensajes de error mensajes de error command not found, 97 Microsoft, 208 Microsoft Windows emulador, 105 Minix, 17 mkdir, 102, 106 mke2fs para disquete, 152 more, 103, 106 mount, 139 montando disquetes con, 152 para montar una partici´on MS-DOS, 104 mover ficheros, 103 MS-DOS, 15–16 acceder ficheros desde, 104 ejecuci´on de programas bajo GNU/Linux, 105 emulador, 105 montando una partici´on bajo GNU/Linux, 104 uso de Mtools para acceder a ficheros, 105 multitarea definici´on, 95 multiusuario definici´on, 95 mv, 103, 106 n´ucleo actualizar, 153 arraglar controlador de dispositivo, 154

244

compilaci´on, 154 compilando una imagen comprimida, 154 fuentes del, 153 imagen comprimida del, 134 nombre de fichero de la imagen del, 134 n´umero de inode definici´on, 118 name server address definici´on, 181 named, 184 NET-3, 179 soporte para protocolo de l´ınea serie (SLIP), 179 NetBSD, 17 netstat, 185 news (, 208 NFS, 183 nombre de fichero definici´on, 98 nombre de ruta definici´on, 98 nombre de usuario definici´on, 142 nombre del host, 185 nombres de fichero caracteres comod´ın en, 111–112 noticias, 208–209 cliente definici´on, 209 lectores definici´on, 209 lectores de noticias rn, 209 servidor C News, 209 definici´on, 209 INN, 209 UUCP, 208 orden argumento definici´on, 97 definici´on, 97 comando shutdown, 136 origen, 2 OS/2, 16 p´aginas del manual, 104 PAMELI, 221 partici´on de intercambio en /etc/fstab, 139 passwd, 98

´ ´ INDICE ALFABETICO

permisos cambiando, 117 de fichero, 116 de ficheros, 118 definici´on, 116 dependencias de, 117 ejecuci´on, 116 escritura, 116 interpretaci´on, 116 lectura, 116 para los guiones del int´erprete de o´ rdenes, 129 problemas, 93 pipelining definici´on, 115 planificaci´on, 29 PPP, 185, 189 ayuda, 207 debugging, 207 ficheros, 194 Preguntas m´as frecuentes, 211 presentacion problemas, 92 primer plano, 120 proceso background, 120 definici´on, 119 foreground, 120 ID definici´on, 120 interrumpido, 120 interrumpir, 121 matar, 121 primer plano, 120 ps para listar, 119 segundo plano, 120 matar, 121 proceso en primer plano, 120 proceso en segundo plano, 120 Protocolo de l´ınea serie, 179 protocolo de l´ınea serie, 185–189 Protocolos linea serie, 179 SLIP, 179 protocolos PPP, 189 Proyecto de Documentaci´on de Linux, 212 ps, 119 pseudo-terminales, 108 puerto paralelo nombre de dispositivo, 108 puertos serie

´ ´ INDICE ALFABETICO

nombres de dispositivo para, 108 punto de montaje definici´on, 152 ra´ız, dispositivo poniendo el nombre de con, 134 RAWRITE.EXE, 36 rc, 159 rc.inet, 182 rc.inet1, 182 ejemplo, 182 rc.inet2, 182, 183 ejemplo, 183 rc.local, 159 rc.net, 182 rdev, 134 poniendo el nombre de con rdev, 134 red PPP, 185 tarjetas ethernet, soportadas, 20 Red Hat Linux, 52 redes Microsoft, 208 NET-3, 179 news, 208 NFS, 183 noticias, 208–209 SLIP, 179 tarjetas ethernet, soportadas, 179 TCP/IP, 179–189 UUCP, 208 redirecci´on entrada est´andar, 113 no destructiva, 115 salida est´andar, 113 registrarse en el sistema, 96 requerimientos hardware, 17 rm, 103, 106 rmdir, 103, 106 rn, 209 root arreglando la password de, 161 route, 182 entrada en /etc/networks, 184 routed, 183 ruta absoluta, 99 completa, 99 definici´on, 98 relativa, 99 S.u.S.E. Linux, 81

245

salida redirecci´on, 113 salida est´andar, 113, 115 redirecci´on, 113 salir, 97 script de configuraci´on TCP/IP, 182 scripts de inicio, 159 SCSI nombres de dispositivos, 108 problemas, 88, 89 se˜nal de fin-de-texto, 113 segundo plano, 120 sendmail, 208 servicio t´ecnico comercial, 24 setenv, 130 shell scripts definici´on, 110 shells, 110–111 Bourne again shell, 110 Bourne shell, 110 C shell, 110 caracteres comod´ın para, 111–112 controlde tareas proporcionado por, 119 definici´on, 96 expansi´on de comodines, 111 indicador de o´ rdenes, 97 shutdown, 83 sistema de ficheros exploraci´on, 107–110 sistemas de ficheros, 139–141 /etc/fstab, 139 arreglando corrompidos, 161 comprobando, 141 desmontando, 141 en disquete, 152 montando, 139 sistemas operativos arrancando no-Linux, 134, 135 Slackware, 64 instalaci´on, 64 slattach, 185 SLIP, 179, 185–189 conexiona un servidor con dip, 187 direccion IP est´atica con dip, 186 direcciones IP din´amicas con dip, 187 direcciones IP est´aticas con slattach, 186 nombres de dispositivo para, 186 Smail, 208 software actualizar, 153–159

´ ´ INDICE ALFABETICO

246

d´onde encontrar versiones, 158 instalar, 153–159 software libre, 13 soporte hardware, 17–20 CD-ROM, 20 cinta, unidades de, 20 controladora, 19 CPU, 18 disco duro, 19 espacio de la unidad, 19 IDE, 19 impresoras, 20 memoria, 18 modems, 20 monitor, 19 PCI, 18 placa base, 18 rat´on, 20 SCSI, 19, 20 tarjetas ethernet, 20 VESA, 18 video, tarjeta de, 19 standard input, 113 standard output, 113 startup scripts, 159 slattach direcciones IP est´aticas con, 186 stdin, 113 stdout, 113 super bloque corrompido, arreglo, 161 definici´on, 161 swap, 19 swapon, 139 syslogd, 183 tarea background, 120 definici´on, 120 detener, 122 foreground, 120 interrumpir, 121 interrupci´on, 120 matar, 121 paso a segundo plano, 121 recomenzar, 122 segundo plano, 121, 122 matar, 121 suspendida, 120 tareas, 121 TCP/IP, 179–189 /etc/host.conf, 184

/etc/hosts, 184 /etc/networks, 184 /etc/resolve.conf, 184 conexi´on punto a punto, 185 configuraci´on, 180 direcci´on de broadcast, 181 direcci´on de pasarela, 181 direcci´on de red, 181 direcci´on IP, 180 ifconfig, 182 implementaci´on de NET-3, 179 inetd, 183 m´ascara de red, 180 name server address, 181 named, 184 PPP, 185 problemas, 185 rc.inet, 182 rc.inet1, 182 ejemplo, 182 rc.inet2, 182 ejemplo, 183 rc.net, 182 requerimientos hardware, 179 route, 182 routed, 183 scripts de configuraci´on, 182 SLIP, 185–189 direcciones IP din´amicas con dip, 187 direcciones IP est´aticas con slattach, 186 direcci´on IP est´atica con dip, 186 nombres de dispositivo para, 186 sobre l´ınea serie, 185–189 syslogd, 183 tablas de encaminamiento, 185 Tcsh, 110 tcsh, 110 tilde, 100 tin, 209 Torvalds, Linus, 14 transporte para e-mail, 208 tuber´ıas (pipes) uso, 114–115 UID definici´on, 142 umount, 141 desmontando disquetes con, 152 UNIX comercial, 14, 16–17

´ ´ INDICE ALFABETICO

implementaciones gratuitas, 17 para PCs, 16–17 USENET grupos de noticias relacionadas GNU/Linux, 22 poniendo mensajes, 24 Usenet, 208–209 user ID definici´on, 142 usuarios a˜nadiendo, 142 clave de, 143 deshabilitando, 145 directorio inicial de, 143 en grupos, 116 group ID de, 143 Int´erprete de conexi´on de, 143 nombre completo de, 143 nombre de , 142 user ID de, 142 UUCP, 208 variables en guiones, 129 entorno, 130 int´erprete de o´ rdenes, 129 variables del int´erprete de o´ rdenes exportando al entorno, 130 vi, 123–128 o´ rdenes shell desde , 128 borrado de texto, 126 borrando texto, 125 cambiar a otros ficheros, 127 cambiar texto, 126 cambio de texto, 126 empezando, 124 escribir cambios, 127 guardar cambios, 127 incluir ficheros, 128 inserci´on de texto, 124–125 modo u´ ltima l´ınea, 124 modo edici´on, 124 modo orden, 123 mover el cursor, 126 salir, 127 virgulilla, 100 Windows NT, 16 X-Window introducci´on, 8 X11R6, 163 XF86Config, 169

247

con

XFree86, 163 chipsets de v´ıdeo soportados por, 163 configuring, 168 fichero de configuracio para, 169 instalaci´on, 165 requerimientos hardware para, 163 xfsck, 141 X Window System, 163–178 definici´on, 163

[PDF] GNU/Linux: Instalaci´on y Primeros Pasos - TLDP - Free Download PDF (2024)

References

Top Articles
Latest Posts
Article information

Author: Terrell Hackett

Last Updated:

Views: 6194

Rating: 4.1 / 5 (52 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Terrell Hackett

Birthday: 1992-03-17

Address: Suite 453 459 Gibson Squares, East Adriane, AK 71925-5692

Phone: +21811810803470

Job: Chief Representative

Hobby: Board games, Rock climbing, Ghost hunting, Origami, Kabaddi, Mushroom hunting, Gaming

Introduction: My name is Terrell Hackett, I am a gleaming, brainy, courageous, helpful, healthy, cooperative, graceful person who loves writing and wants to share my knowledge and understanding with you.