Debian Osamu Aoki Reference Manual

Page 1
Page 2
Guía de referencia de Debian i
Guía de referencia de Debian
Osamu Aoki
Page 3
Guía de referencia de Debian ii
Copyright © 2013-2024 Osamu Aoki
La Guía de Referencia de Debian (version 2.125) (2024-11-15 13:32:55 UTC) pretende aportar una visión amplia del sistema Debian y servirde guía al usuario después de la instalación. Se tratan diferentes aspectos de la administración del sistema, usando ejemplos en el intérprete de órdenes, para todo tipo de usuarios.
Page 4
Índice general
1. Tutoriales de GNU/Linux 1
1.1. Introducción a la consola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1. El cursor del intérprete de órdenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2. El indicador del intérprete de órdenes en GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.3. La cuenta de superusuario (root) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.4. El cursor del intérprete de órdenes de superusuario . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.5. Herramientas gráficas para la administración del sistema . . . . . . . . . . . . . . . . . . . . . 3
1.1.6. Consolas virtuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.7. Cómo cerrar el intérprete de órdenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.8. Cómo apagar el sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.9. Cómo recuperar la configuración normal de una consola . . . . . . . . . . . . . . . . . . . . . 4
1.1.10. Paquetes complementarios recomendados para usuarios sin experiencia . . . . . . . . . . . . 4
1.1.11. Una cuenta de usuario adicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.12. Configuración de sudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.13. Hora de jugar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2. Sistema de archivos tipo Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1. Información básica sobre archivos en Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.2. Sistemas de archivos internos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.3. Permisos del sistema de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.4. Gestión de permisos para nuevos archivos: umask . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.5. Permisos para grupos de usuarios (grupo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.6. Marcas de tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.7. Enlaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2.8. Tuberías con nombre (FIFOs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.9. «Sockets» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2.10. Archivos de dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2.11. Archivos de dispositivos especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.2.12. procfs y sysfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.2.13. tmpfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3. Midnight Commander (MC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Page 5
Guía de referencia de Debian iv
1.3.1. Personalización de MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.2. Comenzando con MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.3.3. Gestor de archivos de MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.3.4. Trucos de la línea de órdenes en MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.3.5. El editor interno de MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.3.6. El visor interno de MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.3.7. Selección inteligente del visor en MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.3.8. Sistema de archivos virtual de MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.4. Fundamentos de entornos de trabajo tipo Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.4.1. El intérprete de órdenes (shell) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.4.2. Personalización de bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.4.3. Combinaciones de teclas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.4.4. Operaciones con el ratón . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.4.5. El paginador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.4.6. El editor de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.4.7. Configuración del editor de texto por defecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.4.8. Usando vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.4.9. Grabación de las actividades del intérprete de órdenes . . . . . . . . . . . . . . . . . . . . . . 25
1.4.10. Órdenes básicas de Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.5. Órdenes simples para el intérprete de órdenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.5.1. Ejecución de órdenes y variables de entorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.5.2. La variable «$LANG» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.5.3. La variable «$PATH» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.5.4. La variable «$HOME» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.5.5. Opciones de la línea de órdenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.5.6. Expansión de un patrón en el intérprete de órdenes . . . . . . . . . . . . . . . . . . . . . . . . 30
1.5.7. Valor devuelto por la orden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.5.8. Secuencias de órdenes comunes y redirecciones del intérprete de órdenes . . . . . . . . . . . 32
1.5.9. Alias de órdenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.6. Operaciones de texto al estilo de Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.6.1. Herramientas de texto Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.6.2. Expresiones regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.6.3. Sustitución de expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.6.4. Sustituciones globales mediante expresiones regulares . . . . . . . . . . . . . . . . . . . . . . 37
1.6.5. Extracción de datos en archivos de texto en forma de tabla . . . . . . . . . . . . . . . . . . . . 38
1.6.6. Fragmentos de órdenes utilizados con tuberías . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Page 6
Guía de referencia de Debian v
2. Gestión de paquetes Debian 41
2.1. Prerequisitos de la gestión de paquetes Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.1.1. Sistema de gestión de paquetes Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.1.2. Configuración de paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.1.3. Precauciones principales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.1.4. Conviviendo con actualizaciones continuas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.1.5. Fundamentos del archivo de Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.1.6. Debian es 100 % software libre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.1.7. Dependencias de paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.1.8. Flujo de hechos de las órdenes de gestión de paquetes . . . . . . . . . . . . . . . . . . . . . . 51
2.1.9. Soluciones a problemas básicos en la gestión de paquetes . . . . . . . . . . . . . . . . . . . . 52
2.1.10. Como seleccionar paquetes Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.1.11. Cómo hacer frente a requisitos contradictorios . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.2. Operaciones básicas de la gestión de paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.2.1. apt vs. apt-get / apt-cache vs. aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.2.2. Operaciones básicas de gestión de paquetes utilizando la línea de órdenes . . . . . . . . . . . 54
2.2.3. Uso interactivo de aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.2.4. Combinaciones de teclado en aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.2.5. Visualización de paquetes en aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.2.6. Opciones del método de búsqueda con aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.2.7. La fórmula de la expresión regular de aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.2.8. Resolución de dependencias en aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.2.9. Registro de la actividad de los paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.3. Ejemplos de operaciones con aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.3.1. Buscando paquetes interesantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.3.2. Enumera los paquetes cuyos nombres encajan con la expresión regular . . . . . . . . . . . . . 61
2.3.3. Navega por la relación de paquetes que encajan con la expresión regular . . . . . . . . . . . . 61
2.3.4. Purga los paquetes eliminados definitivamente . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.3.5. Estado de instalación ordenado de forma automática/manual . . . . . . . . . . . . . . . . . . . 62
2.3.6. Actualización mayor del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.4. Operaciones avanzadas de gestión de paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.4.1. Operaciones avanzadas de gestión de paquetes desde la línea de órdenes . . . . . . . . . . . 64
2.4.2. Verificación de los archivos de un paquete instalado . . . . . . . . . . . . . . . . . . . . . . . . 64
2.4.3. Protección frente a problemas con paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.4.4. Buscando metadatos en los paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.5. Gestión interna de los paquetes Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.5.1. Metadatos de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.5.2. Archivo «Release» del nivel superior y autenticación . . . . . . . . . . . . . . . . . . . . . . . . 66
2.5.3. Archivos «Release» a nivel de archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Page 7
Guía de referencia de Debian vi
2.5.4. Actualizando la meta información de los paquetes . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.5.5. Estado del paquete para APT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.5.6. El estado del paquete en aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.5.7. Copias locales de los paquetes descargados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.5.8. Nombres de archivos de paquetes Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.5.9. La orden dpkg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.5.10. La orden update-alternatives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.5.11. La orden dpkg-statoverride . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.5.12. La orden dpkg-divert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.6. Recuperación de un sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.6.1. Instalación fallida debido a dependencias incumplidas . . . . . . . . . . . . . . . . . . . . . . . 73
2.6.2. Errores de almacenamiento en la caché de los datos del paquete . . . . . . . . . . . . . . . . 73
2.6.3. Incompatibilidad con la configuración antigua del usuario . . . . . . . . . . . . . . . . . . . . . 73
2.6.4. Superposición de archivos por diferentes paquetes . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.6.5. Arreglando un archivo de órdenes de un paquete roto . . . . . . . . . . . . . . . . . . . . . . . 74
2.6.6. Recuperación con la orden dpkg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.6.7. Recuperando datos de la selección de paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.7. Consejos para la gestión de paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.7.1. ¿Quién sube los paquetes? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.7.2. Limitar el ancho de banda de descarga para APT . . . . . . . . . . . . . . . . . . . . . . . . . 76
2.7.3. Descarga y actualización automática de paquetes . . . . . . . . . . . . . . . . . . . . . . . . . 76
2.7.4. Actualizaciones y Backports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
2.7.5. Archivos externos de los paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
2.7.6. Paquetes de origen mixto de archivos sin apt-pinning . . . . . . . . . . . . . . . . . . . . . . . 77
2.7.7. Ajustar la versión candidata con apt-pinning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
2.7.8. Bloqueo de la instalación de paquetes recomendados («Recommends«) . . . . . . . . . . . . 80
2.7.9. Seguimiento «en pruebas» con algunos paquetes de «inestable» . . . . . . . . . . . . . 80
2.7.10. Mantener unstable (inestable) con algunos paquetes de experimental . . . . . . . . . . . 81
2.7.11. Volver al estado anterior por emergencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
2.7.12. El paquete «equivs« . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
2.7.13. Portar un paquete a un sistema estable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
2.7.14. Servidor proxy para APT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
2.7.15. Más información acerca de la gestión de paquetes . . . . . . . . . . . . . . . . . . . . . . . . . 84
Page 8
Guía de referencia de Debian vii
3. La inicialización del sistema 85
3.1. Un resumen del proceso de arranque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.1.1. Fase 1: UEFI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.1.2. Fase 2: el cargador de arranque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.1.3. Fase 3: el sistema mini-Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.1.4. Fase 4: el sistema normal Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.2. Systemd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.2.1. Arranque de systemd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.2.2. Inicio de sesión en Systemd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.3. Los mensajes del núcleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.4. El sistema de mensajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.5. Gestión del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.6. Otros monitores del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.7. Configuración del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.7.1. El nombre del equipo (hostname) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.7.2. El sistema de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3.7.3. Inicialización del interfaz de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3.7.4. Inicialización del sistema en la nube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3.7.5. Ejemplo de personalización para ajustar el servicio sshd . . . . . . . . . . . . . . . . . . . . . 94
3.8. El sistema udev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.9. La inicialización del módulo del núcleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4. Autenticación y controles de acceso 97
4.1. Acreditación normal de Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.2. Gestionando información de cuentas y contraseñas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.3. Buenas contraseñas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.4. Creando una contraseña cifrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.5. PAM y NSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.5.1. Archivos de configuración utilizados por PAM y NSS . . . . . . . . . . . . . . . . . . . . . . . . 101
4.5.2. La actual gestión centralizada de sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.5.3. «Razones por las que GNU no tienen la funcionalidad del grupo wheel« . . . . . . . . . . . . . 103
4.5.4. Regla estricta para contraseñas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.6. Acreditación de seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.6.1. Contraseñas seguras en Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.6.2. «Secure Shell« . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.6.3. Medidas extraordinarias de seguridad en Internet . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.6.4. Asegurando la contraseña de root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.7. Otros controles de acceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.7.1. Listas de control de acceso (ACL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
4.7.2. sudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
4.7.3. PolicyKit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
4.7.4. Restricción de acceso a algunos servicios del servidor . . . . . . . . . . . . . . . . . . . . . . . 107
4.7.5. Características de seguridad de Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Page 9
Guía de referencia de Debian viii
5. Configuración de red 109
5.1. La infraestructura de red básica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.1.1. La resolución del nombre del equipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.1.2. El nombre del interfaz de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.1.3. EL rango de direcciones de red para una LAN . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.1.4. El mantenimiento de los dispositivos de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.2. La configuración moderna de red en el escritorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.2.1. Herramientas de interfaz gráfico de usuario para la configuración de red . . . . . . . . . . . . . 113
5.3. La moderna configuración de la red sin GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
5.4. La moderna configuración de la red para la nube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.4.1. La moderna configuración de red para la nube con DHCP . . . . . . . . . . . . . . . . . . . . . 114
5.4.2. La moderna configuración de red para la nube con una IP estática . . . . . . . . . . . . . . . . 114
5.4.3. La configuración de red moderna para la nube con Network Manager . . . . . . . . . . . . . . 115
5.5. La configuración de red de bajo nivel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.5.1. Órdenes iproute2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.5.2. Operaciones seguras de red a nivel bajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.6. Optimización de la red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.6.1. Encontrando la MTU óptima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.6.2. Optimización TCP en redes WAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
5.7. Infraestructura Netfilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
6. Aplicaciones de red 120
6.1. Navegadores web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
6.1.1. Spoofing de la cadena User-Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
6.1.2. extensión del navegador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
6.2. El sistema de correo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
6.2.1. Fundamentos de correo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
6.2.2. Limitación del servicio moderno de correo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
6.2.3. Expectativa histórica del servicio de correo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
6.2.4. Agente de transporte de correo (Mail transport agent, MTA) . . . . . . . . . . . . . . . . . . . . 123
6.2.4.1. Configuración de exim4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
6.2.4.2. Configuración de postfix con SASL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
6.2.4.3. La configuración de la dirección de correo . . . . . . . . . . . . . . . . . . . . . . . . 126
6.2.4.4. Operaciones fundamentales MTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
6.3. Servidor de acceso remoto (SSH) y utilidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
6.3.1. Fundamentos de SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
6.3.2. Nombre de usuario en el host remoto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
6.3.3. Conectarse sin contraseñas del equipo remoto . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
6.3.4. Tratando con clientes SSH extraños . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Page 10
Guía de referencia de Debian ix
6.3.5. Configuración ssh-agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
6.3.6. Enviar un correo desde un host remoto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
6.3.7. Puerto de reenvío para túnel SMTP/POP3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
6.3.8. Apagar un sistemas remoto utilizando SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
6.3.9. Resolución de problemas de SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.4. Servidor de impresión y utilidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.5. Servidores de aplicaciones en otras redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.6. Otros clientes de aplicaciones de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6.7. Diagnóstico de los demonios del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7. Sistema GUI (interfaz gráfica de usuario) 135
7.1. Entorno de escritorio GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.2. protocolo de comunicación GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
7.3. infraestructura GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.4. Aplicaciones GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
7.5. Directorios de los usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
7.6. Fuentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
7.6.1. Tipos de letras fundamentales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
7.6.2. Rasterización de fuentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
7.7. Sandbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
7.8. Escritorio remoto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
7.9. conexión del servidor X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
7.9.1. Conexión local del servidor X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
7.9.2. Conexión remota del servidor X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
7.9.3. Conexión chroot del servidor X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
7.10.Portapapeles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
8. I18N y L10N 146
8.1. Configuración regional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
8.1.1. Razón de ser de la configuración regional UTF-8 . . . . . . . . . . . . . . . . . . . . . . . . . . 146
8.1.2. Reconfiguración de la configuración regional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
8.1.3. Codificación del nombre de archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
8.1.4. Configuración regional de los mensajes y documentación traducida . . . . . . . . . . . . . . . 148
8.1.5. Efectos de la configuración regional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
8.2. La entrada por teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
8.2.1. Teclado de entrada para la consola Linux y X Window . . . . . . . . . . . . . . . . . . . . . . . 149
8.2.2. La entrada por teclado para Wayland . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
8.2.3. El soporte al método de entrada con lBus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
8.2.4. Ejemplo para el japonés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
8.3. La salida por pantalla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
8.4. Ancho de los caracteres ambiguos de Asia oriental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Page 11
Guía de referencia de Debian x
9. Trucos del sistema 152
9.1. Consejos para la consola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
9.1.1. Registro correcto de las actividades del intérprete de órdenes . . . . . . . . . . . . . . . . . . 152
9.1.2. El programa screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
9.1.3. Navegando por los directorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
9.1.4. Readline wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
9.1.5. Escaneando el árbol del código fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
9.2. Personalización de vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
9.2.1. Personalizando vim con características internas . . . . . . . . . . . . . . . . . . . . . . . . . . 155
9.2.2. Personalizando vim con paquetes externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
9.3. Registro de datos y presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
9.3.1. El demonio de registro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
9.3.2. Analizador de registros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
9.3.3. Personalizar la visualización de información en formato texto . . . . . . . . . . . . . . . . . . . 159
9.3.4. Personalización de la visualización de la fecha y hora . . . . . . . . . . . . . . . . . . . . . . . 159
9.3.5. Intérprete de órdenes en color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
9.3.6. Órdenes coloreadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
9.3.7. Grabación de las actividades del editor con repeticiones complejas . . . . . . . . . . . . . . . 160
9.3.8. Capturar una imagen gráfica en un aplicación X . . . . . . . . . . . . . . . . . . . . . . . . . . 161
9.3.9. Guardando cambios en los archivos de configuración . . . . . . . . . . . . . . . . . . . . . . . 161
9.4. Monitoreando, controlando e iniciando lo que hacer los programas . . . . . . . . . . . . . . . . . . . . 163
9.4.1. Temporización de un proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
9.4.2. La prioridad de planificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
9.4.3. La orden ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
9.4.4. La orden top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
9.4.5. Relación de los archivos abiertos por un proceso . . . . . . . . . . . . . . . . . . . . . . . . . . 164
9.4.6. Trazando la actividad de un programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
9.4.7. Identificación de procesos utilizando archivos o conexiones (sockets) . . . . . . . . . . . . . . 164
9.4.8. Repetición de una orden a intervalos constantes . . . . . . . . . . . . . . . . . . . . . . . . . . 164
9.4.9. Repetición de una orden sobre archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
9.4.10. Iniciar un programa desde el interfaz gráfico de usuario . . . . . . . . . . . . . . . . . . . . . . 165
9.4.11. Personalizando el inicio de un programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
9.4.12. Matando un proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
9.4.13. Planificación una vez de las tareas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
9.4.14. Planificación regular de tareas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
9.4.15. Programación de tareas en un suceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
9.4.16. Tecla Alt-SysRq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
9.5. Trucos para el mantenimiento del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
9.5.1. ¿Quién está en el sistema? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Page 12
Guía de referencia de Debian xi
9.5.2. Avisos para todos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
9.5.3. Identificación del hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
9.5.4. Configuración del hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
9.5.5. Hora del sistema y del hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
9.5.6. La configuración de la terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
9.5.7. La infraestructura de sonido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
9.5.8. Deshabilitar el salvapantallas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
9.5.9. Deshabilitando los pitidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
9.5.10. Utilización de memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
9.5.11. Sistema de seguridad y de comprobación de la integridad . . . . . . . . . . . . . . . . . . . . . 175
9.6. Trucos del almacenamiento de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
9.6.1. Uso de espacio de disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
9.6.2. Configuración del particionado de disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
9.6.3. Acceso al particionado utilizando UUID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
9.6.4. LVM2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
9.6.5. Configuración del sistema de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
9.6.6. Comprobación de la integridad y creación del sistema de archivos . . . . . . . . . . . . . . . . 178
9.6.7. Optimización de los sistemas de archivos a través de las opciones de montaje . . . . . . . . . 179
9.6.8. Optimización del sistema de archivo a través del superbloque . . . . . . . . . . . . . . . . . . 179
9.6.9. Optimización del disco duro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
9.6.10. Optimización de un disco de estado sólido (SSD) . . . . . . . . . . . . . . . . . . . . . . . . . . 180
9.6.11. Utilice SMART para predecir fallos en su disco duro . . . . . . . . . . . . . . . . . . . . . . . . 180
9.6.12. Determine el directorio de almacenamiento temporal por medio de $TMPDIR . . . . . . . . . . 180
9.6.13. Expansión del espacio de almacenamiento utilizable mediante LVM . . . . . . . . . . . . . . . 181
9.6.14. Expansión del espacio de almacenamiento útil mediante el montaje de otra partición . . . . . . 181
9.6.15. Expansión del espacio de almacenamiento por el enlace mediante el montaje en otro directorio 181
9.6.16. Expansión del espacio de almacenamiento utilizable por superposición-montaje de otro directorio181
9.6.17. Expansión del espacio de almacenamiento útil utilizando un enlace simbólico . . . . . . . . . . 181
9.7. La imagen de disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
9.7.1. Creando un archivo de imagen de disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
9.7.2. Escribiendo directamente en el disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
9.7.3. Montaje del archivo imagen del disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
9.7.4. Limpiando un archivo de imagen de disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
9.7.5. Haciendo un archivo de imagen de disco vacío . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
9.7.6. Haciendo un archivo de imagen ISO9660 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
9.7.7. Escritura directa al CD/DVD-R/RW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
9.7.8. Montando un archivo imagen ISO9660 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
9.8. Datos binarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
9.8.1. Viendo y editando datos binarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Page 13
Guía de referencia de Debian xii
9.8.2. Manipular archivos sin el montaje de discos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
9.8.3. Redundancia de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
9.8.4. Recuperación de datos de archivos y análisis forense . . . . . . . . . . . . . . . . . . . . . . . 188
9.8.5. División de un archivo grande en archivos de tamaño menor . . . . . . . . . . . . . . . . . . . 188
9.8.6. Limpieza del contenido de los archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
9.8.7. Archivos «vacíos» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
9.8.8. Borrando completo de un disco duro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
9.8.9. Borrar áreas de disco duro no utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
9.8.10. Recuperando archivos borrados pero todavía abiertos . . . . . . . . . . . . . . . . . . . . . . . 190
9.8.11. Buscando todos los enlaces duros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
9.8.12. Consumo invisible de espacio de disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
9.9. Trucos para cifrar información . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
9.9.1. Cifrado de discos externos con dm-crypt/LUKS . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
9.9.2. Montaje de disco cifrado con dm-crypt/LUCKS . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
9.10.El núcleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
9.10.1. Parámetros del núcleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
9.10.2. Cabeceras del núcleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
9.10.3. Compilar el núcleo y los módulos asociados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
9.10.4. Compilando el código fuente del núcleo: recomendaciones del Equipo Debian del Núcleo . . . 194
9.10.5. Controladores y firware del hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
9.11. Sistemas virtualizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
9.11.1. Herramientas de virtualización y emulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
9.11.2. Flujo de trabajo de la virtualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
9.11.3. Montando el archivo de imagen de disco virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
9.11.4. Sistemas chroot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
9.11.5. Varios sistemas de escritorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
10.Gestión de información 201
10.1.Compartición, copia y archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
10.1.1. Herramientas de repositorios y compresión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
10.1.2. Herramientas de sincronización y copia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
10.1.3. Formas de archivado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
10.1.4. Formas de copia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
10.1.5. Formas de selección de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
10.1.6. Medios de archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
10.1.7. Dispositivos de almacenamiento extraíbles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
10.1.8. Selección del sistema de archivos para compartir datos . . . . . . . . . . . . . . . . . . . . . . 208
10.1.9. Compartir información a través de la red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
10.2.Respaldo y recuperación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Page 14
Guía de referencia de Debian xiii
10.2.1. Política de respaldo y recuperación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
10.2.2. Suites de utilidades de copias de seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
10.2.3. Consejos para copias de seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
10.2.3.1. Copia de seguridad de la GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
10.2.3.2. Montar la copia de seguridad activada por el acto . . . . . . . . . . . . . . . . . . . . 214
10.2.3.3. Copia de seguridad activada por acción del temporizador . . . . . . . . . . . . . . . . 214
10.3.Infraestructura de seguridad de la información . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
10.3.1. Gestión de claves con GnuPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
10.3.2. Usando GnuPG en archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
10.3.3. Uso de Mutt con GnuPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
10.3.4. Utilizando Vim con GnuPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
10.3.5. El resumen MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
10.3.6. Llavero de contraseña . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
10.4.Herramientas para mezclar código fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
10.4.1. extrae las diferencias entre dos archivos fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
10.4.2. Mezcla actualizaciones del archivos de código fuente . . . . . . . . . . . . . . . . . . . . . . . 220
10.4.3. Integración interactiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
10.5.Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
10.5.1. Configuración del cliente Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
10.5.2. Comandos Git básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
10.5.3. Consejos para Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
10.5.4. Algunas referencias sobre Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
10.5.5. Otros sistemas de control de versiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
11.Conversión de datos 225
11.1. Herramientas para la conversión de información en formato texto . . . . . . . . . . . . . . . . . . . . . 225
11.1.1. Convirtiendo un archivo de texto con iconv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
11.1.2. Comprobando que un archivo es UTF-8 con iconv . . . . . . . . . . . . . . . . . . . . . . . . . 227
11.1.3. Convirtiendo los nombres de archivos con iconv . . . . . . . . . . . . . . . . . . . . . . . . . . 227
11.1.4. Conversión EOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
11.1.5. Conversión de tabuladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
11.1.6. Editores con conversión automática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
11.1.7. Extracción de texto plano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
11.1.8. Resaltando y dándole formato a información en texto plano . . . . . . . . . . . . . . . . . . . . 229
11.2. datos XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
11.2.1. Conceptos básicos de XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
11.2.2. Procesamiento XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
11.2.3. La extracción de información XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
11.2.4. Análisis de datos XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Page 15
Guía de referencia de Debian xiv
11.3. Configuración tipográfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
11.3.1. composición tipográfica roff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
11.3.2. TeX/LaTeX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
11.3.3. Impresión de una página de manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
11.3.4. Crear una página de man . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
11.4. Información imprimible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
11.4.1. Ghostscript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
11.4.2. Mezcla de dos archivos PS o PDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
11.4.3. Utilidades de impresión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
11.4.4. Imprimiendo con CUPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
11.5. La conversión de los datos de correo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
11.5.1. Fundamentos de información de correo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
11.6. Herramientas para información gráfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
11.6.1. Herramientas gráficas de datos (meta paquete) . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
11.6.2. Herramientas de datos gráficos (GUI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
11.6.3. Herramientas de datos gráficos (CLI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
11.7. Conversiones de información variadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
12.Programación 244
12.1.Los archivos de órdenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
12.1.1. Compatibilidad del intérprete de órdenes POSIX . . . . . . . . . . . . . . . . . . . . . . . . . . 245
12.1.2. Parámetros del intérprete de órdenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
12.1.3. Condiciones del intérprete de órdenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
12.1.4. Bucles del intérprete de órdenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
12.1.5. Variables del entorno de shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
12.1.6. La secuencia de procesamiento de la línea de órdenes . . . . . . . . . . . . . . . . . . . . . . 248
12.1.7. Programas útiles para los archivos de órdenes . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
12.2.Programación en lenguajes interpretados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
12.2.1. Depuración de los códigos del lenguaje interpretado . . . . . . . . . . . . . . . . . . . . . . . . 251
12.2.2. Programa GUI con el script de shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
12.2.3. Acciones personalizadas para el archivador GUI . . . . . . . . . . . . . . . . . . . . . . . . . . 252
12.2.4. Locura de pequeños archivos de órdenes en Perl . . . . . . . . . . . . . . . . . . . . . . . . . 252
12.3.Codificación en lenguajes compilados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
12.3.1. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
12.3.2. Programa sencillo en C (gcc) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
12.3.3. Flex — una mejora de Lex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
12.3.4. Bison — una mejora de Yacc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
12.4.Herramientas de análisis estático de memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
12.5.Depuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Page 16
Guía de referencia de Debian xv
12.5.1. Fundamentos de gdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
12.5.2. Depurando un paquete Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
12.5.3. Obteniendo trazas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
12.5.4. Órdenes avanzadas de gdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
12.5.5. Comprobar las dependencias de las bibliotecas . . . . . . . . . . . . . . . . . . . . . . . . . . 260
12.5.6. Herramientas de rastreo dinámico de llamadas . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
12.5.7. Errores de depuración X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
12.5.8. Herramientas de detección de fugas de memoria . . . . . . . . . . . . . . . . . . . . . . . . . . 261
12.5.9. Desemsamblado de binarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
12.6.Herramientas de construcción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
12.6.1. Make . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
12.6.2. Autotools (Autoherramientas) (herramientas de automatización) . . . . . . . . . . . . . . . . . 262
12.6.2.1. Compilando e instalando un programa . . . . . . . . . . . . . . . . . . . . . . . . . . 262
12.6.2.2. Desinstalando programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
12.6.3. Meson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
12.7.Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
12.8.La traducción de código fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
12.9.Haciendo un paquete Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
A. Apéndice 266
A.1. Debian maze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
A.2. Histórico de copyright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
A.3. Formato del documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Page 17
Guía de referencia de Debian xvi
Índice de cuadros
1.1. Relación de paquetes con programas interesantes en modo texto . . . . . . . . . . . . . . . . . . . . 5
1.2. Relación de paquetes con documentación útil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Relación de directorios clave y su uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4. La interpretación del primer carácter de cada línea de la salida de «ls -l» se interpreta como se
muestra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5. El modo numérico en chmod(1) es como se muestra . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6. Ejemplos de valores de umask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.7. Relación de grupos importantes del sistema para el acceso a archivos . . . . . . . . . . . . . . . . . . 12
1.8. Relación de grupos importantes del sistema para la ejecución de órdenes específicas . . . . . . . . . 13
1.9. Relación de tipos de marcas de tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.10.Relación de archivos de dispositivos especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.11. Funciones de las teclas en MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.12.Acción de la tecla Intro en MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.13.Relación de intérpretes de órdenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.14.Relación de combinaciones de teclado en bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.15.Lista de acciones de teclado relacionadas y operaciones con ratón en Debian . . . . . . . . . . . . . 23
1.16.Lista de comandos básicos de Vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.17.Relación de órdenes Unix fundamentales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.18.Tres partes del valor de la configuración regional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.19.Relación de recomendaciones para la configuración regional . . . . . . . . . . . . . . . . . . . . . . . 29
1.20.Relación de valores de «$HOME» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.21.Patrones para la expansión de nombres de archivos del intérprete de órdenes . . . . . . . . . . . . . 31
1.22.Códigos de salida de una orden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.23.Expresiones de una orden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.24.Descriptores de archivos predefinidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.25.Metacaracteres para BRE y ERE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1.26.Sustitución mediante expresiones regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1.27.Relación de fragmentos de órdenes con tuberías . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.1. Relación de herramientas para la gestión de paquetes de Debian . . . . . . . . . . . . . . . . . . . . . 42
Page 18
Guía de referencia de Debian xvii
2.2. Relación de sitios de archivo de Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.3. Relación de áreas de archivo Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.4. Relación entre los nombres de publicación y distribución . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.5. Relación de los principales sitios web para resolver problemas de un paquete concreto . . . . . . . . 52
2.6. Operaciones básicas de gestión de paquetes utilizando la línea de órdenes apt(8), aptitude(8) y
apt-get(8)/apt-cache(8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.7. Opciones más importantes de la orden aptitude(8) . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.8. Relación de combinaciones de teclado de aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.9. Relación de vistas en aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.10.La clasificación de la vista de paquetes estándar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.11. Relación de fórmulas de expresiones regulares de aptitute . . . . . . . . . . . . . . . . . . . . . . . . 60
2.12.Los archivos de registro de acciones sobre paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.13.Relación de operaciones avanzadas con paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.14.El contenido de metadatos del repositorio Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.15.La estructura del nombre de los paquetes Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.16.Los caracteres permitidos en cada campo del nombre del paquete en Debian . . . . . . . . . . . . . . 70
2.17.Los archivos destacados creados por dpkg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.18.Relación de valores Pin-Priority importantes para la técnica apt-pinning. . . . . . . . . . . . . . . . . 79
2.19.Relación de herramientas de proxy especificas para el repositorio Debian . . . . . . . . . . . . . . . . 84
3.1. Relación de cargadores de arranque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.2. El significado de la entrada del menú de la parte anterior de /boot/grub/grub.cfg . . . . . . . . . 87
3.3. Relación de sistemas de arranque en el sistema Debian . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.4. Lista de niveles de error del núcleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.5. Lista de fragmentos de comando típicos de journalctl . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.6. Lista de típicos snippets de comandos systemctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
3.7. Lista de otros fragmentos de comandos de supervisión en systemd . . . . . . . . . . . . . . . . . . . 93
4.1. los tres archivos importantes de configuración de pam_unix(8) . . . . . . . . . . . . . . . . . . . . . . 97
4.2. El contenido de la segunda entrada de «/etc/passwd» . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.3. Relación de órdenes para la gestión de información de las cuentas . . . . . . . . . . . . . . . . . . . . 99
4.4. Relación de herramientas para generar contraseñas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.5. Relación de sistemas PAM y NSS relevantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.6. Relación de archivos de configuración utilizados por PAM y NSS . . . . . . . . . . . . . . . . . . . . . 102
4.7. Relación de servicios y puertos seguros e inseguros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.8. Relación de herramientas que aportan medidas extra de seguridad . . . . . . . . . . . . . . . . . . . . 105
5.1. Relación de herramientas de configuración de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
5.2. Relación de rangos de direcciones de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.3. Tabla de correspondencia entre las órdenes en desuso de net-tools y las nuevas órdenes de
iproute2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Page 19
Guía de referencia de Debian xviii
5.4. Relación de órdenes de red de bajo nivel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.5. Relación de herramientas de optimización de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.6. Guía básica para una MTU óptima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.7. Relación de herramientas de cortafuegos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
6.1. Relación de navegadores web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
6.2. Relación de agentes de usuario de correo (MUA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
6.3. Lista de paquetes básicos relacionados con el agente de transferencia de correo . . . . . . . . . . . . 124
6.4. Relación de páginas importantes del manual en postfix . . . . . . . . . . . . . . . . . . . . . . . . . . 125
6.5. Relación de los archivos relacionados con la configuración de la dirección de correo . . . . . . . . . . 126
6.6. Relación de operaciones MTA fundamentales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
6.7. Relación de servidores de acceso remoto y utilidades . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
6.8. Relación de los archivos de configuración de SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
6.9. Relación de ejemplos de inicio del clientes ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
6.10.Relación de clientes SSH libres en otras plataformas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
6.11. Relación de las utilidades y servidores de impresión . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.12.Relación de los servidores de aplicaciones de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6.13.Relación de clientes de aplicaciones de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
6.14.Relación de RFCs comúnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
7.1. Lista del entorno del escritorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.2. Lista de paquetes notables de la infraestructura GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.3. Lista de aplicaciones GUI destacadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
7.4. Lista de notables fuentes TrueType y OpenType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
7.5. Lista de entornos de fuentes notables y paquetes relacionados . . . . . . . . . . . . . . . . . . . . . . 141
7.6. Lista de entornos sandbox notables y paquetes asociados . . . . . . . . . . . . . . . . . . . . . . . . . 142
7.7. Lista de servidores de acceso remoto notables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
7.8. Relación de los métodos de conexión al servidor X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
7.9. Lista de programas relacionados con la manipulación del portapapeles de caracteres . . . . . . . . . 145
8.1. Lista de IBus y sus paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
9.1. Lista de programas de apoyo a las actividades de la consola . . . . . . . . . . . . . . . . . . . . . . . 152
9.2. Relación de los atajos de teclado para screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
9.3. Información de la inicialización de vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
9.4. Relación de analizadores de registro del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
9.5. Mostrar los ejemplos de la hora y la fecha para el comando ”ls -l” con el time style value. . . . . . 160
9.6. Relación de herramientas de manipulación de imágenes . . . . . . . . . . . . . . . . . . . . . . . . . . 161
9.7. Relación de paquetes que pueden guardar el histórico de configuración . . . . . . . . . . . . . . . . . 161
9.8. Relación de las herramientas de monitorización y control de las actividades de los programas . . . . 162
Page 20
Guía de referencia de Debian xix
9.9. Relación de buenos valores para la prioridad de planificación . . . . . . . . . . . . . . . . . . . . . . . 163
9.10.Lista de estilo de la orden ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
9.11. Relación de las señales más usadas con la orden kill . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
9.12.Lista de teclas notables del comando SAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
9.13.Relación de las herramientas para la identificación de hardware . . . . . . . . . . . . . . . . . . . . . 171
9.14.Relación de herramientas de configuración hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
9.15.Relación de paquetes de sonido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
9.16.Relación de las órdenes para deshabilitar el salvapantallas . . . . . . . . . . . . . . . . . . . . . . . . 174
9.17.Relación de informes de tamaño de la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
9.18.Relación de las herramientas de seguridad del sistema y comprobación de la integridad . . . . . . . . 175
9.19.Relación de paquetes para la gestión del particionado del disco . . . . . . . . . . . . . . . . . . . . . . 176
9.20.Relación de paquetes para la gestión del sistema de archivos . . . . . . . . . . . . . . . . . . . . . . . 178
9.21.Relación de paquetes para la visualización y edición de datos binarios . . . . . . . . . . . . . . . . . . 187
9.22.Relación de paquetes para manipular archivos sin montar el disco . . . . . . . . . . . . . . . . . . . . 187
9.23.Relación de herramientas para añadir redundancia de datos a los archivos . . . . . . . . . . . . . . . 187
9.24.Relación de paquetes para la recuperación de archivos y análisis forense . . . . . . . . . . . . . . . . 188
9.25.Relación de utilidades para el cifrado de información . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
9.26.Relación de los paquetes fundamentales para la recompilación del núcleo en los sistemas Debian . . 193
9.27.Relación de herramientas de virtualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
10.1.Relación de las herramientas de repositorios y compresión . . . . . . . . . . . . . . . . . . . . . . . . 203
10.2.Relación de las herramientas de copia y sincronización . . . . . . . . . . . . . . . . . . . . . . . . . . 204
10.3.Relación de posibles sistemas de archivos para dispositivos de almacenamiento extraíbles con sus
casos de uso normales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
10.4.Relación de los servicios de red disponibles con el escenario típico de utilización . . . . . . . . . . . . 210
10.5.Relación de suites de utilidades de copias de respaldo . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
10.6.Relación de herramientas de infraestructura de seguridad de la información . . . . . . . . . . . . . . . 216
10.7.Relación de las órdenes GNU Privacy Guard par la gestión de claves . . . . . . . . . . . . . . . . . . 216
10.8.Relación del significado del código de confianza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
10.9.Relación de órdenes GNU Privacy Guard sobre archivos . . . . . . . . . . . . . . . . . . . . . . . . . 217
10.10.Relación de las herramientas para mezclar código fuente . . . . . . . . . . . . . . . . . . . . . . . . . 219
10.11.Relación de paquetes y órdenes relacionados con git . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
10.12.Principales comandos de Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
10.13.Consejos para Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
10.14.Lista de otras herramientas del sistema del control de las versiones . . . . . . . . . . . . . . . . . . . 224
11.1. Relación de herramientas de conversión de información en formato texto . . . . . . . . . . . . . . . . 225
11.2. Relación de valores de codificación y su uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
11.3. Relación de estilos EOL para las diferentes plataformas . . . . . . . . . . . . . . . . . . . . . . . . . . 228
11.4. Relación de las órdenes de conversión de tabuladores de los paquetes bsdmainutils y coreutils 228
Page 21
Guía de referencia de Debian xx
11.5. Relación de las herramientas para extraer información en texto plano . . . . . . . . . . . . . . . . . . 230
11.6. Relación de herramientas para resaltar información en texto plano . . . . . . . . . . . . . . . . . . . . 230
11.7. Relación de entidades predefinidas para XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
11.8. Relación de herramientas XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
11.9. Relación de herramientas DSSSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
11.10.Relación de herramientas de extracción de información XML . . . . . . . . . . . . . . . . . . . . . . . 233
11.11.Relación de las herramientas de impresión de calidad de XML . . . . . . . . . . . . . . . . . . . . . . 233
11.12.Relación de las herramientas de composición tipográfica . . . . . . . . . . . . . . . . . . . . . . . . . 234
11.13.Relación de paquetes que ayudan a crear páginas man . . . . . . . . . . . . . . . . . . . . . . . . . . 235
11.14.Relación de intérpretes Ghostscript de PostScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
11.15.Relación de utilidades para la impresión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
11.16.Relación de paquetes que ayudan a la conversión de datos de correo . . . . . . . . . . . . . . . . . . 238
11.17.Lista de herramientas de datos gráficos (meta paquete) . . . . . . . . . . . . . . . . . . . . . . . . . . 240
11.18.Lista de herramientas de datos gráficos (GUI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
11.19.Lista de herramientas de datos gráficos (CLI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
11.20.Relación de herramientas varias para la conversión de información . . . . . . . . . . . . . . . . . . . . 243
12.1.Relación de particularidades de bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
12.2.Relación de los parámetros de intérprete de órdenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
12.3.Relación de expansiones de parámetros del intérprete de órdenes . . . . . . . . . . . . . . . . . . . . 246
12.4.Relación de las sustituciones clave de parámetros del intérprete de órdenes . . . . . . . . . . . . . . 246
12.5.Relación de operadores para comparar archivos en la expresión condicional . . . . . . . . . . . . . . 247
12.6.Relación de operadores de comparación de cadenas en expresiones condicionales . . . . . . . . . . 248
12.7.Relación de paquetes que contienen pequeñas utilidades para los archivos de órdenes . . . . . . . . 250
12.8.Lista de paquetes relacionados con el intérprete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
12.9.Lista de programas de diálogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
12.10.Lista de paquetes relacionados con el compilador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
12.11.Relación de analizadores sintácticos LALR compatibles con Yacc . . . . . . . . . . . . . . . . . . . . 255
12.12.Relación de las herramientas para el análisis de código estático . . . . . . . . . . . . . . . . . . . . . 257
12.13.Lista de paquetes de la depuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
12.14.Relación de órdenes avanzadas gdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
12.15.Relación de herramientas de detección de fugas de memoria . . . . . . . . . . . . . . . . . . . . . . . 261
12.16.Lista de paquetes de herramientas de compilación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
12.17.Relación de variables automáticas de make . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
12.18.Relación de expansiones de variables de make . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
12.19.Relación de herramientas de traducción de código fuente . . . . . . . . . . . . . . . . . . . . . . . . . 264
Page 22
Resumen
Este libro es libre. Puede redistribuirlo y/o modificarlo cumpliendo las condiciones de cualquier versión de la Licencia Pública General GNU compatible con las Directrices de software libre de Debian (DFSG).
Page 23
Guía de referencia de Debian xxii
Prefacio
La Guía de referencia de Debian (versión 2.125) (2024-11-15 13:32:55 UTC) pretende proporcionar una visión general amplia de la administración del sistema Debian como una guía del usuario posterior a la instalación.
El lector al que va dirigido esta obra es aquel que desea aprender scripts de shell, pero que no esta preparado para entender el código fuente C que le permita comprender el funcionamiento interno de un sistema GNULinux.
Para instrucciones de instalación, ver:
Guía de Instalación de Debian GNU/Linux de la versión estable (stable),
Guía de Instalación de Debian GNU/Linux de la versión prueba (testing)
Aviso
Esta guía se ofrece sin ninguna garantía. Todas las marcas son propiedad de sus respectivos dueños. Debian es un sistema vivo. Por lo que es difícil mantener este documento totalmente actualizado y sin errores.
Para escribir este documento se usa la versión testing del sistema Debian. Cuando lo lea puede que parte de su contenido se encuentre desactualizado.
Por favor, considere este documento como una fuente secundaria de información. No sustituye a ninguna guía acre­ditada. El autor y los colaboradores no asumen ninguna responsabilidad por las consecuencias de errores, omisiones o ambigüedades de este documento.
Qué es Debian
El Proyecto Debian es una asociación de individualidades que han hecho causa común para crear un sistema ope­rativo libre. Su distribución se caracteriza por lo siguiente.
Compromiso con la libertad del software: Contrato Social de Debian y Directrices de Software Libre de Debian
(DFSG)
Publicación de trabajo voluntario no remunerado en Internet: https://www.debian.org
Gran cantidad de paquetes de software de alta calidad compilados
Enfocado en la estabilidad y la seguridad con fácil acceso a las actualizaciones de seguridad
Centrado en la actualización fluida a las versiones recientes de los paquetes de los archivos testing
Admite una amplia gama de arquitecturas de hardware
El Software Libre de Debian tiene su origen en GNU, Linux, BSD, X, ISC, Apache, Ghostscript, Sistema de Impresión
Común de Unix (Common Unix Printing System) , Samba, GNOME, KDE, Mozilla, LibreOffice, Vim, TeX, LaTeX, DocBook, Perl, Python, Tcl, Java, Ruby, PHP, Berkeley DB, MariaDB, PostgreSQL, SQLite, Exim, Postfix, Mutt, FreeBSD, OpenBSD, Plan 9 y otros m deuchos proyectos libres e independientes. Debian integra esta diversidad de
Software Libre en un único sistema.
Page 24
Guía de referencia de Debian xxiii
Sobre este documento
Directrices
En la elaboración de este documento se han seguido las siguientes normas orientativas.
Proporciona un visión global y omite los casos menos frecuentes (Visión General)
simplicidad y brevedad (KISS)
No se reinventa la rueda (se usan enlaces a fuentes ya existentes)
centrado en la consola y herramientas sin interfaz gráfico de usuario. ( Usaejemplos del intérprete de órdenes)
Es objetivo. (Usa popcon etc.)
sugerencia
Trataré de mostrar las facetas jerárquicas y de bajo nivel del sistema.
Prerrequisitos
aviso
Más allá de este documento, has de ser capaz de conseguir las respuestas por ti mismo. Este documento solo es un punto de partida.
Debes buscar la solución por ti mismo a partir de las fuentes primarias.
El sitio web de Debian https://www.debian.org para la información general,
Documentación en el directorio «/usr/share/docnombre_del_paquete»,
Las páginas de manual al estilo de Unix: «dpkg -Lnombre_del_paquete|grep '/man/man.*/'»,
Las páginas de información (info page) al estilo GNU: «dpkg -L nombre_de_paquete |grep '/info/'»,
El informe de errores: https://bugs.debian.org/nombre_del_paquete,
La wiki de Debian https://wiki.debian.org/ para profundizar y aprender sobre temas concretos,
La especificación UNIX única de The UNIX System Home Page del Open Group
La enciclopedia libre Wikipedia en https://www.wikipedia.org/
El manual del administrador de Debian,
Los COMOs de El Proyecto de Documentación de Linux (TLDP)
nota
Para obtener documentación detallada de un paquete, necesitará instalar el paquete correspondiente, cuyo nombre es el nombre del paquete con el sufijo «-doc».
Page 25
Guía de referencia de Debian xxiv
Convenciones
Este documento proporciona información con un estilo de presentación simple con ejemplos del intérprete de órde­nesbash(1).
# command-in-root-account $ command-in-user-account
Estos cursores del intérprete de órdenes diferencian el tipo de cuenta que tiene asociada un conjunto de variables de entorno como: «PS1='\$'» y «PS2=' '». Se han seleccionado estos valores para mejorar la claridad del documento y no tienen por qué ajustarse a los de un sistema real en funcionamiento.
Todos los ejemplos de comandos se ejecutan en la configuración regional en inglés ”LANG=en_US.UTF8”. No espere cadenas de marcador de posición como command-in-root-account y command-in-user-account para tra­ducirse en ejemplos de comandos. Esta es una elección intencionada para mantener actualizados todos los ejemplos traducidos.
nota
Consulte el significado de las variables de entorno «$PS1» y «$PS2» en bash(1).
Cuando sea necesario ejecutar una acción requerida por parte del administrador del sistema se utilizará una oración imperativa, p. ej. «Pulse la tecla Intro después de escribir cada orden en el intérprete de órdenes.»
La descripción de una columna y similares en una tabla puede contener un sintagma nominal seguido de las reglas
de la descripción corta de los paquetes que eliminan los artículos como «un» y «la». También pueden contener una
oración en infinitivo como un sintagma nominal seguido de la descripción corta de la orden según la reglas de las páginas de manual. Esto puede parecer que no tiene sentido, pero son reglas elegidas para mantener el estilo tan simple como es posible. Los sintagmas nominales no se inician en mayúsculas y no finalizan con un punto según las reglas de descripciones cortas.
nota
Los nombres propios, incluidas las órdenes, mantienen las mayúsculas y las minúsculas independientemente de su lugar.
La cita de un fragmento de una orden en un párrafo aparecerá con otro tipo de letra entre comillas dobles como «aptitude safe-upgrade».
El contenido de un archivo de configuración en formato texto citado en un párrafo aparecerá con otro tipo de letra entre comillas dobles, como «deb-src».
Una orden se cita por su nombre en otro tipo de letra, seguida opcionalmente por el número de la sección de las páginas manual a la que pertenece entre paréntesis, como bash(1). Se recomienda escribir lo siguiente para obtener más información sobre dicha orden.
$ man 1 bash
Una página de manual se cita por su nombre en otro tipo de letra seguido del número de la sección de la página de manual a la que pertenece entre paréntesis, como sources.list(5). Se recomienda escribir lo siguiente para obtener más información sobre dicha página de manual.
$ man 5 sources.list
Una página de información se cita con su orden en otro tipo de letra entre comillas dobles como, «info make». Es recomendable ejecutar lo siguiente para obtener más información sobre dicha página de información.
$ info make
Page 26
Guía de referencia de Debian xxv
Un nombre de archivo es referido por la fuente de la máquina de escribir entre comillas dobles, como ”/etc/passwd”. Para los archivos de configuración, se recomienda obtener información escribiendo lo siguiente.
$ sensible-pager "/etc/passwd"
Un nombre de directorio es referido por la fuente de máquina de escribir entre comillas dobles, como ”/etc/apt/”. Animamos a explorar su contenido escribiendo lo siguiente.
$ mc "/etc/apt/"
El nombre de un paquete se cita por su nombre con un tipo de letra diferente, como vim. Animo a obtener más información sobre el paquete escribiendo lo siguiente.
$ dpkg -L vim $ apt-cache show vim $ aptitude show vim
Una documentación puede indicar su ubicación mediante el nombre de archivo en la fuente de máquina de escribir entre comillas dobles, como ”/usr/share/doc/base-passwd/usuarios-y-grupos. txt.gz” y ”/usr/share/doc/base-passwd/users-and-groups.html”; o por su URL, como https://www.debian.org. Le animamos a leer la documentación escribiendo lo siguiente.
$ zcat "/usr/share/doc/base-passwd/users-and-groups.txt.gz" | sensible-pager $ sensible-browser "/usr/share/doc/base-passwd/users-and-groups.html" $ sensible-browser "https://www.debian.org"
Una variable de entorno se cita con su nombre en otro tipo de letra precedido de «$» y entre comillas dobles como «$TERM». Descubra el valor de dicha variable escribiendo lo que se muestra.
$ echo "$TERM"
Estadísticas de uso (popcon)
Los datos de popcon se presentan como la medida objetiva de la popularidad de cada paquete. Se descargó el 2024­03-03 11:51:37 UTC y contiene el envío total de 237734 informes sobre 198687 paquetes binarios y arquitecturas 27 .
nota
Tener en cuenta que el archivo amd64 inestable contiene solo 74165 paquetes actuales. Los datos de popcon contienen informes de muchas instalaciones de sistemas antiguos.
En las estadísticas de uso, un número precedido de «V» es el número de «votos» que se calcula mediante la fórmula «1000 * (número de paquetes utilizados recientemente en el equipo)/(total de informes de uso remitidos)».
En las estadística de uso, un número precedido de «I» se refiere al «número de instalaciones» calculado por «1000 * (número de instalaciones del paquete)/(el total de informes de uso)».
nota
Las estadísticas de uso no determina la importancia de los paquetes. Existen muchos factores que puede afec­tar a las estadísticas. Por ejemplo, algunos sistemas que participan en estas, pueden tener directorios como «/usr/bin/» con la opción «noatime» para mejorar el desempeño del sistema desactivando su sistema de «voto».
Page 27
Guía de referencia de Debian xxvi
El tamaño del paquete
El tamaño que tenga un paquete es una medida objetiva. Se obtiene del valor de «Tamaño sin comprimir:» que devuelve la orden apt-cache show» o «aptitude show» (en la arquitectura amd64 de la distribución «inestable»). El tamaño informado es en KiB (Kibibyte = equivalente a 1024 bytes).
nota
Un paquete con un tamaño pequeño puede indicar que en la distribución «inestable» es un paquete «ficticio» que instala otro con contenido real según sus dependencias. Un paquete «ficticio» permite transiciones fluidas o la división de un paquete en varios.
nota
Cuando al tamaño del paquete le sigue «(*)» significa que no está disponible en la distribución «inestable» y que el valor que aparece es el tamaño en la distribución «experimental».
Informes de errores en este documento
Puede informar de un error en el paquete debian-reference utilizando reportbug(1). Por favor, incluya la co­rrección ejecutando «diff -u» con el texto plano o la fuente.
Consejos para usuarios noveles
Aquí hay algunos consejos para usuarios noveles:
haga copias de seguridad de sus datos
• Consulte Sección10.2.
proteja su contraseña y claves de seguridad
KISS (’keep it simple stupid’, mantenlo sencillo estúpido)
• no complique su sistema
lea sus archivos de registro
• el PRIMER error es el que cuenta
RTFM (’read the fine manual’, lea el manual)
busque en Internet antes de preguntar
no use la cuenta del superusuario cuando no es necesario
no modifique el sistema de gestión de paquetes
no escriba nada que no entienda
no cambie los permisos de los archivos (si no conoce su impacto en la seguridad)
no cierre su terminal de superusuario hasta que PRUEBE sus cambios
tener a mano un medio alternativo de arranque (dispositivo de memoria USB, CD…)
Page 28
Guía de referencia de Debian xxvii
Algunos comentarios para usuarios noveles
He aquí algunas citas interesantes de la lista de correo de Debian que pueden servir de ayuda a los nuevos usuarios.
«Así es Unix. Te da bastante cuerda para que te ahorques tu mismo.» --- Miquel van Smoorenburg <miquels at
cistron.nl>
«Unix ES muy amigable ... únicamente que es muy puntilloso eligiendo a sus amigos.» --- Tollef Fog Heen <tollef at add.no>
El artículo de Wikipedia «la filosofía de Unix» contiene citas muy interesantes.
Page 29
Guía de referencia de Debian 1 / 267
Capítulo 1

Tutoriales de GNU/Linux

Aprender a usar un sistema informático es como aprender un idioma nuevo. Aunque los libros de ayuda y la do­cumentación son útiles, uno debe practicarlo. Para ayudarle a comenzar sin tropiezos, he escrito algunos puntos básicos.
La calidad del diseño de Debian GNU/Linux tiene su origen en el sistema operativo Unix, un sistema operativo
multiusuario y multitarea. Debe aprender a aprovechar el poder de estas características y las similitudes entre Unix
y GNU/Linux.
No utilice únicamente documentos de GNU/Linux y utilice también documentos de Unix , ya que esto le permitirá acceder a mucha información útil.
nota
Si tiene experiencia con las herramientas de la línea de órdenes de algún sistema tipo Unix probablemente ya conozca lo que se explica en este documento. Utilice este documento para refrescar sus conocimientos.

1.1. Introducción a la consola

1.1.1. El cursor del intérprete de órdenes

Al iniciar el sistema, aparecerá la pantalla de inicio de sesión basada en caracteres si no instaló ningún entorno GUI de sistema de escritorio como GNOME o KDE. Supongamos que su nombre de host es foo, el indicador de inicio de sesión tiene el siguiente aspecto.
A pesar de tener instalado un entorno gráfico de usuario, puede acceder al indicador de inicio de sesión basado en caracteres mediante Ctrl-Alt-F3, y puede regresar al entorno GUI mediante Ctrl-Alt-F2 (consulte Sección1.1.6 para más información).
foo login:
En el diálogo de entrada escriba su nombre de usuario, p. ej. pingüino y pulse la tecla Intro, a continuación escriba su contraseña y pulse Intro otra vez.
nota
Siguiendo la tradición Unix, el nombre de usuario y la contraseña del sistema Debian distinguen entre mayúsculas y minúsculas. El nombre de usuario se suele elegir sólo entre minúsculas. La primera cuenta de usuario se crea normalmente durante la instalación. El usuario root puede crear cuentas de usuario adicionales con adduser(8).
Page 30
Guía de referencia de Debian 2 / 267
El sistema empieza mostrando el mensaje de bienvenida almacenado en «/etc/motd» (Mensaje del día) y muestra un cursor para realizar la petición de órdenes.
Debian GNU/Linux 12 foo tty3
foo login: penguin Password:
Linux foo 6.5.0-0.deb12.4-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.5.10-1~bpo12+1 (2023-11-23) ←-
x86_64
The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.
Last login: Wed Dec 20 09:39:00 JST 2023 on tty3 foo:~$
Ahora nos encontramos en el intérprete de órdenes (shell). El intérprete de órdenes interpreta las órdenes del usuario.

1.1.2. El indicador del intérprete de órdenes en GUI

Si ha instalado un entorno GUI durante la instalación, se mostrará una pantalla gráfica de inicio de sesión al iniciar el sistema. Escribe el nombre de usuario y la contraseña para iniciar sesión en la cuenta de usuario sin privilegios. Use la pestaña para navegar entre el nombre de usuario y la contraseña, o use el clic principal del ratón.
Puede obtener un cursor del intérprete de órdenes en un entorno gráfico abriendo un programa x-terminal-emulator como gnome-terminal(1), rxvt(1) o xterm(1). Si usa el entorno de escritorio Gnome para abrir un intérprete de órdenes debe hacer clic en «Aplicaciones« → «Accesorios« → «Terminal«.
En algunos entornos de escritorio (como fluxbox), no existe un punto de acceso al menú tal cual. Si se encuentra en este caso, simplemente pruebe a hacer clic con el (botón derecho del ratón) sobre el fondo de escritorio y surgirá un menú.
1.1.3. La cuenta de superusuario (root)
La cuenta root también se denomina superusuario o usuario privilegiado. Desde esta cuenta, puede realizar las siguientes tareas de administración del sistema.
leer, escribir y borrar cualquier archivo del sistema independientemente de los permisos de dicho archivo
Cambiar la propiedad y los permisos de cualquier archivo del sistema
Cambiar la contraseña de cualquier usuario no privilegiado del sistema
entrar en la cuenta de cualquier usuario sin usar su contraseña
El poder ilimitado de la cuenta de superusuario necesita de un uso basado en la consideración y la responsabilidad.
aviso
Nunca comparta la contraseña del superusuario con nadie.
Page 31
Guía de referencia de Debian 3 / 267
nota
Los permisos de acceso a un archivo (incluidos los dispositivos como un CD-ROM u otros, que son simplemente otro archivo para el sistema Debian) pueden hacer que sea inaccesible a los usuarios distintos del superusuario. Aunque el uso de la cuenta de superusuario es una manera rápida de comprobar este tipo de situaciones, resol­verlas es algo que debe hacerse estableciendo adecuadamente los permisos del archivo y la relación de usuarios que pertenece a cada grupo (véase Sección1.2.3).

1.1.4. El cursor del intérprete de órdenes de superusuario

A continuación podrá ver algunos métodos para acceder al intérprete de órdenes del superusuario utilizando la contraseña del mismo.
Escriba root en la pantalla de inicio de sesión en modo texto.
Escriba «su -l» desde cualquier intérprete de órdenes.
• Esto no conserva el entorno del usuario actual.
Escriba «su» en cualquier intérprete de órdenes.
• esto conserva parte del entorno del usuario actual.

1.1.5. Herramientas gráficas para la administración del sistema

Si el menú de su escritorio no inicia las herramientas gráficas de administración del sistema con los permisos adecua­dos automáticamente, puede iniciarlas desde el intérprete de órdenes del superusuario en un emulador de terminal de X como gnome-terminal(1), rxvt(1), o xterm(1). Ver Sección1.1.4 y Sección7.9.
aviso
Nunca inicies un administrador de pantalla/sesión de GUI como root escribiendo root en el indicador de un administrador de pantalla (por ejemplo, gdm3(1)). Nunca ejecute programas gráficos remotos no confiables en el sistema de ventanas X cuando se esté mostrando información crítica, porque dichos programas pueden realizar una interceptación pasiva de toda su pantalla X.

1.1.6. Consolas virtuales

En el sistema Debian que se instala por defecto hay seis consolas tipo VT100 intercambiables, disponibles para iniciar un intérprete de órdenes directamente en el equipo Linux. A menos que se encuentre en un entorno gráfico, podrá cambiar entre ellas presionando simultáneamente la tecla Alt situado en la izquierda y una de las teclas F1 F6. Cada consola en modo texto permite acceder independientemente a la cuenta y acceder a un entorno multiusuario. Este entorno multiusuario es una gran característica de Unix y es muy adictivo.
Si estás en un entorno GUI, puedes ir a la consola de caracteres 3 con la tecla Ctrl-Alt-F3, es decir, presione Left Ctrl y Left Alt al mismo tiempo tecla y tecla F3. Puede presionar Alt-F2 para volver al entorno de GUI, que generalmente se ejecuta en la consola virtual 2.
También puede cambiar a otra consola virtual, p. ej. a la consola 3, desde el intérprete de órdenes.
# chvt 3
Page 32
Guía de referencia de Debian 4 / 267

1.1.7. Cómo cerrar el intérprete de órdenes

Pulsando Ctrl-D, es decir, la tecla Ctrl de la izquierda y la tecla d simultáneamente en el intérprete de órdenes, se cerrará. Si se encuentra en una consola de modo texto, volverá a ver la pantalla de inicio de sesión. Aunque es normal referirse a estos caracteres de control como «control D» en mayúscula, no es necesario pulsar la tecla de mayúsculas. La abreviatura ^D también es muy utilizada para Ctrl-D. Otra forma de cerrar el intérprete de órdenes es escribiendo «exit».
Si está en x-terminal-emulator (1), puede cerrar la ventana x-terminal-emulator con esto.

1.1.8. Cómo apagar el sistema

Al igual que cualquier otro sistema operativo moderno en el que la operación con ficheros implica almacenamiento de
datos en memoria para mejorar el rendimiento, el sistema Debian necesita el procedimiento de apagado adecuado
antes de poder apagarse de forma segura. Esto es para mantener la integridad de los ficheros, forzando que todos los cambios en memoria se escriban en el disco. Si el software de control de energía está disponible, el procedimiento de apagado apaga automáticamente el sistema. (De lo contrario, es posible que tenga que pulsar el botón de encendido durante unos segundos después del procedimiento de apagado)
Puedes apagar el sistema en modo multiusuario normal desde la línea de comandos.
# shutdown -h now
Puede apagar el sistema en el modo monousuario desde el intérprete de órdenes como se muestra.
# poweroff -i -f
Ver Sección6.3.8.

1.1.9. Cómo recuperar la configuración normal de una consola

Cuando la pantalla se vuelve loca tras hacer alguna cosa divertida como «cat un-archivo-binario», escriba «reset» en el intérprete de órdenes. Puede que no sea posible ver la orden en la pantalla mientras la teclea. Además, puede escribir «clear» para limpiar la pantalla.

1.1.10. Paquetes complementarios recomendados para usuarios sin experiencia

Una instalación mínima del sistema Debian sin ningún entorno de escritorio proporciona la funcionalidad básica de Unix, sin embargo es una buena idea instalar algunos paquetes de terminal de caracteres adicionales basados en curses o en modo texto como mc y vim mediante la orden apt-get(8) para que los nuevos usuarios empiecen a tener experiencia con lo siguiente.
# apt-get update
...
# apt-get install mc vim sudo aptitude
...
Si los paquetes antes mencionados están instalados con anterioridad, no se instalará ningún paquete nuevo.
Puede ser una buena idea que usted leyera algo de documentación útil.
Puedes instalar algunos de estos paquetes de la siguiente manera.
# apt-get install package_name
Page 33
Guía de referencia de Debian 5 / 267
paquete popularidad tamaño descripción
mc V:50, I:209 1542 Un gestor de archivos en modo texto a pantalla completa
Un programa para proporcionar algunos privilegios de
sudo V:688, I:841 6550
vim V:95, I:369 3743
vim-tiny V:58, I:975 1722
emacs-nox V:4, I:16 39647
w3m V:15, I:187 2837 Navegadores web en modo texto gpm V:10, I:12 521 Copiar y pegar, al estilo Unix, en la consola de texto (demonio)
Cuadro 1.1: Relación de paquetes con programas interesantes en modo texto
paquete popularidad tamaño descripción
doc-debian I:867 187
debian-policy I:14 4659 Manual de la Directrices Debian y documentos asociados developers-reference
V:0, I:5 2601 Directrices e información para desarrolladores de Debian
superusuario a los usuarios de acuerdo a la configuración establecida Editor de texto Unix Vi IMproved (Vi Mejorado), un editor de texto para programadores (versión estándar) Editor de texto Unix Vi IMproved (Vi Mejorado), un editor de texto para programadores (versión compacta) El proyecto GNU Emacs, un editor de texto ampliable basado en Lisp
Documentación del Proyecto Debian, Preguntas Frecuentes (FAQ) y otros documentos
debmake-doc I:0 11701 Guía para Mantenedores de Debian debian-history I:0 4692 Historia del Proyecto Debian debian-faq I:865 790 Preguntas frecuentes (FAQ) sobre Debian
Cuadro 1.2: Relación de paquetes con documentación útil

1.1.11. Una cuenta de usuario adicional

Si no quiere utilizar su cuenta de usuario aprende y práctica, puede crear una cuenta de usuario, p. ej. pescado, para ello haga lo siguiente.
# adduser fish
Conteste a todas las preguntas. Con ello se creará una nueva cuenta llamada pescado. Cuando termine de practicar, puede borrar esta cuenta y su
directorio de usuario como se muestra.
# deluser --remove-home fish
En sistemas Debian especializados y no Debian, las actividades anteriores deben utilizar niveles inferiores useradd (8) y userdel (8) utilidades, en su lugar.

1.1.12. Configuración de sudo

Para una estación de trabajo típica de un único usuario o un escritorio Debian en un portátil, es normal realizar una configuración sencilla de sudo(8) como se indica a continuación para permitir al usuario no privilegiado, p. ej. pinguino, obtener los privilegios administrativos simplemente con su contraseña de usuario sin utilizar la contraseña del superusuario.
# echo "penguin ALL=(ALL) ALL" >> /etc/sudoers
También es normal hacerlo de la siguiente manera para permitir al usuario no privilegiado, p. ej. pinguino, ganar los privilegios administrativos sin usar ninguna contraseña como se muestra.
Page 34
Guía de referencia de Debian 6 / 267
# echo "penguin ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
Este truco solamente se debe usar en una estación de trabajo con un único usuario en la que usted sea el adminis­trador y usuario único.
aviso
No establezca de esta manera privilegios para cuentas de usuarios no privilegiados en una estación de trabajo multiusuario porque es perjudicial para la seguridad del sistema.
atención
La contraseña de la cuenta pinguino, en los ejemplos de arriba, requiere tanta protección como la con­traseña del superusuario. Los privilegios administrativos pertenecen a alguien autorizado a realizar tareas de administración del siste­ma en la estación de trabajo. Nunca le de a un administrador del departamento de Sistemas de su compañía ni a su jefe tales privilegios a menos que estén autorizados y sean capaces.
nota
Para proporcionar privilegios de acceso a determinados dispositivos y determinados archivos debería considerar usar grupos para proporcionar acceso limitado en lugar de utilizar los privilegios de superusuario vía sudo(8). Con una configuración mejor pensada y cuidadosa, sudo(8) puede proporcionar privilegios administrativos limita­dos a otros usuarios en un sistema compartido sin compartir la contraseña de superusuario. Esto puede ayudar en el mantenimiento de un equipo con múltiples administradores de manera que usted pueda saber quién hizo qué. Por otra parte, puede preferir que nadie más tenga tales privilegios.

1.1.13. Hora de jugar

Ahora está listo para jugar con el sistema Debian sin riesgos siempre que utilice la cuenta de usuario sin privilegios. Esto se debe a que el sistema Debian está, incluso en una instalación por defecto, configurado con los permisos de
archivos adecuados que impide que los usuarios no privilegiados dañen el sistema. Por supuesto, puede haber aún algunos agujeros que se pudieran explotar, pero aquellos a quienes interesen esos detalles, que no trataremos aquí, pueden obtener la información precisa en Manual de seguridad de Debian.
Aprendemos el sistema Debian como un sistema Unix-like con lo siguiente.
Sección1.2 (conceptos básicos),
Sección1.3 (método de supervivencia),
Sección1.4 (método básico),
Sección1.5 (mecanismos del intérprete de órdenes (shell)),
Sección1.6 (método de procesado de texto)

1.2. Sistema de archivos tipo Unix

En GNU/Linux y otros sistemas operativos tipo Unix, los archivos se organizan en directorios. Todos los archivos y directorios están ordenados en un gran árbol que tiene como raíz «/». Se le llama árbol porque si se dibuja el sistema de archivos, parece un árbol pero cabeza abajo.
Page 35
Guía de referencia de Debian 7 / 267
Estos archivos y directorios pueden distribuirse entre varios dispositivos. mount(8) se utiliza para añadir el sistema de archivos que se encuentra en un dispositivo al gran árbol de archivos. Inversamente, umount(8) lo desconecta del gran árbol de archivos. En los núcleos más recientes de Linux, mount(8), con determinadas opciones, puede unir parte de un sistema de ficheros en otro sitio del árbol o puede montar un sistema de archivos como comparti­do, privado, esclavo o no enlazable. Las opciones soportadas para cada sistema de ficheros están disponibles en «/usr/share/doc/linux-doc-*/Documentation/filesystems/».
Los directorios de los sistemas Unix se llaman carpetas en otros sistemas. Por favor, note que no existe el concepto de unidad como «A:» en ningún sistema Unix. Solamente hay un sistema de archivos y todo se encuentra en él. Esto es una gran ventaja en comparación con Windows.

1.2.1. Información básica sobre archivos en Unix

Estos son algunos conceptos básicos de los archivos Unix.
Los nombres de archivos son sensibles a mayúsculas. Es decir, «MIARCHIVO» y «MiArchivo» son archivos diferentes.
El directorio raíz significa la raíz del sistema de archivos representado simplemente por «/». No lo confunda con el directorio del superusuario: «/root».
Cada directorio tiene un nombre que puede contener cualquier letra o símbolo excepto «/». El directorio raíz es una excepción: su nombre es «/» (pronunciado «barra« o «el directorio raíz«) y no se puede renombrar.
Cada archivo o directorio se identifi con un nombre completamente cualificado, nombre absoluto, o ruta), dando la secuencia de directorios que deben atravesarse para alcanzarlo. Los tres términos son sinónimos.
Todos los nombres completamente cualificados comienzan con el directorio «/», y se coloca una «/» entre ca­da dos nombres de directorio o archivo en el nombre de fichero completo. La primera «/» es el directorio de más alto nivel (la raíz) y las demás «/» separan subdirectorios sucesivos hasta que alcanzamos la última entrada, que es el nombre real del archivo en cuestión. Las palabras pueden ser confusas. Elijamos el siguiente nombre com- pletamente cualificado como un ejemplo: «/usr/share/keytables/es.map.gz». Es de uso generalizado el referirse a la última entrada «es.map.gz» como un nombre de archivo.
El directorio raíz tiene un cierto número de ramificaciones, como «/etc/» y «/usr/». Estos subdirectorios a su vez se ramifican en más subdirectorios, como «/etc/systemd/» y «/usr/local/». El todo, visto colectivamente, se llama árbol de directorios. Puede pensar que un nombre de archivo absoluto es una ruta desde la raíz del árbol («/») hasta la hoja de una rama (un archivo). También oirá hablar del árbol de directorios como de un árbol genealógico que descienden de un elemento único llamado raíz («/»: así, los subdirectorios tienen padres y una ruta muestra la genealogía completa de un archivo. Hay, además, rutas relativas que comienzan de alguna otra manera que con el directorio raíz. Debe recordar que el directorio «../» hace referencia al directorio padre. Esta terminología se utiliza también para otras estructuras semejantes a los directorios, como las estructuras jerárquicas de datos.
No existen directorios, que forman parte de las rutas que describen archivos, que se correspondan con dispositivos físicos, como discos duros. Esto cambia respecto a RT-11, CP/M, OpenVMS, MS-DOS, AmigaOS y Microsoft
Windows, donde la ruta contiene el nombre del dispositivo, como «C:\». Sin embargo, existen directorios que
referencian dispositivos físicos como parte del sistema de archivos. Ver Sección1.2.2)
nota
Es posible usar casi cualquier letra o símbolo en el nombre de un archivo, pero es una mala idea. Es preferible evitar el uso de cualquier carácter que tenga un significado especial en la línea de órdenes, incluido espacios, ta­bulaciones, saltos de línea y otros caracteres especiales: { } ( ) [ ] '  " \ / > < | ; ! # & ^ * % @ $. Si quiere separar palabras en un nombre, son buenas elecciones el punto, el guión y el guión bajo. Además puede empezar cada palabra con mayúscula, «ComoEsto». Los usuarios con experiencia suelen evitar los espa­cios en los nombres de archivo.
Page 36
Guía de referencia de Debian 8 / 267
nota
La palabra «root» puede referirse a «superusuario» o «directorio raíz». El contexto determinará su significado correcto.
nota
El término path se utiliza tanto para los nombres de archivos que especifican la ruta completa, como hemos hecho con anterioridad, como en la ruta para la búsqueda de órdenes. El significado correcto vendrá determinado por el contexto.
Las mejores prácticas detalladas para la jerarquía de ficheros se describen en el Filesystem Hierarchy Standard (”/usr/share/doc/debian-policy/fhs/fhs-2.3.txt.gz” y hier(7)). Como comienzo debes recordar los siguientes hechos.
directorio uso del directorio
/ directorio raíz /etc/ archivos principales para la configuración del sistema /var/log/ archivos de registro del sistema /home/ todos los directorios personales de usuario sin privilegios
Cuadro 1.3: Relación de directorios clave y su uso

1.2.2. Sistemas de archivos internos

Siguiendo la tradición de Unix, el sistema Debian GNU/Linux ofrece el sistemas de archivos «/dev/» que representa de manera unificada el almacenamiento físico en discos duros u otros dispositivos de almacenamiento y la interacción con los dispositivos hardware como las consolas en modo texto o las consolas en serie remotas.
Cada archivo, directorio, tubería con nombre (sirve para compartir datos entre dos programas) o dispositivo físico tiene en el sistema Debian GNU/Linux una estructura con metainformación llamada inodo que describe sus propiedades como quién es su dueño (owner), el grupo al que pertenece, la fecha de último acceso, etc. La idea de incluir todo en el sistema de archivos fue una innovación de Unix y las versiones modernas de los núcleos de Linux la han llevado más allá. Hoy en día puede encontrar en el sistema de archivos incluso información de procesos en ejecución.
La representación unificada y abstracta tanto de entidades físicas como de procesos internos es sumamente útil ya que permite el uso de la misma orden para el mismo tipo de operación en dispositivos totalmente diferentes. Incluso es posible cambiar la forma de trabajar del núcleo escribiendo datos en archivos especiales que están enlazándolos a procesos en ejecución.
sugerencia
Si necesita determinar la correspondencia entre un árbol de archivos y un elemento físico, ejecute mount(8) sin parámetros.

1.2.3. Permisos del sistema de archivos

Permisos del sistema de archivos de Unix-like se definen para tres categorías de usuarios afectados.
El usuario que es dueño del archivo (u)
Los usuarios que pertenecen al mismo grupo al que pertenece el archivo (h)
Todos los usuarios de other (o) también se refieren a ”mundo” y ”todo el mundo”
Page 37
Guía de referencia de Debian 9 / 267
Para el fichero, cada permiso correspondiente permite las siguientes acciones.
El permiso de lectura (r) permite al dueño examinar el contenido del archivo.
El permiso de escritura (w) permite al dueño modificar el archivo.
el permiso de ejecución (x) permite al dueño ejecutar el archivo como una orden.
Para el directorio, cada permiso correspondiente permite las siguientes acciones.
El permiso de lectura (r) permite al propietario listar el contenido del directorio.
El permiso de escritura (w) permite al propietario añadir o eliminar archivos en el directorio.
el permiso de ejecución (x) permite al dueño acceder a los archivos del directorio.
El permiso de ejecución de un directorio no solo indican que se puede leer los archivos que contiene, sí no también permite ver sus atributos, como el tamaño y la fecha de modificación.
ls(1) se utiliza para mostrar información de permisos (y más) para archivos y directorios. Cuando se invoca con la opción ”-l”, muestra la siguiente información en el orden indicado.
tipo de fichero (primer carácter),
permisos del archivo (nueve caracteres, tres para el usuario, tres para el grupo y los tres últimos para el resto, en
este orden),
número de enlaces duros al archivo,
nombre del usuario que es dueño del archivo,
nombre del grupo al que pertenece,
tamaño del archivo expresado en caracteres (bytes),
fecha y hora del archivo (mtime),
nombre del archivo
carácter significado
- archivo normal d directorio l enlace simbólico c nodo de dispositivo orientado a caracteres b nodo de dispositivo orientado a bloques p tubería con nombre s socket
Cuadro 1.4: La interpretación del primer carácter de cada línea de la salida de «ls -l» se interpreta como se muestra
Para cambiar el dueño de un archivo, el superusuario utiliza la orden chown(1). Para alterar el grupo de un archivo, su dueño utiliza la orden chgrp(1). Para modificar los permisos del acceso al archivo o directorio, su dueño o el superusuario utilizan la orden chmod(1). La sintaxis para operar sobre un archivo foo es la que se muestra.
# chown newowner foo # chgrp newgroup foo # chmod [ugoa][+-=][rwxXst][,...] foo
Por ejemplo, se puede asignar a un árbol de directorios como dueño al usuario foo y como grupo bar como se muestra.
Page 38
Guía de referencia de Debian 10 / 267
# cd /some/location/ # chown -R foo:bar . # chmod -R ug+rwX,o=rX .
Existen tres bits adicionales de permisos especiales.
El bit set user ID (s o S en lugar del permiso del dueño x)
El bit set group ID (s o S en lugar del permiso del grupo x)
El bit sticky (t o T en vez del permiso de todos x)
Aquí, la salida de ” ls -l ” para estos bits está en mayúscula si los bits de ejecución ocultos por estas salidas están sin configurar
La configuración de set user ID en un archivo ejecutable permite a un usuario ejecutarlo con todos los privilegios de su dueño (al ejecutarlo con el identificador del dueño, por ejemplo root). Igualmente la configuración set group ID en un archivo ejecutable permite al usuario ejecutarlo con todos los privilegios de su grupo (al ejecutarlo con el identificador del grupo, por ejemplo root). Esto crea riesgos de seguridad, por lo que su configuración debe ser extremadamente cuidadosa.
La configuración del bit set group ID en un directorio permite la creación de archivosal estilo BSD, donde todos los archivos creados en el directorio pertenecen al mismo grupo que el directorio.
Activar el sticky bit en un directorio impide que sus archivos sean eliminados por alguien que no es su dueño. En los directorios con permisos de escritura para todos, como «/tmp», o para su grupo, con el fin de asegurar la integridad de los archivos, se debe eliminar los permisos de escritura de los archivos. Además se debe configurar el sticky bit en el directorio para evitar que cualquier usuario con permiso de escritura en él pueda borrar un archivo y después crear otro con el mismo nombre.
Aquí están algunos ejemplos interesantes.
$ ls -l /etc/passwd /etc/shadow /dev/ppp /usr/sbin/exim4 crw------T 1 root root 108, 0 Oct 16 20:57 /dev/ppp
-rw-r--r-- 1 root root 2761 Aug 30 10:38 /etc/passwd
-rw-r----- 1 root shadow 1695 Aug 30 10:38 /etc/shadow
-rwsr-xr-x 1 root root 973824 Sep 23 20:04 /usr/sbin/exim4 $ ls -ld /tmp /var/tmp /usr/local /var/mail /usr/src drwxrwxrwt 14 root root 20480 Oct 16 21:25 /tmp drwxrwsr-x 10 root staff 4096 Sep 29 22:50 /usr/local drwxr-xr-x 10 root root 4096 Oct 11 00:28 /usr/src drwxrwsr-x 2 root mail 4096 Oct 15 21:40 /var/mail drwxrwxrwt 3 root root 4096 Oct 16 21:20 /var/tmp
La orden chmod(1) tiene otra forma de describir los permisos mediante números. Este modo numérico utiliza 3 o 4 dígitos en base octal (base 8).
dígito significado
1º dígito (opcional) suma de set user ID (=4), set group ID (=2) y sticky bit (=1) 2º dígito suma de los permisos de lectura (=4), escritura (=2) y ejecución (=1) para usuario 3º dígito idem para el grupo 4º dígito idem para todos
Cuadro 1.5: El modo numérico en chmod(1) es como se muestra
Parece más complicado de lo que realmente es. Si se fija en las primeras columnas (de la 2 a la 10) de la salida de la orden «ls -l» y lee en binario (base 2) la representación de los permisos del archivo («-» siendo «0» y cualquiera de «rwx» un «1»), la conversión a octal (base 8) representarían los permisos del archivo.
Por ejemplo, intente lo siguiente
Page 39
Guía de referencia de Debian 11 / 267
$ touch foo bar $ chmod u=rw,go=r foo $ chmod 644 bar $ ls -l foo bar
-rw-r--r-- 1 penguin penguin 0 Oct 16 21:39 bar
-rw-r--r-- 1 penguin penguin 0 Oct 16 21:35 foo
sugerencia
Si necesita acceder a información de salida de la orden «ls -l» en un archivo de órdenes, es mejor utilizar las órdenes como test(1), stat(1) y readlink(1). La funcionalidad interna del intérprete de órdenes como«[» o «test» también puede ser utilizada.

1.2.4. Gestión de permisos para nuevos archivos: umask

Los permisos que se asignan por defecto a los nuevos archivos y directorios cuando estos se crean están definidos por la orden interna del intérprete de órdenes umask. Consulte dash(1), bash(1) y builtins(7).
(file permissions) = (requested file permissions) & ~(umask value)
umask
permisos creados para un archivo
permisos creados para un directorio
uso
0022 -rw-r--r-- -rwxr-xr-x modificable solo por el usuario 0002 -rw-rw-r-- -rwxrwxr-x modificable por el grupo
Cuadro 1.6: Ejemplos de valores de umask
El sistema Debian utiliza por defecto un esquema de grupos privados de usuarios (UPG). Un grupo privado de usuario se crea cuando sea añade un nuevo usuario al sistema. El UPG tiene el mismo nombre que el usuario para el cual fue creado y ese usuario es el único miembro de ese grupo. En el esquema UPG es seguro asignar a la máscara (umask) el valor 0002 ya que cada usuario tiene un grupo privado propio. (En algunas variantes de Unix, es común que todos los usuarios no privilegiados pertenezcan al mismo grupo users siendo buena idea asignar el valor 0022 a la máscara por motivos de seguridad.)
sugerencia
Active UPG añadiendo «umask 002» en el archivo ~/.bashrc.

1.2.5. Permisos para grupos de usuarios (grupo)

aviso
Por favor, asegúrese de guardar los cambios no guardados antes de realizar reinicios o acciones similares.
Puedes añadir un usuario penguin a un grupo bird en dos pasos:
Cambie la configuración del grupo utilizando una de las siguientes opciones:
• Ejecute ”sudo usermod -aG bird penguin”.
Page 40
Guía de referencia de Debian 12 / 267
• Ejecute ”sudo adduser penguin bird” (sólo en sistemas Debían típicos)
• Ejecute ”sudo vigr” para /etc/group y ”sudo vigr -s” para /etc/gshadow para añadir penguin en la línea para bird.
Aplique la configuración utilizando una de las siguientes opciones:
• Reinicio e inicio de sesión. (Mejor opción)
• Ejecute ”kill -TERM -1” y realice algunas acciones de reparación como ”systemctl restart NetworkManager.service”.
• Cierre de sesión a través del menú GUI e inicio de sesión.
Puedes eliminar un usuario penguin de un grupo bird en dos pasos:
Cambie la configuración del grupo utilizando una de las siguientes opciones:
• Ejecute ”sudo usermod -rG bird penguin”.
• Ejecute ”sudo deluser penguin bird” (sólo en sistemas Debian típicos)
• Ejecute ”sudo vigr” para /etc/group y ”sudo vigr -s” para /etc/gshadow para eliminar penguin en la línea para bird.
Aplique la configuración utilizando una de las siguientes opciones:
• Reinicio e inicio de sesión. (Mejor opción)
• Ejecute ”kill -TERM -1” y realice algunas acciones de reparación como ”systemctl restart NetworkManager.service”.
• El cierre de sesión a través del menú GUI no es una opción para Gnome Desktop.
Cualquier intento de reinicio en caliente es un frágil sustituto del verdadero reinicio en frío en el sistema de escritorio moderno.
nota
Otra manera dinámica consiste en añadir usuarios a grupos durante el proceso de acreditación aña­diendo la línea «auth optional pam_group.so» al archivo «/etc/pam.d/common-auth» y configurar «/etc/security/group.conf». (Consulte Capítulo4.)
En el sistema Debian los dispositivos hardware son también archivos. Si tiene problemas para que un usuario acceda a dispositivos como el CD-ROM o dispositivos de memoria USB, podría solucionarse añadiendo el usuario al grupo pertinente.
Algunos grupos importantes del propio sistema permiten a sus miembros acceder a archivos y directorios específicos sin privilegios de superusuario.
grupo descripción de archivos y dispositivos accesibles
dialout acceso directo y completo a los puertos serie («/dev/ttyS[0-3]»)
dip
acceso limitado a los puertos series para establecer conexiones a internet por vía telefónica (dialup IP) a pares confiables
cdrom dispositivos CD-ROM, DVD+/-RW audio dispositivo audio vídeo dispositivo de vídeo escáner escáner adm registros de supervisión del sistema
staff
algunos directorios para la administración básica del sistema: «/usr/local», «/home»
Cuadro 1.7: Relación de grupos importantes del sistema para el acceso a archivos
Page 41
Guía de referencia de Debian 13 / 267
sugerencia
Necesita pertenecer al grupo dialout para reconfigurar el modem, marcar, etc. Pero si el superusuario crea archivos de configuraciones predefinidas para algunos pares en «/etc/ppp/peers/», únicamente necesitará pertenecer al grupo dip para crear conexiones a internet porvía telefónica a estos pares usando las órdenes pppd(8), pon(1) y poff(1).
Algunos grupos importantes proporcionados por el sistema permiten a sus miembros ejecutar determinadas órdenes sin privilegios de superusuario.
grupo órdenes permitidas
sudo ejecuta sudo sin su contraseña lpadmin ejecuta órdenes para añadir, modificar y eliminar las impresoras disponibles
Cuadro 1.8: Relación de grupos importantes del sistema para la ejecución de órdenes específicas
Puede consultar una relación completa de los usuarios y grupos del sistema en el documento «Users and Groups« /usr/share/doc/base-passwd/users-and-groups.html del paquete base-passwd.
Consulte las órdenes para la gestión de usuarios y grupos: passwd(5), group(5), shadow(5), newgrp(1), vipw(8), vigr(8) y pam_group(8).

1.2.6. Marcas de tiempo

Existen tres tipos de marcas o sellos de tiempo para un archivo GNU/Linux.
tipo significado (definición histórica en Unix) mtime el momento de modificación (ls -l) ctime el momento de cambio de estado (ls -lc) atime el momento del último acceso (ls -lu)
Cuadro 1.9: Relación de tipos de marcas de tiempo
nota ctime no es el momento de creación del archivo.
nota
El significado actual de atime en sistemas GNU/Linux puede no ser diferente del de Unix clásico.
Al sobrescribir un archivo se cambian todos los atributos mtime, ctime y atime del archivo.
Cambiar la propiedad o el permiso de un archivo modifica los atributos ctime y atime del archivo.
la lectura de un archivo en un sistema Unix clásico modifica su propiedad atime.
La lectura de un archivo cambia el atributo atime del archivo en el sistema GNU/Linux si su sistema de archivos está montado con ” strictatime ”.
La lectura de un archivo por primera vez o después de un día cambia la propiedad atime en un sistema GNU/Linux si el sistema de archivos está montado con la opción «relatime». (comportamiento por defecto desde Linux
2.6.30)
Page 42
Guía de referencia de Debian 14 / 267
La lectura del archivo no cambia su propiedad atime en un sistema GNU/Linux si el sistema de archivos está montado con la opción «noatime».
nota
Las opciones de montaje «noatime» y «relatime» se diseñaron para mejorar el desempeño de lectura del sistema de archivos de forma normal. La simple lectura de un archivo con la opción «strictatime» genera una operación de escritura para actualizar la propiedad atime. El atributo atime se usa poco excepto para el archivo mbox(5). Consulte mount(8).
Utilice la orden touch(1) para cambiar las marcas de tiempo de los archivos existentes. Para la fecha, el comando ls genera cadenas localizadas en una configuración regional que no es inglesa (”fr_FR.UTF-8”).
$ LANG=C ls -l foo
-rw-rw-r-- 1 penguin penguin 0 Oct 16 21:35 foo $ LANG=en_US.UTF-8 ls -l foo
-rw-rw-r-- 1 penguin penguin 0 Oct 16 21:35 foo $ LANG=fr_FR.UTF-8 ls -l foo
-rw-rw-r-- 1 penguin penguin 0 oct. 16 21:35 foo
sugerencia
Ver Sección9.3.4 para personalizar la salida de «ls -l».

1.2.7. Enlaces

Existen dos métodos para asociar a un archivo ”foo” con otro nombre de archivo ”bar”.
enlace duro,
• Nombre duplicado de un fichero ya existente
• «ln foo bar»
enlace simbólico o «simlink»
• Fichero especial que apunta a otro fichero por su nombre
• «ln -s foo bar».
Con el siguiente ejemplo se muestra los cambios en el contador de enlaces y las sutiles diferencias de la orden rm.
$ umask 002 $ echo "Original Content" > foo $ ls -li foo 1449840 -rw-rw-r-- 1 penguin penguin 17 Oct 16 21:42 foo $ ln foo bar # hard link $ ln -s foo baz # symlink $ ls -li foo bar baz 1449840 -rw-rw-r-- 2 penguin penguin 17 Oct 16 21:42 bar 1450180 lrwxrwxrwx 1 penguin penguin 3 Oct 16 21:47 baz -> foo 1449840 -rw-rw-r-- 2 penguin penguin 17 Oct 16 21:42 foo $ rm foo $ echo "New Content" > foo $ ls -li foo bar baz 1449840 -rw-rw-r-- 1 penguin penguin 17 Oct 16 21:42 bar 1450180 lrwxrwxrwx 1 penguin penguin 3 Oct 16 21:47 baz -> foo 1450183 -rw-rw-r-- 1 penguin penguin 12 Oct 16 21:48 foo
Page 43
Guía de referencia de Debian 15 / 267
$ cat bar Original Content $ cat baz New Content
Los enlaces duros deben ser construidos en el mismo sistema de archivos y comparten el mismo «inodo» como revela el parámetro «-i» de la orden ls(1) .
Los enlaces simbólicos siempre tienen permisos de acceso al archivo nominales «rwxrwxrwx», como se mostró en el ejemplo anterior, con los permisos reales que tenga el archivo al que referencia.
atención
En general es preferible no crear nunca enlaces simbólicos o enlaces duros excepto que tenga poderosas razones. Los enlaces simbólicos puede causar problemas graves al crear bucles en el sistema de archivos.
nota
En general es preferible crear enlaces simbólicos a enlaces duros, al menos que tenga alguna buena razón para ello.
El directorio . enlaza al propio directorio en el que aparece, por lo que la cuenta de enlaces de cualquier nuevo direc­torio es 2. El directorio «..» enlaza al directorio padre, por lo que la cuenta de enlaces del directorio se incrementa con la creación de nuevos subdirectorios.
Si proviene de Windows, pronto comprenderá lo bien diseñado que están los enlaces de Unix, comparados con su equivalente en Windows que son los accesos directos (shortcuts). Gracias su implementación en el sistema de archi­vos, las aplicaciones no distinguen entre el archivo original y su enlace. En el caso de los enlaces duros, ciertamente no existe diferencia.

1.2.8. Tuberías con nombre (FIFOs)

Una tubería con nombre es un archivo que se comporta como una tubería. Usted introduce algo dentro del archivo y sale por el otro lado. Por esa razón se dice que es FIFO o primero-en-entrar-primero-en-salir: lo primero que se introduce en la tubería es lo primero en salir por el otro lado.
Si se escribe en una tubería con nombre, los procesos que han escrito en la tubería no pueden terminar hasta que la información que han escrito es leída de la tubería. Si se lee de una tubería con nombre, el proceso lector espera hasta que no hay nada que leer antes de terminar. El tamaño de la tubería es siempre cero --- no almacena datos, la tubería solo comunica los dos procesos de igual manera que lo hace el intérprete de órdenes mediante la sintaxis «|». Sin embargo, desde que la tubería tiene un nombre, los dos procesos no tienen que estar en la misma línea de órdenes y ni siquiera ser ejecutados por el mismo usuario. Las tuberías fueron una innovación muy relevante de Unix.
Por ejemplo, intente lo siguiente
$ cd; mkfifo mypipe $ echo "hello" >mypipe & # put into background [1] 8022 $ ls -l mypipe prw-rw-r-- 1 penguin penguin 0 Oct 16 21:49 mypipe $ cat mypipe hello [1]+ Done echo "hello" >mypipe $ ls mypipe mypipe $ rm mypipe
Page 44
Guía de referencia de Debian 16 / 267

1.2.9. «Sockets»

Los «sockets» se usan de forma generalizada en las comunicaciones en Internet, bases de datos y sistemas ope­rativos. Son similares a las tuberías con nombre (FIFO) y permiten que los procesos intercambien información entre diferentes equipos. Para los «sockets» los procesos no necesitan estar ejecutandose al mismo tiempo, ni ser hijos del mismo proceso padre. Este es el mejor sistema para la comuniación entre procesos (IPC). El intercambio de in­formación puede ocurrir en la red entre equipos. Los dos tipos de «sockets» más comunes son los «sockets« Internet y los «sockets» de dominio Unix.
sugerencia
«netstat -an» ofrece una visión muy útil de los «sockets» abiertos en el sistema.

1.2.10. Archivos de dispositivos

Los archivos de dispositivos se refieren a dispositivos físicos o virtuales del sistema, como el disco duro, la tarjeta de vídeo, la pantalla o el teclado. Un ejemplo de dispositivo virtual es la consola, representado por «/dev/console».
Hay dos tipos de archivos de dispositivo.
dispositivos orientados a carácter,
• se accede a un carácter cada vez,
• 1 carácter = 1 byte,
• p. ej. teclado, puerto serie, …
dispositivo orientado a bloque.
• se accede a unidades grandes llamadas bloques,
• 1 bloque > 1 byte,
• p. ej. un disco duro, …
Los archivos de dispositivos se pueden leer y escribir, aunque el fichero pueda contener datos binarios los cuales son un galimatias incomprensibles para los humanos. Algunas veces escribir datos directamente en esos ficheros puede ayudar a resolver problemas de conexión con los dispositivos. Por ejemplo, se puede enviar un archivo de texto al dispositivo de la impresora«/dev/lp0» o mandar órdenes de modem por el puerto serie «/dev/ttyS0». Pero, al menos que se haga con cuidado, puede causar un problema mayor. Así que tenga cuidado.
nota
Comúnmente a la impresora se accede utilizando lp(1).
El número de nodo del dispositivo se muestra por la ejecución de ls(1) como se muestra.
$ ls -l /dev/sda /dev/sr0 /dev/ttyS0 /dev/zero brw-rw---T 1 root disk 8, 0 Oct 16 20:57 /dev/sda brw-rw---T+ 1 root cdrom 11, 0 Oct 16 21:53 /dev/sr0 crw-rw---T 1 root dialout 4, 64 Oct 16 20:57 /dev/ttyS0 crw-rw-rw- 1 root root 1, 5 Oct 16 20:57 /dev/zero
«/dev/sda» tiene como número de dispositivo mayor de 8 y como número de dispositivo menor de 0. Los usuario pueden realizar operaciones de lectura/escritura haciendo si pertenecen al grupo disk.
«/dev/sr0» tiene como número de dispositivo mayor de 11 y como menor de 0. Los usuarios pueden realizar operaciones de lectura/escritura si pertenecen al grupo cdrom.
Page 45
Guía de referencia de Debian 17 / 267
«/dev/ttyS0» tiene el número de dispositivo mayor de 4 y menor de 64. Los usuarios pueden realizar operacio­nes de lectura/escritura si pertenecen al grupo dialout.
«/dev/zero» tiene como número mayor de dispositivo 1 y como menor 5. Todos los usuarios pueden realizar operaciones de lectura/escritura.
En un sistema Linux moderno, el sistema de archivos en «/dev/» se rellena de forma automática mediante udev(7).

1.2.11. Archivos de dispositivos especiales

Existen algunos archivos de dispositivos especiales.
archivo de dispositivo acción descripción de respuesta
/dev/null lectura devuelve el «carácter de final de archivo (EOF)»
/dev/null escritura
/dev/zero lectura
/dev/random lectura
/dev/urandom lectura
/dev/full escritura devuelve el error de disco lleno (ENOSPC)
no devuelve nada (un pozo sin fondo al que enviar datos) devuelve «el carácter \0 (NUL)» (difiere del número cero representado en ASCII) devuelve caracteres aleatorios creados por el generador de números aleatorios confiable, ofreciendo entropía real (baja) devuelve caracteres de forma aleatoria desde el generador de números pseudo-aleatorios de seguridad criptográfica
Cuadro 1.10: Relación de archivos de dispositivos especiales
Con frecuencia son utilizados en las redirecciones del intérprete de órdenes (consulte Sección1.5.8).

1.2.12. procfs y sysfs

Los pseudo sistemas de archivos procfs y sysfs, que se montan en «/proc» y «/sys», son estructuras de datos internas del núcleo que se muestran al espacio de usuario. Expresado de otra forma, estas entradas son virtuales actúan como una ventana adecuada al funcionamiento del sistema operativo.
El directorio «/proc» contiene (entre otras cosas) un subdirectorio por cada proceso que se está ejecutando en el sistema operativo, cuyo nombre es el identificador del proceso (PID). Las herramientas del sistema que acceden a la información de los procesos, como ps(1), obtienen dicha información de la estructura de este directorio.
Los el subárboles de directorios «/proc/sys/» contienen interfaces que permiten cambiar algunos parámetros del núcleo en tiempo de ejecución. (Se puede realizar las mismas operaciones por medio de la ordensysctl(8) o de su archivo de configuración «/etc/sysctl.conf».)
La gente normalmente se alarma del gran tamaño de un archivo en particular, «/proc/kcore». Es (más o menos) una copia del contenido de la memoria del equipo. Es útil para depurar el núcleo y es un archivo virtual que es una referencia a la memoria del equipo, así es que no hay que preocuparse por su tamaño.
El subdirectorio ”/sys” contiene las estructuras de datos del kernel exportadas, sus atributos y los enlaces entre ellos. También contiene interfaces para cambiar ciertos parámetros del kernel que se están ejecutándose.
Consulte «proc.txt(.gz)», «sysfs.txt(.gz)» y otros documentos que forman parte de la documentación del núcleo de Linux («/usr/share/doc/linux-doc-*/Documentation/filesystems/*») incluidos en el paque­te linux-doc-*.
Page 46
Guía de referencia de Debian 18 / 267

1.2.13. tmpfs

El sistema de archivos temporal tmpfs tiene la función de mantener todos los archivos en la memoria virtual. Los datos de «tmpfs« de la caché de páginas de la memoria se puede enviar al área de intercambio en disco cuando sea necesario.
El directorio «/run» se monta como tmpfs al comienzo del proceso de arranque. Así se permite la escritura sobre él, incluso cuando el directorio «/» está montado en solo lectura. Aquí se guardan los archivos en estado temporal y sustituye a varios directorios de la Jerarquía Estándar del Sistema de Ficheros versión 2.3:
«/var/run» → «/run»,
«/var/lock» → «/run/lock»,
«/dev/shm» → «/run/shm».
Verel documento del núcleo de Linux «tmpfs.txt(.gz)» («/usr/share/doc/linux-doc-*/Documentation/filesystems/*») que está en el paquete linux-doc-*.
1.3. Midnight Commander (MC)

Midnight Commander (MC) es una «navaja multiusos» GNU para la consola de Linux y otros entornos de terminal.

Aporta a los nuevos usuarios una experiencia de consola basada en menús que es más sencilla de aprender que las órdenes estándar de Unix.
Necesitará instalar el paquete de Midnight Commander llamado «mc como se muestra.
$ sudo apt-get install mc
Usa el comando mc(1) para explorar el sistema Debian. Esta es la mejor forma de aprender. Por favor, explora algunos lugares interesantes sólo usando las teclas del cursor y la tecla Intro.
/etc” y sus subdirectorios
«/var/log» y sus subdirectorios
«/usr/share/doc» y sus subdirectorios
«/usr/sbin» y «/usr/bin».

1.3.1. Personalización de MC

Para cambiar el directorio de trabajo de MC después de salir y no tener que ejecutar una orden cd al último directorio, le sugiero que cambie «~/.bashrc» para incluir el archivo de órdenes que está en el paquete mc.
. /usr/lib/mc/mc.sh
Consulte mc(1) (en la opción «-P») para comprobar por qué. (Si no comprende exactamente lo que estoy diciendo puede hacerlo más tarde.)
Page 47
Guía de referencia de Debian 19 / 267

1.3.2. Comenzando con MC

Para ejecutar MC escribe lo siguiente.
$ mc
MC permite ejecutar todas las operaciones sobre archivos a través de sus menús, con el mínimo esfuerzo para el usuario. Para acceder a la pantalla de ayuda presione F1. Puede probar MC con solo pulsar las teclas de los cursores y las teclas de función.
nota
En algunas consolas como gnome-terminal(1), la pulsación de las teclas de función las recibe la consola. Esta funcionalidad se desactiva en «Editar» → «Atajos de teclado» para gnome-terminal.
Si encuentra problemas de codificación de los caracteres y parecen no tener sentido, añadir «-a» como parámetro a la orden MC ayudará a evitar problemas.
Si esto no soluciona el problema consulte Sección9.5.6.

1.3.3. Gestor de archivos de MC

Por defecto hay dos paneles con dos directorios y su contenido. Otro modo útil es asignar el panel derecho para que muestre los permisos de los archivos, etc. A continuación mostraremos algunas claves. Con el demonio gpm(8) eje­cutándose, se puede usar el ratón en la consola de caracteres de Linux. (Asegúrese de pulsar la tecla de mayúsculas para obtener el comportamiento normal cuando corte y pegue en MC.)
tecla función
F1 menú de ayuda F3 visión del contenido del archivo F4 editor interno F9 activa el menú superior F10 salida de Midnight Commander Tab moverse entre los paneles Insertar o Ctrl-T marcar el fichero para seleccionar varios para otra operación como copiar Del borrar el archivo (tenga cuidado---active el modo seguro de borrado en MC) Cursores se explican por si mismas
Cuadro 1.11: Funciones de las teclas en MC

1.3.4. Trucos de la línea de órdenes en MC

La orden cd cambia el directorio en el panel seleccionado
Ctrl-Intro o Alt-Intro copia el nombre del archivo a la orden en la línea de órdenes Se utiliza en combinación con las órdenes cp(1) y mv(1) para añadir parámetros a las órdenes.
Alt-Tab muestra los posibles archivos elegibles por expansión del nombre en el intérprete de órdenes.
Se puede especificar los directorios de inicio de ambos paneles como parámetros a MC; por ejemplo, «mc /etc/root».
Esc + tecla numérica n tecla de función n (p. ej., Esc + 1 F1, etc.; Esc + 0 F10).
Pulsando Esc antes que la tecla tiene el mismo efecto que presionar Alt y otra tecla a la vez.; p. ej. pulse Esc+c para obtener Alt-C. Esc la llaman la meta-tecla y algunas veces se representa como «M-».
Page 48
Guía de referencia de Debian 20 / 267

1.3.5. El editor interno de MC

El editor interno tiene un esquema de corta-y-pega interesante. Al pulsarF3 comienza la selección, una segunda pulsación de F3 finaliza la selección y resalta lo seleccionado. Entonces puede mover el cursor. Si presiona F6 el área seleccionada se moverá a la posición del cursor. Si presiona F5 el área seleccionada se copia e inserta en la posición del cursor. F2 guarda el archivo. F10 permite salir. La mayor parte de las teclas cursor funcionan de forma intuitiva.
Este editor puede iniciarse directamente en un fichero utilizando uno de los siguientes comandos.
$ mc -e filename_to_edit
$ mcedit filename_to_edit
El editor posee una sola ventana, pero se pueden usar varias consolas de Linux para obtener el mismo comportamien­to. Para copiar entre ventanas, use las teclas Alt-Fn para cambiar entre consolas virtuales y utilice «Archivo→Insertar archivo» o «Archivo→Copiar a un archivo» para mover una parte de un archivo a otro.
El editor interno se puede reemplazar por cualquier otro editor de su elección. De hecho, muchos programas usan la variable de entorno «$EDITOR» o «$VISUAL» para determinar el editor a
utilizar. Si al principio no está cómodo con vim(1) o nano(1), puede cambiar su valor a «mcedit» añadiendo la siguientes líneas a «~/.bashrc».
export EDITOR=mcedit export VISUAL=mcedit
Si le parece, mi recomendación es asignarles el valor «vim». Si está incómodo con vim(1) puede utilizar mcedit(1) para la mayor parte de las tareas de administración del sistema.

1.3.6. El visor interno de MC

MC posee un visor inteligente. Es una gran herramienta para buscar palabras en los documentos. Siempre lo uso para archivos del directorio «/usr/share/doc». Es la manera más rápida de navegar a través de la ingente cantidad de información de Linux. Este visor puede iniciarse de forma separada utilizando una de las órdenes que se muestran.
$ mc -v path/to/filename_to_view
$ mcview path/to/filename_to_view

1.3.7. Selección inteligente del visor en MC

Pulse Intro en un archivo y el programa, de acuerdo a su contenido, abrirá el archivo (consulte Sección9.4.11). Es una funcionalidad de MC muy útil.
tipo de archivo acción de la tecla Intro
archivo ejecutable ejecuta la orden archivo de página de manual envía el contenido a la aplicación de visualización archivo html envía el contenido al navegador web archivos «*.tar.gz» y «*.deb» muestra su contenido como si fuera un subdirectorio
Cuadro 1.12: Acción de la tecla Intro en MC
Para que opere de forma correcta el visor y las funciones virtuales de archivo, los archivos visibles no deben tener permisos de ejecución. Puede cambiar su estado con chmod(1) o en el menú de archivo de MC.
Page 49
Guía de referencia de Debian 21 / 267

1.3.8. Sistema de archivos virtual de MC

MC puede acceder a archivos en Internet a través de FTP. Vaya al menú pulsando F9, ”Enter” y ”h” para activar el sistema de archivos Shell. Escriba la URL con el formato «sh://[user@]machine[:options]/[remote-dir]», que abre un directorio remoto que aparece como uno local usando ssh.

1.4. Fundamentos de entornos de trabajo tipo Unix

Aunque MC permite realizar casi cualquier cosa, es importante aprender a utilizar la línea de órdenes y el intérprete de comandos y acostumbrarse a un entorno de trabajo tipo Unix.

1.4.1. El intérprete de órdenes (shell)

Dado que algunos programas de inicialización del sistema pueden usar el shell de inicio de sesión, es prudente mantenerlo como bash(1) y evitar cambiar el shell de inicio de sesión con chsh(1).
Si desea utilizar un prompt interactivo diferente de shell, hágalo desde la configuración del emulador de la terminal GUI o iniciélo desde ~/.bashrc, por ejemplo, colocando ”exec /usr/bin/zsh -i -l”o”exec /usr/bin/fish -i
-l”en ella.
Intérprete
paquete popularidad tamaño
bash
bash-completion
dash
zsh V:40, I:73 2463
tcsh V:6, I:20 1355 No
mksh V:6, I:11 1579 Versión de el intérprete de órdenes Korn
csh V:1, I:6 339 No
sash V:0, I:5 1157
ksh V:1, I:10 61
rc V:0, I:1 178 No
posh V:0, I:0 190
V:838, I:999
V:32, I:933 1454 N/A terminación programable para la shell bash
V:884, I:997
7175
191
de órdenes POSIX
descripción
Bash: el intérprete de órdenes GNU Bourne
Again SHell (estándar de facto)
Intérprete de órdenes Debian Almquist, bueno
para archivos de órdenes
Intérprete de órdenes Z: un intérprete de órdenes
con muchas mejoras
TENEX C Shell: una versión mejorada de Berkeley csh
Intérprete de órdenes OpenBSD C, una versión de Berkeley csh
Intérprete de órdenes Stand-alone con órdenes
internas (no es el estándar «/usr/bin/sh») la versión AT&T actual del intérprete de órdenes
Korn
implementación del intérprete de órdenes rc de
AT&T Plan 9
Intérprete de órdenes que cumple con las directrices estándar (derivado de pdksh)
Cuadro 1.13: Relación de intérpretes de órdenes
sugerencia
Aunque los intérpretes de órdenes tipo POSIX comparten la sintaxis básica, pueden cambiar el comportamiento de algunos elementos básicos como sus variables o la expansión de nombres de archivos con comodines. Por favor, compruebe su documentación para obtener más detalles.
Page 50
Guía de referencia de Debian 22 / 267
En este capítulo se sobreentiende que el intérprete de órdenes es bash.

1.4.2. Personalización de bash

Puede personalizar bash(1) en el archivo de configuración «~/.bashrc».
Por ejemplo, pruebe con lo que se muestra.
# enable bash-completion if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
# CD upon exiting MC . /usr/lib/mc/mc.sh
# set CDPATH to a good one CDPATH=.:/usr/share/doc:~:~/Desktop:~ export CDPATH
PATH="${PATH+$PATH:}/usr/sbin:/sbin" # set PATH so it includes user's private bin if it exists if [ -d ~/bin ] ; then
PATH="~/bin${PATH+:$PATH}" fi export PATH
EDITOR=vim export EDITOR
sugerencia
Puede encontrar más posibilidades de personalización de bash, como Sección9.3.6 en Capítulo9.
sugerencia
El paquete bash-completion permite la finalización programable de bash.

1.4.3. Combinaciones de teclas

En un entorno tipo Unix, hay algunas teclas que tiene un uso especial. Tenga en cuenta que en una consola en modo texto de Linux, solo las teclas Ctrl y Alt del lado izquierdo funcionan de la forma esperada. He aquí algunas combinaciones de teclas que conviene recordar.
sugerencia
La funcionalidad del terminal de Ctrl-S puede deshabilitarse con stty(1).
Page 51
Guía de referencia de Debian 23 / 267
tecla descripción de la combinación de teclas
Ctrl-U borra el contenido desde el cursor al inicio de la línea
Ctrl-H borra el carácter anterior al cursor
Ctrl-D fin de la entrada (finaliza el intérprete de órdenes en uso)
Ctrl-C finaliza el programa en ejecución
Ctrl-Z para temporalmente el programa que pasa a segundo plano
Ctrl-S para la salida por pantalla
Ctrl-Q reanuda la salida por pantalla
Ctrl-Alt-Del reinicia/apaga el sistema, ver inittab(5)
tecla izquierda Alt (opcionalmente,
tecla de Windows)
flecha arriba retrocede en el histórico de órdenes bash
Ctrl-R búsqueda en el histórico de órdenes de bash
Tab
Ctrl-V Tab introduce Tab sin completar la orden en bash
Cuadro 1.14: Relación de combinaciones de teclado en bash
meta-tecla para Emacs e interfaces similares de usuario
completa la entrada de la orden con el nombre de archivo en
bash

1.4.4. Operaciones con el ratón

Las operaciones del ratón para el texto en el sistema Debian mezclan 2 estilos con algunos cambios:
Operaciones tradicionales del ratón al estilo de Unix:
• usar 3 botones (clic)
• usar PRIMARIO/A
• usado por aplicaciones X tales como xterm y aplicaciones de linea de comando en la consola Linux
Operación del ratón al estilo GUI (interfaz gráfica de usuario) moderna:
• usar 2 botones (arrastrar + clic)
• usar PRIMARIO y PORTAPAPELES
• usado en aplicaciones modernas GUI tales como gnome-terminal
acción respuesta
botón izquierdo y arrastre del ratón seleccionar un rango como selección PRIMARIA
botón izquierdo seleccione el inicio del rango para la selección PRIMARIA
botón derecho (tradicional) seleccione el final del rango para la selección PRIMARIA
botón derecho (moderno) menú dependiente del contexto (cortar/copiar/pegar)
Clic central o Mayús-Ins insertar selección PRIMARIA en el cursor
Ctrl-X cortar la selección PRIMARIA al PORTAPAPELES
Ctrl-C (Shift-Ctrl-C en terminal) copiar la selección PRIMARIA al PORTAPAPELES
Ctrl-V pegue el contenido de CLIPBOARD en la ubicación del cursor
Cuadro 1.15: Lista de acciones de teclado relacionadas y operaciones con ratón en Debian
Aquí, la selección PRIMARIA es el rango de texto resaltado. Dentro del programa de terminal, Shift-Ctrl-C se usa en su lugar para evitar terminar un programa en ejecución.
La rueda central del ratón moderno se considera el botón central del mismo y se puede usar para hacer clic en el medio. Hacer clic en los botones izquierdo y derecho del ratón al mismo tiempo equivale como clic central en los ratones de 2 botones.
Para usar un ratón en las consolas de caracteres de Linux, debe tener gpm(8) ejecutándose como daemon.
Page 52
Guía de referencia de Debian 24 / 267

1.4.5. El paginador

La orden less(1) es un paginador mejorado (permite navegar por el contenido de los archivos). Lee el archivo indicado como parámetro en su orden o la entrada estándar. Pulse «h» si necesita ayuda mientras utiliza la orden less. Es más capaz que more(1) y se puede mejorar ejecutando «eval $(lesspipe)» o «eval $(lessfile)» en el archivo de órdenes de inicio. Ver «/usr/share/doc/less/LESSOPEN». La opción «-R» permite la salida en crudo y permite las secuencias de escape ANSI coloreadas. Ver less(1).
sugerencia
En el comando less, escriba ”h” to see the help screen, type ”/” o ”?” to search a string, and type ”-i” para cambiar la sensibilidad entre mayúsculas y minúsculas.

1.4.6. El editor de texto

Debería ser competente con Vim o Emacs que son habituales en los sistemas tipo Unix. Pienso que el correcto es Vim, ya que el editor Vi esta siempre disponible en el mundo Linux/Unix. (En realidad,
los programas, bien el original vi o el nuevonvi los puede encontrar en cualquier lugar. Yo elegí Vim en vez de la versión nueva ya que ofrece ayuda a través de tecla F1 siendo similar y más potente.)
Si elige Emacs o XEmacs como su editor también son buenas opciones, especialmente para la programación. Emacs tiene una extensa cantidad de características también, incluyendo funciones como lector de noticias, editor de direc­torios, aplicación de correo, etc. Cuando se usa para programar o editar archivos de órdenes, reconocerá el formato en el que está trabajando y tratará de ayudarle. Algunos mantienen que el único programa que se necesita en Linux es Emacs. Aprender Emacs durante diez minutos ahora puede ahorrar muchas horas después. Es recomendable usar el manual de GNU Emacs para aprender.
Todos estos programas normalmente incluyen un tutorial para que pueda aprender a través de la práctica. Se inicia en «vim» pulsando la tecla F1. Debería al menos leer las primeras treinta y cinco líneas. Después realizar el curso de entrenamiento posicionando el cursor en«|tutor|» y pulsando Ctrl-].
nota
Los buenos editores, como Vim y Emacs, gestionan de manera adecuada codificaciones UTF-8 y otras menos comunes o más exóticas. Es una buena idea usar el entorno X con la configuración regional UTF-8 e instalar los programas y tipos de letra necesarias para ello. Los editores tienen opciones para asignar una codificación independientemente de la del entorno X. Por favor, consulte su documentación sobre texto multibyte.

1.4.7. Configuración del editor de texto por defecto

Debian tiene un buen número de editores. Recomendamos instalar el paquete vim, como ya hemos mencionado. Debian tiene un acceso unificado al editor por defecto del sistema mediante la orden «/usr/bin/editor», y así
otros programas (p. ej. reportbug(1)) puedan llamarlo. Puede cambiarlo como se muestra.
$ sudo update-alternatives --config editor
Mi recomendación es la opción «/usr/bin/vim.basic» mejor que «/usr/bin/vim.tiny» para los usuario noveles ya que permite realzado de sintaxis.
sugerencia
Muchos programas utilizan las variables de entorno «$EDITOR» o «$VISUAL» para determinar el editor a usar (ver Sección1.3.5 y Sección9.4.11). Para un sistema Debian coherente asigne este valor a «/usr/bin/editor». (Históricamente, «$EDITOR» era «ed» y «$VISUAL» era «vi».)
Page 53
Guía de referencia de Debian 25 / 267

1.4.8. Usando vim

El reciente vim(1) se inicia en la sana opción ”incompatible” y entra en el modo NORMAL.1
modo entradas con el teclado acción
NORMAL ayuda|solo mostrar el archivo de ayuda
NORMAL :e filename.ext
NORMAL :w
NORMAL :w filename.ext escribir el búfer actual en filename.ext
NORMAL q salir vim
NORMAL :q! forzar salir vim
NORMAL :solamente cierre todas las demás ventanas abiertas
NORMAL
NORMAL
NORMAL i pulse el modo INSERTAR
NORMAL R entrar en el modo REEMPLAZAR
NORMAL v entrar en el modo VISUAL
NORMAL V ingrese al modo lineal VISUAL
NORMAL Ctrl-V Ingresar al modo VISUAL en bloque
excepto TERMINAL-JOB Tecla ESC entrar al modo NORMAL
NORMAL :term entrar al modo TERMINAL-JOB
TERMINAL-NORMAL i entrar al modo TERMINAL-JOB
TERMINAL-JOB Ctrl-W N (o Ctrl-\ Ctrl-N) entre el modo TERMINAL-NORMAL
TERMINAL-JOB Ctrl-W :
¿establecer no compatible? : establecer no compatible
abrir un nuevo búfer para editar
filename.ext
sobrescribir el búfer actual en el archivo original
comprobar si vim está en el modo
incompatible establecer vim en el modo incompatible
entre el modo Ex-en modo TERMINAL-NORMAL
Cuadro 1.16: Lista de comandos básicos de Vim
Por favor use el programa ”vimtutor” para aprender vim en un curso con tutorial interactivo.
El programa vim cambia su comportamiento al pulsar las teclas basadas en modo. La mayoría de las pulsaciones de teclas en el búfer se realizan en modo INSERTAR y modo REEMPLAZAR. El movimiento del cursor se realiza principalmente en modo NORMAL. La selección interactiva se realiza en modo VISUAL. Escribir ”:” en modo NORMAL cambia su modo a Ex-modo. El modo Ex acepta comandos.
sugerencia
El Vim viene con el paquete Netrw. ¡Netrw admite la lectura de archivos, la escritura de archivos, la exploración de directorios en una red y la exploración local! Pruebe Netrw con ”vim .” (un punto como argumento) y lea su manual en ”:help netrw”.
Para la configuración avanzada de vim, ver Sección9.2.

1.4.9. Grabación de las actividades del intérprete de órdenes

La salida del intérprete de órdenes puede colapsar su pantalla y puede perderse para siempre. Es una buena práctica registrar la actividad del intérprete de órdenes en un archivo para poder revisarlo más tarde. Este registro es esencial para llevar a buen término cualquier tarea de administración de un sistema.
1Incluso el antiguo vim puede comenzar en el sano modo ”incompatible” al iniciarlo con la opción ”-N”.
Page 54
Guía de referencia de Debian 26 / 267
sugerencia
El nuevo Vim (versión> = 8.2) se puede usar para registrar las actividades de shell limpiamente usando el modo TERMINAL-JOB. Consulte Sección1.4.8.
El método básico de registro del intérprete de órdenes es operar con script(1). Por ejemplo, intente lo siguiente
$ script Script started, file is typescript
Ejecute las órdenes que desee después de script. Pulse Ctrl-D para finalizar script.
$ vim typescript
Consulte Sección9.1.1.

1.4.10. Órdenes básicas de Unix

Aprendamos las órdenes fundamentales de UNIX. Aquí utilizaremos «Unix» en su sentido genérico. Normalmente cualquier sistema operativo tipo Unix tiene un conjunto de órdenes similares. El sistema Debian no es una excepción. No se preocupe si en este momento algunas órdenes no funcionan como esperaba. Si se utiliza alias en el intérprete de órdenes, las salidas de las órdenes correspondientes difieren. Estos ejemplos no pretenden ejecutarse en orden.
Pruebe las siguientes órdenes desde una cuenta de usuario sin privilegios.
nota
Unix tiene una tradición de ocultar los archivos que comienzan con «.». Tradicionalmente contienen información de configuración y de preferencias de usuario. Para la orden cd, consulte builtins(7). El paginador por defecto del sistema Debian es more(1) que es básico y no permite el desplazamiento para atrás. La instalación del paquete less con la orden «apt-get install less», convertirá a less(1) en el paginador por defecto y este sí permite el desplazamiento hacia atrás con las teclas de cursor. En la expresión regular de la orden «ps aux | grep -e «[e]xim4*«», «[» y «]» permite a grep que no encaje consigo mismo. La expresión regular «4*» significa cero o más repeticiones del carácter «4» y de este modo permite a grep encajar con «exim» y con «exim4». Aunque el intérprete de órdenes utiliza «*» para el completado de nombres y las expresiones regulares, sus significados son distintos. Aprenda expresiones regulares consultando grep(1).
Por favor, para entrenar recorra los directorios y de un vistazo al sistema utilizando las órdenes que acabamos de introducir. Si tiene dudas sobre cualquier orden de consola, asegúrese de leer la página del manual.
Por ejemplo, intente lo siguiente
$ man man $ man bash $ man builtins $ man grep $ man ls
El estilo de la páginas de manual puede ser un poco áspero, ya que puede ser bastante conciso, especialmente las más antiguas y típicas pero una vez que se acostumbre, llegará a apreciar su concisión.
Recuerde que muchas órdenes de la familia Unix, incluidas las que provienen de GNU y BSD muestran un resumen de la ayuda si las ejecuta en alguna de las siguientes maneras (o sin parámetros en algunos casos).
$ commandname--help $ commandname -h
Page 55
Guía de referencia de Debian 27 / 267
orden descripción
pwd muestra el nombre del directorio actual/de trabajo
whowhoami muestra el nombre del usuario actual
id
muestra la identidad del usuario actual (nombre, uid, gid y grupos a los que pertenece)
file foo muestra el tipo de archivo de «foo»
type -p nombre_de_la_orden
muestra la ubicación del archivo de la orden «nombre_de_la_orden»
which nombre_de_la_orden , ,
type nombre_de_la_orden muestra información de la orden «nombre_de_la_orden»
apropos palabra_clave encuentra órdenes relacionadas con la «palabra_clave»
man -k palabra_clave , ,
whatis nombre_de_la_orden
man -a nombre_de_la_orden
info nombre_de_la_orden
ls
ls -a
ls -A
ls -la
ls -lai
muestra una descripción de una línea de la orden «nombre_de_la_orden» muestra la descripción de la orden «nombre_de_la_orden» (al estilo Unix) muestra una descripción detallada de la orden «nombre_de_la_orden» (al estilo GNU) relación el contenido del directorio (excluye aquellos archivos o directorios que comienzan por .) relación el contenido del directorio (todos los archivos y directorios) relación el contendido del directorio (casi todos los archivos y directorios, a saber, oculta «..» y «.») relación todo el contenido del directorio con información detallada relación el contenido completo del directorio con el número del inodo e información detallada
ls -d relación los directorios que cuelgan del directorio actual
tree muestra el contenido de los directorios en formato de árbol
lsof foo relación de los procesos que tienen abierto el archivo «foo»
lsof -p pid
relación de los archivos abiertos por el proceso con el identificador: «pid»
mkdir foo crear un nuevo directorio «foo» en el directorio actual
rmdir foo borra el directorio «foo» del directorio actual
cd foo
cambia al directorio «foo» que se encuentre en el directorio actual o en los directorios incluidos en la variable «$CDPATH»
cd / cambia al directorio raíz
cd cambia al directorio principal del usuario actual
cd /foo cambia al directorio con ruta absoluta «foo»
cd .. cambia al directorio padre
cd ~foo cambia al directorio principal del usuario «foo»
cd - cambia al directorio anterior
</etc/motd pager
muestra el contenido de «/etc/motd» usando el paginador por defecto
touch junkfile crea un archivo vacío «junkfile»
cp foo bar copia el archivo existente «foo» en un archivo nuevo «bar»
rm junkfile borra el archivo «junkfile»
mv foo bar
mv foo bar
renombra el archivo existente «foo» con un nuevo nombre «bar» («bar» no debe existir con anterioridad) mueve el archivo existente «foo» a una nueva ubicación «bar/foo» (el directorio «bar» debe existir previamente) mueve un archivo existente «foo» a una nueva ubicación con el
mv foo bar/baz
nombre nuevo «bar/baz» (el directorio «bar» debe existir con anterioridad pero el archivo «bar/baz» no)
chmod 600 foo
el archivo existente «foo» únicamente tiene permisos de lectura y escritura para el dueño (y no se permite la ejecución por nadie) hace que un archivo existente «foo» lo pueda leer cualquiera,
chmod 644 foo
que únicamente el dueño pueda escribir sobre él (y nadie puede ejecutarlo)
chmod 755 foo
find . -name expresión_regular
hace que un archivo «foo» pueda ser leído por cualquiera y modificado solo por el dueño (cualquiera puede ejecutarlo) encuentra archivos que cumplen la «expresión_regular»
Page 56
Guía de referencia de Debian 28 / 267

1.5. Órdenes simples para el intérprete de órdenes

Ahora ya tiene una idea de como utilizar un sistema Debian. Vamos a ver en profundidad el mecanismo de la ejecución de órdenes en el sistema Debian. En este tema haremos una simplificación de la realidad para las personas con poca experiencia. Para una explicación más completa consultar bash(1).
Un comando simple es una secuencia de componentes.
1. asignación de variables (opcional),
2. nombre de la orden,
3. parámetros (opcional),
4. redirecciones (optional: > , >> , < , << , etc.),
5. operadores de control (optional: && , || , nueva_línea , ; , & , ( , ) ).

1.5.1. Ejecución de órdenes y variables de entorno

El comportamiento de algunas órdenes Unix cambia dependiendo del valor de algunas variables de entorno. Los valores predeterminados de las variables de entorno los estable inicialmente el sistema PAM y luego algunos de
ellos se pueden restablecer por algunos programas de la aplicación.
El sistema PAM como pam_env puede establecer variables de entorno mediante /etc/pam.conf”, ”/etc/environment
y ”/etc/default/locale”.
Los gestores de inicio de sesión como gdm3 pueden restablecer las variables de entorno para la sesión de GUI
por ”~/.profile”.
La inicialización del programa específico del usuario puede reajustar variables del entorno por ”~/.profile”,
~/.bash_profile”y”~/.bashrc”.
1.5.2. La variable «$LANG»
La configuración regional predeterminada se define en la variable de entorno ”$LANG” y se configura como ”LANG=xx_YY.UTF-8 por el instalador o por la configuración posterior de la GUI, por ejemplo, ”Configuración” → ”Región e idioma” → ”Idio­ma” / ”Formatos” para GNOME.
nota
Recomiendo que se configure el entorno del sistema sólo con la variable ”$LANG” por ahora y mantenerse alejado de las variables ”$LC_*” a menos que sea absolutamente necesario.
La variable de la configuración regional «$LANG» tiene tres partes: «xx_YY.ZZZZ».
valor de configuración regional significado
xx
YY código del país de la ISO 3166 (en mayúsculas) como «US»
ZZZZ codificación de caracteres, siempre «UTF-8»
Cuadro 1.18: Tres partes del valor de la configuración regional
La forma más común de ejecutar la orden en un intérprete de órdenes es como se muestra.
códigos de la lengua según la ISO 639 (en minúsculas) como «en»
Page 57
Guía de referencia de Debian 29 / 267
recomendación de la configuración
regional
lengua (territorio)
en_US.UTF-8 Inglés (USA)
en_GB.UTF-8 Inglés (Gran Bretaña)
fr_FR.UTF-8 Francés (Francia)
de_DE.UTF-8 Alemán (Alemania)
it_IT.UTF-8 Italiano (Italia)
es_ES.UTF-8 Español (España)
ca_ES.UTF-8 Catalán (España)
sv_SE.UTF-8 Sueco (Suecia)
pt_BR.UTF-8 Portugués (Brasil)
ru_RU.UTF-8 Ruso (Rusia)
zh_CN.UTF-8 Chino (República Popular de China)
zh_TW.UTF-8 Chino (República de China (Taiwan))
ja_JP.UTF-8 Japonés (Japón)
ko_KR.UTF-8 Coreano (República de Corea)
vi_VN.UTF-8 Vietnamita (Vietnam)
Cuadro 1.19: Relación de recomendaciones para la configuración regional
$ echo $LANG en_US.UTF-8 $ date -u Wed 19 May 2021 03:18:43 PM UTC $ LANG=fr_FR.UTF-8 date -u mer. 19 mai 2021 15:19:02 UTC
Aquí, el programa date(1) se ejecuta con valores locales diferentes.
En la primera orden «$LANG» tiene el valor por defecto de la configuración regional «en_US.UTF-8».
En la segunda orden «$LANG» asigna la configuración regional a francés UTF-8 con el valor «fr_FR.UTF-8».
La mayor parte de las órdenes ejecutadas no van precedidas de la definición de variables de entorno. Otra forma alternativa del ejemplo anterior es la que se muestra.
$ LANG=fr_FR.UTF-8 $ date -u mer. 19 mai 2021 15:19:24 UTC
sugerencia
Cuando envíe un informe de error, es una buena idea ejecutar y comprobar el comando bajo la configuración regional ”en_US.UTF-8” si utiliza un entorno distinto al inglés.
Consultar Sección8.1 para obtener más detalles de la configuración regional.
1.5.3. La variable «$PATH»
Cuando escribe una orden en el intérprete de órdenes, este busca la orden en la relación de directorios contenidos en la variable de entorno «$PATH». El valor de la variable de entorno «$PATH» también se le conoce como la ruta de búsqueda del intérprete de órdenes.
Page 58
Guía de referencia de Debian 30 / 267
En la instalación por defecto de Debian, la variable de entorno «$PATH» de las cuentas de usuario puede no incluir «/usr/sbin» y «/usr/sbin». Por ejemplo, la orden ifconfig necesita ser ejecutada con la ruta completa con «/usr/sbin/ifconfig». (Órdenes parecidas como ip están ubicadas en «/usr/bin».)
Puede cambiar la variable de entorno ”$PATH” del shell Bash mediante los archivos ”~/.bash_profile” o ”~/.bashrc”.
1.5.4. La variable «$HOME»
Muchas órdenes almacenan configuraciones específicas del usuario en su directorio principal y cambian su compor­tamiento en función de estas. El directorio principal del usuario es determinado por el valor de la variable de entorno «$HOME».
valor de «$HOME» características de ejecución del programa
/ programa ejecutándose por el proceso init (demonio)
/root
/home/usuario_normal
/home/usuario_normal
/home/usuario_normal
/root
programa ejecutándose desde el intérprete de órdenes del superusuario programa ejecutándose desde el intérprete de órdenes de un usuario normal programa ejecutándose desde el menú en el escritorio gráfico de un usuario normal programa ejecutándose como superusuario con «sudo programa» programa ejecutándose como superusuario con «sudo -H programa»
Cuadro 1.20: Relación de valores de «$HOME»
sugerencia
El intérprete de órdenes sustituye «~/» por el directorio principal del usuario actual, esto es, «$HOME/». El intér­prete de órdenes sustituye «~foo/» por el directorio principal del usuario foo, a saber, «/home/foo/».
Ver Sección12.1.5 si $HOME no está disponible para su programa.

1.5.5. Opciones de la línea de órdenes

Algunas órdenes tienen parámetros. Se llaman opciones a los parámetros que comienzan con «-» o «--» y controlan el comportamiento de la orden.
$ date Thu 20 May 2021 01:08:08 AM JST $ date -R Thu, 20 May 2021 01:08:12 +0900
En este caso, el argumento de la línea de comandos ”-R” cambia el comportamiento de date(1) para mostrar una cadena de fecha compatible con RFC2822.

1.5.6. Expansión de un patrón en el intérprete de órdenes

A menudo querrá que una orden afecte a un grupo de archivos sin escribir el nombre de cada uno de ellos. Para cubrir esta necesidad existe la expansión de patrones de nombres de archivos dentro del intérprete de órdenes glob, (algunas veces también llamado uso de comodines).
Por ejemplo, intente lo siguiente
Page 59
Guía de referencia de Debian 31 / 267
patrón descripción de la regla de encaje
* nombres de archivos que no comienza con «
.* nombres de archivos que comienza con «
? un único carácter
[…]
[a-z]
[^…]
un único carácter que pertenezca al grupo de caracteres entre corchetes un único carácter con cualquier valor comprendido entre «a» y «z» un único carácter que no pertenezca al grupo de caracteres encerrados entre corchetes (excluyendo «^»)
Cuadro 1.21: Patrones para la expansión de nombres de archivos del intérprete de órdenes
$ mkdir junk; cd junk; touch 1.txt 2.txt 3.c 4.h .5.txt ..6.txt $ echo *.txt
1.txt 2.txt $ echo *
1.txt 2.txt 3.c 4.h $ echo *.[hc]
3.c 4.h $ echo .*
. .. .5.txt ..6.txt
$ echo .*[^.]* .5.txt ..6.txt $ echo [^1-3]*
4.h $ cd ..; rm -rf junk
Ver glob(7).
nota
Si prueba «*» en la orden find(1) con «-name» test etc., encajará «.» como parte inicial del nombre de archivo, al contrario que en la expansión de nombres del intérprete de órdenes . (Funcionalidad nueva de POSIX)
nota
BASH puede cambiar el comportamiento de la expansión de nombres de archivo con sus opciones internas como «dotglob», «noglob», «nocaseglob», «nullglob», «extglob», etc. Ver bash(1).

1.5.7. Valor devuelto por la orden

Cada orden devuelve su estado de salida en el valor devuelto (en la variable: «$?»).
estado de salida de una
orden
éxito cero, 0 VERDAD
error diferente de cero, -1 FALSO
valor numérico devuelto valor lógico devuelto
Cuadro 1.22: Códigos de salida de una orden
Por ejemplo, pruebe con lo que se muestra.
Page 60
Guía de referencia de Debian 32 / 267
$ [ 1 = 1 ] ; echo $? 0 $ [ 1 = 2 ] ; echo $? 1
nota
Tenga en cuenta que en el contexto lógico del intérprete de órdenes, éxito es tratado de forma lógica como CIERTO que tiene un valor 0 (cero). Quizá esto sea poco intuitivo y por ello se necesite recordar.

1.5.8. Secuencias de órdenes comunes y redirecciones del intérprete de órdenes

Intentemos recordar las siguientes expresiones como parte de una orden de una única línea.
expresión de la orden descripción
orden &
orden1 | orden2
orden1 2>&1 | orden2
orden1 ; orden2 ejecuta la orden1 y la orden2 de forma secuencial
orden1 && orden2
orden1 || orden2
orden > foo
orden 2> foo
orden >> foo
orden 2>> foo
orden > foo 2>&1
orden < foo envía a la entrada estándar de la orden a un archivo foo
orden << delimitador
orden <<- delimitador
ejecución en segundo plano de la orden en un intérprete de órdenes hijo envía a la tubería la salida estándar de la orden1 a la entrada estándar de la orden2 (se ejecutan de forma concurrente ) envía a la tubería la salida estándar y el error estándar de la orden1 a la entrada estándar de la orden2 (se ejecutan de forma concurrente )
ejecuta la orden1; y si ha tenido éxito, ejecuta la orden2
secuencialmente (devuelve éxito si tanto la orden1 como la orden2 finalizan con éxito)
ejecuta la orden1; si no tiene éxito, se ejecuta la orden2 de forma secuencial (devuelve éxito si orden1 o orden2 se ejecutan con éxito) redirecciona la salida estándar de la orden al archivo foo (y si existe lo sobreescribe) redirecciona el error estándar de orden al archivo foo (sobreescribiendolo) redirecciona la salida estándar de orden al archivofoo (concatenándola) redirecciona el error estándar de orden al archivo foo (concatenándola) redirecciona salida estándar y el error estándar de orden al archivo foo
envía a la entrada estándar de la orden a las líneas siguientes hasta que encuentra un «delimitador» (aquí el documento) envía a la entrada estándar de la orden a las líneas siguientes hasta que se encuentre con el «delimitador» ( en las líneas de entrada se eliminan los tabuladores al inicio)
Cuadro 1.23: Expresiones de una orden
El sistema Debian es un sistema multitarea. Mediante trabajos en segundo plano se pueden ejecutar por parte de los usuario múltiples programas desde un único intérprete de órdenes. La gestión de los procesos en segundo plano se realiza con las órdenes internas: jobs, fg, bg y kill. Por favor, ver las secciones de bash(1) «SIGNALS», «JOB CONTROL» y builtins(1).
Por ejemplo, intente lo siguiente
Page 61
Guía de referencia de Debian 33 / 267
$ </etc/motd pager
$ pager </etc/motd
$ pager /etc/motd
$ cat /etc/motd | pager
Aunque los cuatro ejemplos de redirección del intérprete de órdenes son equivalentes, el último ejemplo ejecuta una orden más cat y desperdicia recursos sin razón alguna.
El intérprete de órdenes permite abrir archivos utilizando la orden interna exec con un descriptor de archivo arbitrario.
$ echo Hello >foo $ exec 3<foo 4>bar # open files $ cat <&3 >&4 # redirect stdin to 3, stdout to 4 $ exec 3<&- 4>&- # close files $ cat bar Hello
Los descriptores de archivo de 0 a 2 están predefinidos.
dispositivo descripción descriptor de archivo
stdin entrada estándar 0
stdout salida estándar 1
stderr error estándar 2
Cuadro 1.24: Descriptores de archivos predefinidos

1.5.9. Alias de órdenes

Usted puede definir alias para las órdenes más utilizadas. Por ejemplo, intente lo siguiente
$ alias la='ls -la'
Ahora, «la» funciona como forma corta de «ls -la» la cual muestra una relación de todos los archivos en el formato largo.
Se pueden enumerar los alias existentes mediante alias (ver el epígrafe «SHELL BUILTIN COMMANDS» de
bash(1)).
$ alias ... alias la='ls -la'
Se puede determinar la ruta exacta o la identidad de la orden mediante «type» (ver el epígrafe «SHELL BUILTIN COMMANDS» de bash(1)).
Por ejemplo, intente lo siguiente
$ type ls ls is hashed (/bin/ls) $ type la la is aliased to ls -la $ type echo echo is a shell builtin $ type file file is /usr/bin/file
Page 62
Guía de referencia de Debian 34 / 267
En el ejemplo anterior ls fue consultado recientemente y «file» no lo fue, de este modo «ls» está indexado, a saber, el intérprete de órdenes tiene un registro interno que determina rápidamente la ubicación de la orden «ls».
sugerencia
Ver Sección9.3.6.

1.6. Operaciones de texto al estilo de Unix

En un entorno de trabajo del estilo de Unix, el tratamiento de texto se realiza mediante el uso de tuberías que unen un conjunto de herramientas para formar una cadena. Esta fue otra de las innovaciones esenciales de Unix.

1.6.1. Herramientas de texto Unix

Algunas herramientas que trabajan con texto se usan muy frecuentemente en un sistema tipo Unix.
No se usan expresiones regulares:
cat(1) concatena archivos y muestra el contenido completo.
tac(1) concatena archivos y sale en sentido inverso.
cut(1) selecciona las partes de las líneas y las salidas.
head(1) muestra la primera parte de los archivos.
tail(1) muestra la última parte de los archivos.
sort(1) ordena las líneas de los archivos de texto.
uniq(1) elimina las líneas duplicadas de un archivo ya ordenado.
tr(1) traduce o borra caracteres.
diff(1) compara archivos línea a línea.
La expresión regular básica (BRE) se utiliza por defecto:
ed(1) es un editor de líneas antiguo.
sed(1) es un editor de flujos.
grep(1) compara el texto con otros patrones.
vim(1) es un editor de pantalla.
emacs(1) es un editor interactivo (en cierta manera amplía BRE).
Las expresiones regulares ampliadas (ERE son utilizadas por:
awk(1) realiza un simple procesamiento de texto.
egrep(1) hace coincidencias de los patrones en el texto.
tcl(3tcl) puede hacer cualquier procesamiento de texto imaginado: Ver re_syntax(3). A menudo se utiliza con tk(3tk).
perl(1) puede hacer cualquier procesamiento de texto que imágenes. Ver perlre(1).
pcregrep(1) del paquete pcregrep empareja texto con el patrón Perl Compatible Regular Expressions (PCRE).
python(1) utilizando el módulo re puede realizar cualquier procesamiento de textos imaginable. Ver «/usr/share/doc/python/html/index.html».
Si no esta seguro de que hacen exactamente estas órdenes, por favor utilice «man orden» para averiguarlo por usted mismo.
Page 63
Guía de referencia de Debian 35 / 267
nota
El orden de clasificación y la expresión de rango dependen de la configuración regional. Si desea obtener un comportamiento tradicional para un comando, use la configuración regional C o la configuración regional C.UTF-8 en lugar de la configuración regional normal UTF-8 (ver Sección8.1).
nota
Las expresiones regulares de Perl(perlre(1)), Perl Compatible Regular Expressions (PCRE) y las expresiones regulares de Python ofrecidas por su módulo re tienen muchas expresiones comunes a las tradicionales ERE.

1.6.2. Expresiones regulares

Las expresiones regulares son utilizadas por muchas herramientas de procesamiento de texto. Son similares a la expansión de nombres de archivo en el intérprete de órdenes, aunque más complicadas y poderosas.
Las expresiones regulares especifican un patrón de encaje y está compuesto por caracteres de texto y metacarac- teres.
Un metacarácter es un carácter que tiene un significado especial. Existen dos tendencias principales, BRE y ERE dependiendo de cada herramienta de texto, como ya se ha descrito.
Emacs utiliza principalmente el tipo de expresión regular BRE pero se ha ampliado para utilizar «+» y «?» como metacaracteres como en ERE. De este modo, no es necesario añadirles el prefijo «\» en las expresiones regulares
de emacs.
grep(1) puede utilizarse para realizar búsquedas de texto por medio de expresiones regulares.
Por ejemplo, intente lo siguiente
$ egrep 'GNU.*LICENSE|Yoyodyne' /usr/share/common-licenses/GPL GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE Yoyodyne, Inc., hereby disclaims all copyright interest in the program
sugerencia
Ver Sección9.3.6.

1.6.3. Sustitución de expresiones

En la sustitución de expresiones, algunos caracteres tiene un significado especial.
Para la cadena de sustitución Perl, se utiliza ”$&” en lugar de ”&” y ”$n” en lugar de ”\n”.
Por ejemplo, intente lo siguiente
$ echo zzz1abc2efg3hij4 | \ sed -e 's/\(1[a-z]*\)[0-9]*\(.*\)$/=&=/' zzz=1abc2efg3hij4= $ echo zzz1abc2efg3hij4 | \ sed -E -e 's/(1[a-z]*)[0-9]*(.*)$/=&=/' zzz=1abc2efg3hij4= $ echo zzz1abc2efg3hij4 | \ perl -pe 's/(1[a-z]*)[0-9]*(.*)$/=$&=/' zzz=1abc2efg3hij4= $ echo zzz1abc2efg3hij4 | \ sed -e 's/\(1[a-z]*\)[0-9]*\(.*\)$/\2===\1/'
Page 64
Guía de referencia de Debian 36 / 267
BRE ERE descripción de la expresión regular
\ . [ ] ^ $ * \ . [ ] ^ $ * metacaracteres comunes \+ \? \( \) \{ \} \| BRE solo «\» escapó metacaracteres
+ ? ( ) { } |
ERE solo no”\ ” escapó de los
metacaracteres
c c que encaja con el no metacarácter «
\c \c
. .
^ ^
$ $
encaja con un carácter literal «c» incluso si «c» representa un metacarácter encaja cualquier carácter incluyendo el de nueva línea posición al comienzo de la cadena de caracteres posición al final de la cadena de caracteres
\< \< posición al comienzo de la palabra \> \> posición al final de la palabra
[abc…] [abc…]
[^abc…] [^abc…]
r* r*
r\+ r+
r\? r?
r1\|r2 r1|r2
encaja cualquier carácter incluido en «abc...» coincide con cualquier carácter excepto en ”abc...” coincide con cero o más expresiones regulares identificadas por ” r ” coinciden con una o varias expresiones regulares identificadas por ”r” coinciden con ninguna o una expresión regular identificada por ”r” encaja una de las expresiones regulares «r1» o «r2» haga coincidir una de las expresiones
\(r1\|r2\) (r1|r2)
regulares identificadas por «r1» o «r2» y tratela como una expresión regular entre
paréntesis
Cuadro 1.25: Metacaracteres para BRE y ERE
expresión sustituida descripción del texto para reemplazar la expresión de reemplazo
& lo que encaja con la expresión regular (usar \& en emacs)
\n
lo que encaja con la n enésima expresión regular entre paréntesis (donde «n» es un número)
Cuadro 1.26: Sustitución mediante expresiones regulares
Page 65
Guía de referencia de Debian 37 / 267
zzzefg3hij4===1abc $ echo zzz1abc2efg3hij4 | \ sed -E -e 's/(1[a-z]*)[0-9]*(.*)$/\2===\1/' zzzefg3hij4===1abc $ echo zzz1abc2efg3hij4 | \ perl -pe 's/(1[a-z]*)[0-9]*(.*)$/$2===$1/' zzzefg3hij4===1abc
En la sustitución de texto, en las diferentes herramientas, prestar especial atención al encaje de las expresiones regulares entre corchetes o paréntesis con las cadenas de caracteres.
Algunos editores permiten la utilización de expresiones regulares para la búsqueda y/o sustitución de texto.
En el intérprete de órdenes se puede escribir una misma orden en varias líneas anteponiendo el caraćter de barra invertida «\» al carácter de nueva línea que será sustituido por el vacío.
Por favor, consultar las páginas de manual de estas órdenes.

1.6.4. Sustituciones globales mediante expresiones regulares

La orden ed(1) permite sustituir todas las ocurrencias de «LA_EXPRESIÓN_REGULAR» por «EL_TEXTO» en el «archivo».
$ ed file <<EOF ,s/FROM_REGEX/TO_TEXT/g w q EOF
La orden sed(1) sustituye todas las ocurrencias de «LA_EXPRESIÓN_REGULAR» por «EL_TEXTO» en el «archivo».
$ sed -i -e 's/FROM_REGEX/TO_TEXT/g' file
La orden vim(1) puede sustituir todas las ocurrencias de «LA_EXPRESIÓN_REGULAR» por «EL_TEXTO» en el «archivo» utilizando las órdenes ex(1).
$ vim '+ %s/FROM_REGEX/TO_TEXT/gc' '+update' '+q' file
sugerencia
La bandera «c» de la orden anterior hace que se pida la confirmación interactiva de cada una de las sustituciones.
Se pueden procesar varios archivos de forma similar («archivo1», «archivo2» y «archivo3») mediante las expresiones regulares de vim(1) o perl(1).
$ vim '+argdo %s/FROM_REGEX/TO_TEXT/gce|update' '+q' file1 file2 file3
sugerencia
La bandera ”e” en lo anterior evita que el error ”No match” rompa un mapeo.
$ perl -i -p -e 's/FROM_REGEX/TO_TEXT/g;' file1 file2 file3
En el ejemplo en perl(1), «-i» es para la edición de cada elemento que encaja con el patrón y «-p» se utiliza para repetir la operación sobre cada uno de los archivos que aparecen como argumentos.
Page 66
Guía de referencia de Debian 38 / 267
sugerencia
El uso del argumento «-i.bak» en vez de «-i» mantiene cada archivo original añadiéndole «.bak» al nombre del archivo. Esto permite deshacer los cambios de forma sencilla si nos hemos equivocado al realizar la sustitución.
nota ed(1) y vim(1) utiliza BRE; perl(1) utiliza ERE.

1.6.5. Extracción de datos en archivos de texto en forma de tabla

Consideremos un archivo de texto llamado «DPL» con los siguientes campos: nombres de los líderes del proyecto Debian con anterioridad a 2004 y su fecha de inicio, utilizando como separador el espacio en blanco.
Ian Murdock August 1993 Bruce Perens April 1996 Ian Jackson January 1998 Wichert Akkerman January 1999 Ben Collins April 2001 Bdale Garbee April 2002 Martin Michlmayr March 2003
sugerencia
Ver «Una breve historia de Debian» para conocer quién es el último líder del proyecto Debian.
Awk se utiliza a menudo para obtener datos de este tipo de archivos.
Por ejemplo, intente lo siguiente
$ awk '{ print $3 }' <DPL # month started August April January January April April March $ awk '($1=="Ian") { print }' <DPL # DPL called Ian Ian Murdock August 1993 Ian Jackson January 1998 $ awk '($2=="Perens") { print $3,$4 }' <DPL # When Perens started April 1996
Los intérprete de órdenes, como Bash, se pueden usar para analizar este tipo de archivos.
Por ejemplo, intente lo siguiente
$ while read first last month year; do
echo $month
done <DPL
... same output as the first Awk example
Aquí la orden interna read usa los caracteres de «$IFS» (separadores internos) para dividir las líneas en palabras.
Si cambia el valor «$IFS» a «:», puede analizar «/etc/passwd» con el intérprete de órdenes de la forma adecuada.
Page 67
Guía de referencia de Debian 39 / 267
$ oldIFS="$IFS" # save old value $ IFS=':' $ while read user password uid gid rest_of_line; do
if [ "$user" = "bozo" ]; then
echo "$user's ID is $uid"
fi
done < /etc/passwd bozo's ID is 1000 $ IFS="$oldIFS" # restore old value
(Para hacer lo mismo con Awk asigne el separador de campos mediante «FS=':'».)
El intérprete de órdenes utiliza IFS para separar los resultados de la expansión de parámetros, sustitución de órdenes y expansiones aritméticas. Las palabras entre comillas dobles o simples no se tienen en cuenta en estas operaciones. El valor por defecto de IFS es la relación espacio, tabulador y nueva_línea.
Tenga cuidado cuando utilice estos trucos en el intérprete de órdenes. Cuando el intérprete de órdenes trabaje en algunas partes de un archivo de órdenes y su entrada pueden ocurrir cosas extrañas.
$ IFS=":," # use ":" and "," as IFS $ echo IFS=$IFS, IFS="$IFS" # echo is a Bash builtin IFS= , IFS=:, $ date -R # just a command output Sat, 23 Aug 2003 08:30:15 +0200 $ echo $(date -R) # sub shell --> input to main shell Sat 23 Aug 2003 08 30 36 +0200 $ unset IFS # reset IFS to the default $ echo $(date -R) Sat, 23 Aug 2003 08:30:50 +0200

1.6.6. Fragmentos de órdenes utilizados con tuberías

Los fragmentos de órdenes siguientes son muy potentes cuando forman parte de una cadena de órdenes unidas por tuberías.
Un archivo de órdenes de una sola línea puede repetirse sobre varios archivos utilizando find(1) y xargs(1) para realizar tareas muy complicadas. Ver Sección10.1.5 y Sección9.4.9.
Cuando la utilización de órdenes de forma interactiva se complica demasiado debe considerarse escribir un archivo de órdenes (ver Sección12.1).
Page 68
Guía de referencia de Debian 40 / 267
fragmento de archivo de órdenes
(escrito en una única línea)
efecto de la orden
find /usr -print lista todos los archivos que se encuentran por debajo de «/usr»
seq 1 100 escribe del 1 al 100
| xargs -n 1 orden
| xargs -n 1 echo
ejecuta la orden de forma repetida para cada elemento de la tubería y utilizando este como argumento divide los elementos de la tubería separados por espacios en líneas
| xargs echo une todas la líneas de la tubería en una
| grep -e
patrón_de_expresión_regular
| grep -v -e
patrón_de_expresión_regular
| cut -d: -f3 -
| awk '{ print $3 }'
| awk -F'\t' '{ print $3 }'
| col -bx
selecciona las líneas de la tubería que encajan con el
patrón_de_expresión_regular
selecciona las líneas de la tubería que no tienen encaje con el
patrón_de_la_expresión_regular
selecciona el tercer campo de cada línea de la tubería utilizando como separado «:» (archivo de contraseñas etc.) selecciona el tercer campo de cada línea de la tubería utilizando como separador espacios en blanco selecciona el tercer campo de cada línea de la tubería utilizando como separador el tabulador elimina los retornos de carro y sustituye los tabuladores por espacios
| expand - sustituye los tabuladores por espacios
| sort| uniq ordena y elimina duplicados
| tr 'A-Z' 'a-z' convierte mayúsculas a minúsculas
| tr -d '\n' concatena las líneas en una sola
| tr -d '\r' elimina el retorno de carro
| sed 's/^/# /' añade «#» al comienzo de cada línea
| sed 's/\.ext//g' elimina «.ext»
| sed -n -e 2p imprime la segunda línea
| head -n 2 - imprimir las primeras dos líneas
| tail -n 2 - imprime las últimas dos líneas
Cuadro 1.27: Relación de fragmentos de órdenes con tuberías
Page 69
Guía de referencia de Debian 41 / 267
Capítulo 2

Gestión de paquetes Debian

nota
Este capítulo se ha escrito según la última distribución estable, cuyo nombre de publicación es: bookworm. La fuente de datos del sistema APT se denomina colectivamente lista de fuentes en este documento . Puede defi­nirse en cualquier parte de los archivos ”/etc/apt/sources.list”, ”/etc/apt/sources.list.d/*.list” o ”/etc/apt/sources.list.d/*.source”.

2.1. Prerequisitos de la gestión de paquetes Debian

2.1.1. Sistema de gestión de paquetes Debian

Debian es una organización constituida por voluntarios que construyen versiones de paquetes binarios precompilados
compatibles basados en software libre y lo distribuyen en su archivo,
El archivo de Debian lo constituyen múltiples nodos espejo a los que se accede por medio de los protocolos HTTP y
FTP. También esta disponible en CD-ROM/DVD.
El actual sistema de gestión de paquetes de Debian que puede utilizar todos estos recursos es Herramienta de
empaquetado avanzada (APT).
El sistema de gestión de paquetes Debian, cuando se usa de forma adecuada desde el archivo, ofrece al usuario la instalación en el sistema de un conjunto de paquetes binarios consistentes. Actualmente existen 74165 paquetes disponibles para la arquitectura amd64.
El sistema de administración de paquetes de Debian tiene una rica historia y muchas opciones para el programa de usuario de front-end y el método de acceso al archivo de back-end que se utilizará. Actualmente, recomendamos lo siguiente.
apt(8) para todas las operaciones de la línea de órdenes, incluida la instalación, eliminación y actualización de
paquetes.
apt-get(8) para llamar desde los archivos de órdenes al sistema de gestión de paquetes de Debian. Es una
opción de reserva en antiguos sistemas Debian en los que apt no esta disponible.
aptitude(8) para la gestión interactiva mediante interfaz de texto para la gestión de los paquetes instalados y
búsquedas sobre los paquetes disponibles
Page 70
Guía de referencia de Debian 42 / 267
paquete popularidad tamaño descripción
dpkg V:912, I:999 6388
apt V:865, I:999 4318
aptitude V:48, I:253 4389
tasksel V:34, I:980 347
unattended-upgrades
gnome-software V:153, I:263 3085 Centro de software para GNOME (front-end GUI APT)
synaptic V:46, I:375 7627 gestor de paquetes gráfico (interfaz de GTK APT)
apt-utils V:379, I:998 1065
apt-listchanges
apt-listbugs V:6, I:8 477 relación de bugs críticos después de cada instalación APT
apt-file V:17, I:67 89
apt-rdepends V:0, I:5 39 relación de dependencias recursivas de los paquetes
V:182, I:278 301
V:358, I:872 398
sistema de gestión de paquetes de bajo nivel para Debian (basado en archivos) Front-end de APT para administrar paquetes con CLI: apt/apt-get/apt-cache Front-end de APT para gestionar paquetes de forma interactiva con consola de pantalla completa: aptitude(8) Front-end de APT para instalar las tareas seleccionadas: tasksel(8) paquete mejorado de APT, para permitir la instalación automática de actualizaciones de seguridad
utilidades de APT: apt-extracttemplates(1), apt-ftparchive(1) y apt-sortpkgs(1) herramienta de notificación de cambios en el histórico de paquetes
utilidad APT para la búsqueda de paquetes — interfaz de línea de órdenes
Cuadro 2.1: Relación de herramientas para la gestión de paquetes de Debian

2.1.2. Configuración de paquetes

Estos son algunos puntos clave para la configuración de los paquetes en el sistema Debian.
Se respeta la configuración manual del administrador del sistema. Dicho de otra forma, por convenio el sistema
de configuración de paquetes no realiza configuraciones de manera intrusíva.
Cada paquete viene con su propio archivo de órdenes para su configuración con un interfaz de usuario estándar
llamado debconf(7) que facilita el proceso de la instalación inicial del paquete.
Los desarrolladores de Debian lo hacen lo mejor posible para que tenga una experiencia de actualización perfecta
a través de los archivos de órdenes para la configuración del paquete.
Las funcionalidades completas del software empaquetado están disponibles para el administrador del sistema. Sin
embargo, aquellas que representan riesgos para la seguridad están deshabilitadas en la instalación por defecto.
Si manualmente activa un servicio peligroso para la seguridad, será el responsable de los riesgos que contenga.
El administrador del sistema puede realizar manualmente configuraciones esotéricas. Esto puede interferir con los
programas de ayuda estándar que se utilizan para la configuración del sistema.

2.1.3. Precauciones principales

aviso
No mezcle paquetes de diferentes fuentes. Probablemente romperá la consistencia entre paquetes del sistema lo que requiere un conocimiento de su gestión interna, como son el compilador ABI, versiones de
bibliotecas, funcionalidades de intérpretes, etc.
El administrador del sistema Debian newbie deberías quedarte con la versión stable (estable) de Debian y aplicar sólo las actualizaciones de seguridad. Hasta que entiendas muy bien el sistema Debian, deberías seguir las siguientes precauciones.
Page 71
Guía de referencia de Debian 43 / 267
No incluyas testing (pruebas) o unstable (inestable) en la lista de fuentes.
No mezcles Debian estándar con otros archivos no Debian como Ubuntu en la lista de fuentes .
No crees ”/etc/apt/preferences”.
No modifiques el comportamiento predeterminado de las herramientas de gestión de los paquetes a través de los
archivos de la configuración sin conocer todas sus repercusiones.
No instales paquetes aleatorios mediante ”dpkg -i random_package”.
No instales nunca paquetes aleatorios mediante ”dpkg --force-all -i random_package”.
No borres ni modifiques los archivos de ”/var/lib/dpkg/”.
no sobreescribas el sistema de archivos al instalar software compilado directamente de su código fuente.
• Si lo necesitas instálalos en «/usr/local» o «/opt».
Los efectos no compatibles causados por violar las precauciones anteriores al sistema de gestión de paquetes de Debian pueden dejar tu sistema inutilizable.
Los administradores serios del sistema Debian responsables de los servidores de una misión crítica deben tomar precauciones adicionales.
No instalar ningún paquete de Debian, incluyendo las actualizaciones de seguridad, sin probarlo con su configu-
ración especifica en un entorno seguro.
• Al final, tu como administrador del sistema, eres el responsable de tu sistema.
• el largo historial de estabilidad del sistema Debian no es una garantía por sí misma.

2.1.4. Conviviendo con actualizaciones continuas

atención
Para sus servidores de producción es recomendable la distribución stable (estable) con sus actuali­zaciones de seguridad. También es recomendable para los equipos de escritorio a los que quiera dedicar poco tiempo en su administración.
A pesar de mis advertencias anteriores, muchos lectores de este documento pueden desear ejecutar las suites testing (pruebas) o unstable (inestable) más nuevas.
La iluminación de las siguientes secciones salva a las personas de la eterna lucha kármica de actualizar el infierno y las dejan llegar al nirvana de Debian.
Esta lista está destinada al entorno de escritorio self-administered.
Utilice la suite testing ya que es prácticamente la versión rolling -continua- gestionada automáticamente por la
infraestructura de control de calidad del archivo de Debian, como la integración continua de Debian, la prácticas de
carga solo de fuente, y el seguimiento de transición de biblioteca. Los paquetes de la suite testing se actualizan
con la suficiente frecuencia para ofrecer las funciones más recientes.
Establece el nombre de código correspondiente al conjunto testing (”trixie” durante el ciclo de publicación
bookworm-as-stable) en la lista de las fuentes.
Actualiza manualmente este nombre en clave en la lista de fuentes al nuevo solo después de evaluar la situación
durante aproximadamente un mes después del lanzamiento de la suite principal. La lista de los correos de los
usuarios y los desarrolladores de Debian también es una buena fuente de información para esto.
Page 72
Guía de referencia de Debian 44 / 267
No se recomienda el uso de la suite inestable. La suite inestable es buena para depurar paquetes co­mo desarrollador pero tiende a exponerle a riesgos innecesarios para el uso normal del escritorio. Aunque la suite inestable del sistema Debian parece muy estable la mayoría de las veces, ha habido algunos problemas con paquetes y algunos de ellos no eran tan triviales de resolver.
Aquí algunas ideas de las medidas de precaución básicas para asegurar una recuperación rápida y fácil de los fallos en los paquetes Debian.
Hacer el sistema de arranque dual instalando la suite stable del sistema Debian en otra partición.
Ten a mano el CD de instalación para un arranque de recuperación del sistema.
Considera instalar apt-listbugs para comprobar la información del Sistema de seguimiento de errores de De-
bian (BTS) antes de la actualización.
Aprender la infraestructura del sistema de los paquetes lo suficiente como para solucionar un problema
atención
Si no puede tomar ninguna de estas precauciones, probablemente no estés listo para las versiones de prueba e inestables.

2.1.5. Fundamentos del archivo de Debian

sugerencia
Las directrices oficiales del archivo de Debian están definidas en el Manual de Directrices Debian, Capítulo 2 - El
archivo de Debian.
Examinemos el archivo de Debian desde el punto de vista de un usuario del sistema.
Para un usuario del sistema, se accede al archivo de Debian usando el sistema APT.
El sistema APT especifica tu fuente de datos como la lista de fuentes y se describe en sources.list(5).
Para el sistema bookworm con el típico acceso HTTP, la lista de las fuentes al estilo de una línea como la siguiente:
deb http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free deb-src http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free
deb http://security.debian.org/debian-security bookworm-security main non-free-firmware ←-
contrib non-free
deb-src http://security.debian.org/debian-security bookworm-security main non-free-firmware ←-
contrib non-free
Alternativamente, la lista de fuentes equivalente en formato deb822 es la siguiente.
Types: deb deb-src URIs: http://deb.debian.org/debian/ Suites: bookworm Components: main non-free-firmware contrib non-free
Types: deb deb-src URIs: http://security.debian.org/debian-security/ Suites: bookworm-security Components: main non-free-firmware contrib non-free
Los puntos clave de las listas de las fuentes son los siguientes.
Page 73
Guía de referencia de Debian 45 / 267
Formato de una sola línea
• Tus archivos con la definición se encuentran en los archivos ”/etc/apt/sources.list” y ”/etc/apt/sources.list.d/*.list”.
• Cada línea define la fuente de los datos para el sistema APT.
• La línea ”deb” define el paquete binario.
• La línea ”deb-src” define los paquetes fuente.
• El primer argumento es la URL root del archivo de Debian.
• El segundo argumento es el nombre de la distribución utilizando el nombre de la suite o el nombre en clave.
• el tercero y siguientes son la relación de nombres de área válidos del archivo de Debian.
El estilo del formato es Deb822
• Tus definiciones se encuentran en los archivos ”/etc/apt/sources.list.d/*.source”.
• Cada bloque de líneas separado por una línea en blanco define la fuente de los datos para el sistema APT.
• ”Types:” define la lista de tipos como ”deb” y ”deb-src”.
• ”URIs:” define la lista de URIs raíz del archivo de Debian.
• ”Suites:” define la lista de los nombres de la distribución utilizando el nombre de la suite o el nombre en clave.
• ”Components:” define la lista de los nombres del área de los archivos válidos de Debian.
La definición para ”deb-src” puede omitirse con seguridad si es sólo para aptitude que no accede a los metadatos relacionados con la fuente. Acelera las actualizaciones de los metadatos del archivo.
La dirección URL puede ser ”https://”, ”http://”, ”ftp://”, ”file://”, ....
Las líneas que empiezan por ”#” son comentarios y se ignoran. Aquí, tiendo a usar el nombre de código ”bookworm” o ”trixie” en lugar del nombre de la suite ”stable” (estable)
o ”testing” (pruebas) para evitar sorpresas cuando se publique la siguiente stable (estable).
sugerencia
Si se utiliza sid en el ejemplo anterior en lugar de bookworm”, la línea deb: http://security.debian.org/ ...” o su contenido equivalente en deb822 para las actualizaciones
de seguridad en la lista de fuentes no es necesaria. Esto se debe a que no existe un archivo de actualizaciones de seguridad para ”sid” (inestable).
Aquí está la lista de direcciones URL de las páginas del archivo de Debian y el nombre de la suite o nombre del código usado en el fichero de configuración después de la publicación de bookworm.
atención
Sólo la versión stable (estable) pura con actualizaciones de seguridad proporciona la mejor estabilidad. Ejecutar principalmente la versión stable (estable) mezclada con algunos paquetes de testing (prue­bas) o unstable (inestable) es más arriesgado que ejecutar la versión unstable (inestable) pura por desajuste de versiones de librerías, etc. Si realmente necesita la última versión de algunos programas de la versión stable (estable), utilice los paquetes de los servicios stable-updates y backports (consulte Sec­ción2.7.4). Estos servicios deben utilizarse con especial cuidado.
atención
Por defecto debería tener únicamente una de las distribuciones stable (estable), testing (pruebas) o unstable (inestable) en la línea «deb». Si se tiene en línea «deb» una combinación de las distri­buciones stable (estable), testing (pruebas) e unstable (inestable) los programas APT son más lentos y sólo la última distribución es útil. El uso de múltiples distribuciones requiere utilizar el archivo
/etc/apt/preferences
«
» con un fin específico (consulte Sección2.7.7).
Page 74
Guía de referencia de Debian 46 / 267
nombre de pu­blica-
finalidad del repositorio
URL del archivo
nombre del paquete
ción
https://deb.debian.org/-
debian/
https://deb.debian.org/-
debian/
https://deb.debian.org/-
debian/
https://deb.debian.org/-
debian/
https://deb.debian.org/-
debian/
https://deb.debian.org/-
debian/
https://deb.debian.org/-
debian/
http://security.debian.org/-
debian-security/
http://security.debian.org/-
debian-security/
stable bookworm
testing trixie
unstable sid
«experimental»N/A
stable-proposed-updatesbookworm-proposed-updatesActualizaciones para la próxima versión stable (opcional)
stable-updatesbookworm-updates
stable-backportsbookworm-backports
stable-securitybookworm-security
testing-securitytrixie-securityEl equipo de seguridad no lo utiliza ni lo apoya activamente
Liberación stable cuasiestática tras exhaustivas comprobaciones Liberación dinámica de testing tras comprobaciones decentes y cortas esperas Liberación dinámica unstable tras comprobaciones mínimas y sin esperas Experimentos previos al lanzamiento por parte de los desarrolladores (opcional, sólo para desarrolladores)
Subconjunto del conjunto stable-proposed-updates que necesita actualizaciones urgentes, como los datos de la zona horaria (opcional) Colección aleatoria de paquetes recompilados, principalmente de la versión testing (opcional) Actualizaciones de seguridad para la versión stable (importante)
Cuadro 2.2: Relación de sitios de archivo de Debian
sugerencia
Para el sistema Debian con la suite stable (estable), es una buena idea incluir el contenido con ”http://security.debian.org/” en la lista de las fuentes para habilitar las actualizaciones de seguridad como en el ejemplo anterior.
nota
El equipo de seguridad de Debian ha corregido los errores de seguridad del archivo estable . Esta actividad ha sido bastante rigurosa y confiable. Los errores del archivo de pruebas pueden ser corregidos por el equipo de seguridad de pruebas de Debian. Por varias razones , esta actividad no es tan rigurosa como aquella para
estable y es posible que deba esperar la migración de los paquetes inestables corregidos al archivo de prueba . Los errores del archivo inestable son corregidos por el mantenedor individual. Los paquetes inestables mantenidos activamente suelen estar en bastante buen estado gracias a las últimas correcciones
de seguridad ascendentes. Consulte las Preguntas frecuentes sobre seguridad de Debian para saber cómo Debian maneja los errores de seguridad.
El número de paquetes que se indica es para la arquitectura amd64. El área main proporciona el sistema Debian (ver Sección2.1.6).
Al navegar por cada URL junto a dists o pool conocerá mejor la organización del archivo de Debian.
Se puede nombrar una distribución de dos formas, por la distribución o nombre de publicación. La palabra distribución se usa alternativamente como sinónimo de la suite en muchas documentaciones. La relación entre la suite y el nombre en clave se puede resumir de la siguiente manera.
La historia de los nombres de publicación se cuenta en ¿Debian FAQ: 6.2.1 Qué otros nombres clave se han usado
en el pasado?
Page 75
Guía de referencia de Debian 47 / 267
área
número de paquetes
criterio de componente del paquete
main 72806 Compatible con DFSG y sin dependencia de non-free
non-free-firmware 39
no compatible con DFSG, firmware necesario para una experiencia razonable de la instalación del sistema
contrib 356 cumplen con DFSG pero con dependencias con non-free
non-free 964
No cumple con las Directrices de software libre de Debian (DFSG) y no está en non-free-firmware
Cuadro 2.3: Relación de áreas de archivo Debian
Temporización
después de la
publicación de
bookworm
después de la
publicación de trixie
distribución = stable (estable)
nombre de publicación =
bookworm
nombre de publicación =
trixie
distribución = testing (prueba)
nombre de publicación =
trixie
nombre de publicación =
forky
distribución = unstable (inestable)
nombre de publicación =
sid
nombre de publicación =
sid
Cuadro 2.4: Relación entre los nombres de publicación y distribución
En la terminología de archivo de Debian de forma estricta, se usa la palabra «sección» en concreto para la catego­rización de paquetes por el tipo de aplicación. (Sin embargo las palabras «sección principal» algunas veces se usa para describir el área del archivo Debian llamado «main».)
Cada vez que un desarrollador Debian (DD) realiza una nueva entrega a la distribución «inestable» (a través del procesamiento de entrada), se le pide que se asegure que la entrega de paquetes sea compatible con el último conjunto de paquetes de la distribución «inestable».
Si un desarrollador de Debian con su actualización rompe la compatibilidad de alguna biblioteca importante de forma intencionada etc, normalmente se anuncia en la lista de correo de desarrollo (debian-devel mailing list) etc.
Después de que un conjunto de paquetes se han movido de forma automática desde la distribución «inestable» a la distribución «en pruebas» el archivo de órdenes de mantenimiento que lo movió comprueba su madurez (más de 2-10 días de antigüedad), el estado RC de los informes de errores de los paquetes y comprueba su compatibilidad con el último conjunto de paquetes de la distribución «en pruebas». Este proceso hace que la distribución «en pruebas» este actualizada y se pueda utilizar.
A través del proceso gradual de congelación de archivos dirigido por el equipo de lanzamiento, el archivo prueba se madura hasta hacerlo completamente consistente y libre de errores con algunas intervenciones manuales. A continuación, se crea la nueva versión estable asignando el nombre en clave del antiguo archivo prueba al nuevo archivo estable y creando el nuevo nombre en clave para el nuevo archivo prueba. El contenido inicial del nuevo archivo prueba es exactamente el mismo que el del nuevo archivo estable.
Tanto los repositorios unstable (inestable) como los testing (prueba) pueden sufrir fallos temporales causados por varios factores.
Los paquetes rotos se suben al repositorio (ver unstable (inestable) )
Retrasos en la recepción de nuevos paquetes para archivar (principalmente para unstable (inestable))
Problemas con el tiempo de sincronización de los archivos (tanto para testing (pruebas) como los unstable
(inestable))
Acciones manuales sobre el archivo como la eliminación de paquetes (generalmente para testing (pruebas))
etc.
Así que si decide usar esos archivos, debe ser capaz de arreglar o indagar sobre este tipo de problemas.
Page 76
Guía de referencia de Debian 48 / 267
atención
Durante unos pocos meses después de una nueva versión stable, la mayoría de los usuarios de escritorio deberían usar el archivo stable con sus actualizaciones de seguridad incluso si normalmente usan los archivos unstable o testing. Para este periodo de transición, tanto los archivos unstable como los archivos testing no son buenos para la mayoría de la gente. Es difícil mantener su sistema en buenas condiciones de funcionamiento con el archivo unstable ya que sufre oleadas de actualizaciones impor­tantes para los paquetes principales. El archivo testing tampoco es útil ya que contiene casi el mismo contenido que el archivo stable sin su soporte de seguridad (Debian testing-security-announce 2008-12). Después de un mes más o menos, los archivos unstable o testing pueden llegar a ser útiles si se tiene cuidado.
sugerencia
Al utilizar la distribución testing «en pruebas» el problema causado por la eliminación de un paquete normalmente se soluciona temporalmente instalando el paquete correspondiente de la distribución unstable «inestable» que se carga para corregir el error.
Ver el Manual de Directrices Debian para obtener más información sobre las definiciones del archivo.
«Secciones»
«Prioridades»
«Sistema base»
«Paquetes esenciales»

2.1.6. Debian es 100 % software libre

Debian es 100 % software libre ya que:
Debian instala por defecto únicamente software libre para respetar las libertades del usuario.
Debian proporciona únicamente software libre en el área main.
Debian recomienda ejecutar únicamente el software libre del área main.
Ningún paquete en main depende ni recomienda paquetes en no libre ni el firmware no libre ni contribución.
Alguien se pregunta si los dos hechos siguientes se contradicen entre sí.
«Debian se mantendrá 100 % libre». (Primera clausula del Contrato Social de Debian)
Los servidores Debian alojan algunos paquetes non-free-firmware, non-free y contrib.
Esto no resulta contradictorio, por lo siguiente.
El sistema Debian es 100 % libre y sus paquetes están albergados en los servidores Debian en main
Los paquetes fuera del sistema Debian están alojados en los servidores de Debian en las áreas non-free,
non-free-firmware y contrib.
Se explica de forma precisa en las clausulas cuarta y quinta del Contrato Social de Debian:
Nuestra prioridad son nuestros usuarios y el software libre
Page 77
Guía de referencia de Debian 49 / 267
• Nos guiaremos por las necesidades de nuestros usuarios y de la comunidad del software libre. Sus intereses serán una prioridad para nosotros. Daremos soporte a las necesidades de nuestros usuarios para que puedan trabajar en muchos tipos distintos de entornos de trabajo. No pondremos objeciones al software no libre que vaya a ejecutarse sobre Debian ni cobraremos a las personas que quieran desarrollar o usar ese tipo de software (no libre). Permitiremos a otros crear distribuciones de valor añadido basadas en Debian sin cobrarles nada por ello. Es más, entregaremos un sistema integrado de alta calidad sin restricciones legales que pudieran prevenir este tipo de uso.
Trabajos que no siguen nuestros estándares de software libre
• Reconocemos que algunos de nuestros usuarios requieren el uso de trabajos que no se ajustan a las Directrices de Software Libre de Debian. Hemos creado las áreas ”non-free”, ”non-free-firmware” y ”contrib” en nuestro archivo para estos trabajos. Los paquetes de estas áreas no forman parte del sistema Debian, aunque han sido configurados para su uso con Debian. Animamos a los fabricantes de CDs a que lean las licencias de los paquetes en estas áreas y determinen si pueden distribuir los paquetes en sus CDs. Así, aunque los trabajos que no son libres no forman parte de Debian, apoyamos su uso y proporcionamos infraestructura para los paquetes que no son libres (como nuestro sistema de seguimiento de fallos y listas de correo). Los medios oficiales de Debian pueden incluir firmware que no forma parte del sistema Debian para permitir el uso de Debian con hardware que requiera dicho firmware.
nota
El texto actual del 5º término en el actual Contrato Social Debian 1.2 es ligeramente diferente del texto anterior. Esta desviación editorial es intencionada para hacer consistente este documento de usuario sin cambiar el contenido real del Contrato Social.
Los usuarios deben ser conscientes de los riesgos de utilizar paquetes de las zonas non-free, non-free-firmware y contrib:
restricciones a la libertad con dichos paquetes
falta de soporte de Debian para dichos paquetes (Debian no puede ayudar al software propietario por no tener acceso a su código fuente)
contagio al 100 % del sistema libre Debian
Las Directrices de Software Libre Debian son los estándares del software libre de Debian. Debian entiende «software» en un ámbito amplio, incluidos los documentos, firmware, logotipos y materia gráfico de los paquetes. Esto hace que el estándar de software libre de Debian sea uno de los más estrictos.
Los paquetes típicos non-free, non-free-firmware y contrib incluyen paquetes de libre distribución de los siguientes tipos:
Paquetes de documentación que cumplen la Licencia de Documentación Libre GNU con secciones fijas como las de GCC y Make (la mayor parte se encuentran en la secciónnon-free/doc.)
Paquetes de firmware que contienen datos binarios sin fuente como los listados en Sección9.10.5 como non-free-firmware. (La mayoría se encuentran en la sección non-free-firmware/kernel).
Paquetes de juegos y tipos de letra con restricciones para su uso comercial y/o modificación de su contenido
Por favor, ten en cuenta que el número de paquetes non-free, non-free-firmware y contrib es inferior al 2 % de los paquetes main. Permitir el acceso a las áreas non-free, non-free-firmware y contrib no oculta el origen de los paquetes. El uso interactivo a pantalla completa de aptitude(8) le proporciona visibilidad completa y control sobre qué paquetes se instalan y desde qué área lo hacen. Para mantener tu sistema tan libre como desees.
Page 78
Guía de referencia de Debian 50 / 267

2.1.7. Dependencias de paquetes

El sistema Debian proporciona un conjunto consistente de paquetes binarios a través de un mecanismo de declara­ción de dependencia binaria versionada en sus campos de archivo de control. Aquí hay algunas definiciones simples de ellos.
”Depende”
• Declara una dependencia obligatoria y es obligatorio que todos los paquetes enumerados sean instalados al mismo tiempo o que estén instalados previamente.
«Predepende» (Pre-depends)
• Son como las dependencias, con la excepción de que es obligatorio que estén instalados completamente con anterioridad.
«Recomendado» (Recommends)
• Determina una dependencia fuerte, pero no obligatoria. La mayoría de los usuarios no querrán instalar el paquete al menos que todos los paquetes enumerados en este campo estén instalados.
«Sugiere»
• Declara una dependencia débil. Muchos usuario podrían beneficiarse de su instalación si bien tendrán una fun­cionalidad suficiente sin ellos.
«Mejora» (Enhances)
• Declara una dependencia débil como Sugerida pero va en la dirección contraria.
«Rompe» (Breaks)
• Declara una incompatibilidad, generalmente con una versión concreta. La solución más común es actualizar todos los paquetes que se encuentran enumerados en este campo.
«Incompatibles» (Conflicts)
• Declara su total incompatibilidad. Todos los paquetes enumerados en este campo deben ser eliminados para conseguir instalar el paquete.
«Sustituye» (Replaces)
• Se declara cuando los archivos instalados por el paquete sustituyen a los archivos de los paquetes que se enumeran.
«Proporciona» (Provides)
• Se declara cuando el paquete proporciona todos los archivos y funcionalidades de los paquetes enumerados.
nota
Tener en cuenta, que lo correcto es definir «Proporciona», «Imcompatible» y «Sustituye» a la vez en el caso de un paquete virtual. Esto asegura que solo un paquete real que proporciona el virtual puede ser instalado a la vez.
La definición «oficial», incluyendo la dependencia del código fuente, está en Manual de directrices de Debian: Capítulo
7 - Declaración de relaciones entre paquetes.
Page 79
Guía de referencia de Debian 51 / 267

2.1.8. Flujo de hechos de las órdenes de gestión de paquetes

Aquí hay un resumen del flujo de hechos simplificado del manejo de un paquete por parte de APT.
«Update» («apt update», «aptitude update» o «apt-get update»):
1. Recupera los metadatos del archivo remoto
2. Reconstruye y actualiza la copia local de los metadatos del archivo que utiliza APT
«Upgrade» («apt upgrade» y «apt full-upgrade» o «aptitude safe-upgrade» y «aptitude full-upgrade» o «apt-get upgrade» y «apt-get dist-upgrade»):
1. Seleccione una versión candidata, que instala paquetes que suelen ser las últimas versiones disponibles
(consulte Sección2.7.7 para conocer las excepciones)
2. Realiza la resolución de dependencias del paquete
3. Recupera del archivo remoto los paquetes binarios que se han seleccionado si la versión candidata es dife-
rente de la versión instalada
4. Desempaqueta los paquetes binarios recuperados
5. Ejecuta el archivo de órdenes preinst
6. Instala los archivos binarios
7. Ejecuta el archivo de órdenes postinst
«Install» («apt install …», «aptitude install …» o «apt-get install …»):
1. Selecciona los paquetes enumerados en la línea de comando
2. Realiza la resolución de dependencias del paquete
3. Recupera del repositorio remoto los archivos binarios que se han seleccionado
4. Desempaqueta los paquetes binarios recuperados
5. Ejecuta el archivo de órdenes preinst
6. Instala los archivos binarios
7. Ejecuta el archivo de órdenes postinst
«Remove» («apt remove …», «aptitude remove …» o «apt-get remove …»):
1. Selecciona los paquetes enumerados en la línea de comando
2. Realiza la resolución de dependencias del paquete
3. Ejecuta el archivo de órdenes prerm
4. Elimina los archivos instalados excepto los archivos de configuración
5. Ejecuta el archivo de órdenes postrm
«Purge» («apt purge …», «aptitude purge …» o «apt-get purge …»):
1. Selecciona los paquetes enumerados en la línea de comando
2. Realiza la resolución de dependencias del paquete
3. Ejecuta el archivo de órdenes prerm
4. Elimina los archivos instalados incluidos los archivos de configuración
5. Ejecuta el archivo de órdenes postrm
Aquí, se han omitido de forma intencionada los detalles técnicos por el bien del panorama general.
Page 80
Guía de referencia de Debian 52 / 267

2.1.9. Soluciones a problemas básicos en la gestión de paquetes

Se debe leer la excelente documentación oficial. El primer documento a leer es el específico de Debian ”/usr/share/doc/package_name/README.Debian”. También otra documentación en ”/usr/share/doc/package_name/”. Si se configura el shell en Sección1.4.2, ingresar los siguientes comandos.
$ cd package_name $ pager README.Debian $ mc
Para obtener información especifica puede que necesite instalar el paquete de documentación correspondiente con el sufijo «-doc».
Si tiene problemas con un paquete concreto, asegúrese de comprobar primero el sistema de seguimiento de errores
Debian (BTS).
sitio web orden
Página principal de el sistema
de seguimiento de errores Debian (BTS)
El informe de errores con el nombre de un paquete El informe del error, si se conoce su número de error
sensible-browser «https://bugs.debian.org/»
sensible-browser «https://bugs.debian.org/nombre_del_paquete» sensible-browser «https://bugs.debian.org/número_de_error»
Cuadro 2.5: Relación de los principales sitios web para resolver problemas de un paquete concreto
Búsqueda en Google incluyendo alguno de los siguientes criterios de búsqueda «site:debian.org», «site:wiki.debian.org», «site:lists.debian.org», etc.
Cuando presente un informe de error, por favor utilice la orden reportbug(1).

2.1.10. Como seleccionar paquetes Debian

Cuando encuentre más de 2 paquetes similares y se pregunte cuál instalar sin el esfuerzo de ”prueba y error”, hay que aplicar el sentido común. Creo que los siguientes puntos son las características que debe tener el paquete preferido.
Esencial: si > no
Área: main > contrib > non-free
Prioridad: required > important > standard > optional > extra
Tareas: paquetes enumerados como tareas como «Entorno de escritorio«
Los paquetes se eligen por paquetes que dependen de ellos (por ejemplo, gcc depende de gcc-10)
Estadísticas: a mayor número de votos e instalaciones
Registro de cambios: actualizaciones regulares del desarrollador
BTS: sin errores RC (ni críticos, ni graves, ni errores leves)
BTS: atención ofrecida por el desarrollador a los informes de errores
BTS: mayor número de errores solucionados recientemente
BTS: menor número de errores que no sean nuevas funcionalidades
Debian comenzó como un proyecto voluntario con un modelo de desarrollo distribuido, sus repositorios contienen muchos paquetes con diferentes objetivos y calidad. Se deben tomar las propias decisiones de qué hacer con ellos.
Page 81
Guía de referencia de Debian 53 / 267

2.1.11. Cómo hacer frente a requisitos contradictorios

Cualquiera que sea la suite del sistema Debian que decidas usar, puede que aún desees ejecutar las versiones de los programas que no están disponibles en esa suite. Incluso si encuentras paquetes de dichos programas en otras suites de Debian o en otros recursos no Debian, sus requisitos pueden entrar en conflicto con tu sistema Debian actual.
Aunque puedes modificar el sistema de gestión de los paquetes con la técnica apt-pinning, etc., tal y como se describe en Sección2.7.7 para instalar estos paquetes binarios no sincronizados, estos métodos de modificación sólo tienen un uso limitado, ya que pueden romper estos programas y tu sistema.
Antes de instalar a la fuerza estos paquetes no sincronizados, deberías buscar todas las soluciones alternativas más seguras disponibles que sean compatibles con tu sistema Debian actual.
Instala estos programas utilizando los correspondientes paquetes binarios ”sandboxed” (ver Sección7.7).
• Muchos programas, en su mayoría GUI, como LibreOffice y las aplicaciones GNOME, están disponibles como paquetes Flatpak, Snap, o AppImage.
Crea un entorno chroot o similar y ejecuta dichos programas en él (consulta Sección9.11).
• Los comandos CLI se pueden ejecutar fácilmente bajo chroot compatible (ver Sección9.11.4).
• Se pueden probar fácilmente múltiples entornos de escritorio y completos sin reiniciar (ver Sección9.11.5).
Construye tu mismo las versiones que deseas de los paquetes binarios que sean compatibles con tu sistema Debian actual.
• Se trata de una tarea no trivial (ver Sección2.7.13).

2.2. Operaciones básicas de la gestión de paquetes

Las operaciones de gestión de paquetes basadas en repositorios en el sistema Debian pueden realizarse mediante muchas herramientas de gestión de paquetes basadas en APT disponibles en el sistema Debian. Aquí, explicamos tres herramientas básicas para la gestión de paquetes: apt, apt-get / apt-cache y aptitude.
Para realizar las operaciones de gestión de paquetes que incluyen su instalación o la actualización de su metainfor­mación necesitará privilegios de superusuario.
2.2.1. apt vs. apt-get / apt-cache vs. aptitude
A pesar de que aptitude es una herramienta interactiva muy amigable que utilizo personalmente por defecto, debe tener en cuenta algunas advertencias:
la orden aptitude no es recomendable para actualizaciones del sistema entre distribuciones del sistema Debian stable (estable) tras la publicación de una distribución nueva .
• Está recomendado la utilización de «apt full-upgrade» o «apt-get dist-upgrade». Ver el Error #411280.
La orden aptitude algunas veces recomienda la eliminación masiva de paquetes para la actualización del sis­tema Debian testing (pruebas) o unstable (inestable).
• Esta situación ha aterrado a muchos administradores de sistema. No se asuste.
• Parece causado principalmente por la distorsión de dependencias o recomendaciones de paquetes por meta­paquetes como gnome-core.
• Se resuelve eligiendo «Cancel pending actions» en el menú de órdenes de aptitude, saliendo de aptitude y utilizando «apt full-upgrade».
Page 82
Guía de referencia de Debian 54 / 267
Las órdenes apt-get y apt-cache son las herramientas más básicas basadas en APT para la gestión de paquetes .
apt-get y apt-cache ofrecen únicamente interfaz de usuario por línea de órdenes.
apt-get es más adecuado para la actualización principal del sistema entre distribuciones, etc.
apt-get tiene un motor robusto para la resolución de dependencias entre los paquetes.
apt-get necesita menos recursos hardware. Utiliza menos memoria y se ejecuta más rápido.
apt-cache tiene un sistema estándar de búsqueda que utiliza expresiones regulares sobre el nombre y la des-
cripción del paquete.
apt-get y apt-cache permiten gestionar varias versiones de mismo paquete utilizando /etc/apt/preferences aunque es bastante difícil de manejar.
La orden apt es un interfaz de alto nivel para la gestión de paquetes desde la línea de órdenes. Es un recubrimiento de apt-get, apt-cache y órdenes parecidas ideado para que las utilice el usuario final y mejorar por defecto algunas opciones de uso interactivo.
apt tiene una barra de progreso cuando se instalan paquetes mediante apt install.
por defecto apt borra los paquetes .deb descargados en la caché después de instalarlos con éxito
sugerencia
Se recomienda la utilización de la nueva orden apt(8) para el uso interactivo y utilizar apt-get(8) y apt-cache(8) para los archivos de órdenes.
La orden aptitude es la herramienta de gestión de paquetes basada en APT más flexible.
aptitude tiene un interfaz de usuario interactivo a pantalla completa.
aptitude también posee un interfaz de usuario por línea de órdenes.
aptitude esta más pensado para operaciones de la gestión diaria interactiva de paquetes como examinar los
paquetes instalados y buscar entre los paquetes disponibles.
aptitude necesita más recursos hardware. Utiliza más memoria y es más lenta en ejecución.
aptitude tiene un sistema de búsqueda mejorado basado en expresiones regulares sobre metainformación de
paquetes.
aptitude permite gestionar múltiples versiones de paquetes sin utilizar /etc/apt/preferences y es muy intuitivo.

2.2.2. Operaciones básicas de gestión de paquetes utilizando la línea de órdenes

Aquí están algunas operaciones básicas para la gestión de paquetes por medio de la línea de órdenes utilizando
apt(8), aptitude(8) y apt-get(8) /apt-cache(8). apt / apt-get y aptitude se pueden mezclar sin más problemas. La orden «aptitude why expresión_regular» puede mostrar mas información si se utiliza «aptitude -v
why expresión_regular». Utilizando «apt rdepends paquete» o «apt-cache rdepends paquete» se
puede obtener información parecida. Cuando se ejecuta la orden aptitude en modo de línea de órdenes y aparece algún problema como un conflicto
entre paquetes, si pulsa la tecla «e» como respuesta al cursor puede cambiar al modo interactivo a pantalla completa.
Page 83
Guía de referencia de Debian 55 / 267
Sintaxis de apt
apt update
Sintaxis de
aptitude
aptitude update aptitude
apt install foo
install foo
apt upgrade
apt full-upgrade
aptitude safe-upgrade aptitude full-upgrade aptitude
apt remove foo
remove foo
apt autoremove N/A
apt purge foo
apt clean
apt autoclean
apt show foo
apt search
expresión_regular
aptitude purge foo
aptitude clean aptitude autoclean
aptitude show foo
aptitude search
expresión_regular
aptitude
N/A
why
expresión_regular
aptitude
N/A
why-not
expresión_regular
apt list
--manual-installed
aptitude search '~i!~M'
Sintaxis de
descripción
apt-get/apt-cache
apt-get update apt-get install foo apt-get upgrade apt-get dist-upgrade apt-get remove foo apt-get autoremove
actualiza la metainformación de los paquetes
instala la versión candidata del paquete «foo» y sus dependencias
actualiza los paquetes ya instalados a las nuevas versiones candidatas sin eliminar ningún paquete instala nuevas versiones candidatas de paquetes instalados mientras elimina los paquetes si es necesario
elimina el paquete «foo» sin eliminar sus archivos de configuración
elimina los paquetes autoinstalados que ya no son necesarios
apt-get purge
elimina el paquete «foo» y sus archivos de configuración foo apt-get clean apt-get autoclean
limpia por completo el repositorio local de los archivos de
paquetes descargados
limpia el repositorio local de los archivos de paquetes
descargados que son obsoletos
apt-cache show
muestra información detallada sobre el paquete «foo» foo apt-cache search
busca paquetes que concuerden con expresión_regular
expresión_regular
N/A
N/A
apt-mark showmanual
argumenta la razón por la que el paquete que concuerda con la
expresión_regular debe instalarse
argumenta la razón por la que el paquete que concuerda con la
expresión_regular no debe instalarse
lista los paquetes instalados manualmente
Cuadro 2.6: Operaciones básicas de gestión de paquetes utilizando la línea de órdenes apt(8), aptitude(8) y apt-get(8)/apt-cache(8)
Page 84
Guía de referencia de Debian 56 / 267
nota
Aunque la orden aptitude proporciona funcionalidades sofisticadas como un mejor motor de resolución de de­pendencias de paquetes, su complejidad ha causado (y todavía puede causar) algunos problemas como el Error
#411123, el Error #514930 y el Error #570377. En caso de duda, por favor, utilice las órdenes apt, apt-get y
apt-cache en vez de la orden aptitude.
Puede añadir opciones después de la orden «aptitude».
opción de la orden descripción
-s simula el resultado de la orden
-d descarga únicamente pero no instala o actualiza
-D
Cuadro 2.7: Opciones más importantes de la orden aptitude(8)
Para más información consulte aptitude(8) y «aptitude user’s manual» en «/usr/share/doc/aptitude/README».
muestra aclaraciones breves antes de la instalación o eliminación automáticos

2.2.3. Uso interactivo de aptitude

Para la administración de paquetes interactivos, inicia aptitude en modo interactivo desde el indicador de shell de la consola de la siguiente manera.
$ sudo aptitude -u Password:
Con esto actualiza la copia local del archivo y muestra la relación de paquetes en un menú a pantalla completa. La configuración de aptitude está en «~/.aptitude/config».
sugerencia
Si deseas utilizar la configuración de root en lugar de la de usuario, utiliza ”sudo -H aptitude ...” en lugar de ”sudo aptitude ...” en la expresión anterior.
sugerencia
Aptitude automáticamente ejecuta las acciones pendientes como si hubiera empezado en modo interactivo. Si esto no le gusta, puede inicializarlo desde el menú: «Acción» → «Cancelar las acciones pendientes».

2.2.4. Combinaciones de teclado en aptitude

Las pulsaciones de teclas notables para examinar el estado de los paquetes y establecer la ”acción planificada” en ellos en este modo de pantalla completa son las siguientes.
La especificación del nombre de archivo de la línea de comandos y el mensaje del menú después de presionar ”l ” y ”// ” toman la expresión regular de aptitude como se describe a continuación. Aptitude regex puede hacer coincidir explícitamente un nombre de paquete utilizando una cadena iniciada por ” ~n” y seguida del nombre del paquete.
sugerencia
Necesita pulsar «U» para hacer que todos los paquetes se actualicen a la versión candidata en el interfaz visual. De otra manera solo los paquetes seleccionados y otros que son dependencias de versiones de estos son actua­lizados a la versión candidata.
Page 85
Guía de referencia de Debian 57 / 267
tecla función
F10 o Ctrl-t menú
?
F10 → Ayuda → Manual de usuario muestra el Manual de Usuario u actualiza la información de archivo del paquete + marca el paquete para que se actualice o instale
-
_
= coloque el paquete en hold
U
g
q sale de la pantalla actual y guarda los cambios x sale de la pantalla actual sin guardar los cambios Intro muestra la información de un paquete C muestra el registro de cambios del paquete l cambia el número de paquetes que se muestran / busca el primer encaje \ repite la última búsqueda
muestra la ayuda de las combinaciones de teclas (una relación más completa)
marca el paquete para que se elimine (mantiene los archivos de configuración) marca el paquete para purgarlo (borra los archivos de configuración)
marca todos los paquetes actualizables (funciona como full-upgrade) comienza la descarga y la instalación de los paquetes seleccionados
Cuadro 2.8: Relación de combinaciones de teclado de aptitude

2.2.5. Visualización de paquetes en aptitude

En el modo interactivo de pantalla completa de aptitude(8), se muestran los paquetes en la lista de paquetes como en el siguiente ejemplo.
idA libsmbclient -2220kB 3.0.25a-1 3.0.25a-2
El significado de izquierda a derecha de la fila es el siguiente.
La bandera del «estado actual« (primera letra)
La bandera de la «acción planeada« (segunda letra)
La bandera «automática« (tercera letra)
El nombre del paquete
La variación del espacio de disco usado según la «acción planeada«
La versión actual del paquete
La versión candidata del paquete
sugerencia
La lista completa de indicadores aparece en la parte inferior de la pantalla Ayuda que se muestra pulsando ”?”.
La versión candidata se elige de acuerdo a la configuración local del equipo (ver apt_preferences(5) y Sec­ción2.7.7).
Existen diferentes formas de mostrar los paquetes en la opción de menú «Vistas».
Page 86
Guía de referencia de Debian 58 / 267
vista descripción de la vista
Vista del paquete ver Tabla2.10 (por defecto)
relación de paquete que se recomiendan por algún
Recomendaciones de auditoría
Relación plana de paquetes
Buscador de etiquetas
Vista del Paquete Fuente lista de paquetes agrupados por paquetes fuente
Cuadro 2.9: Relación de vistas en aptitude
nota
Por favor, ¡ayúdenos mejorando el marcado de paquetes con debtags!
La vista estándar «Vista de paquetes» los clasifica en cierto modo como dselect con algunas funcionalidades extra.
paquete marcado para instalación pero sin instalar por el momento relación de paquetes sin clasificar (para usar con expresiones regulares) relación de paquetes clasificados de acuerdo a sus
etiquetas Debian (debtags)
categoría descripción de la vista
Paquetes actualizables
Nuevos paquetes , , Paquetes instalados , , Paquetes no instalados , , Paquetes creados localmente y obsoletos Paquetes virtuales relación de paquetes con la misma función
Tareas (tasks)
Cuadro 2.10: La clasificación de la vista de paquetes estándar
sugerencia
La vista de tareas puede usarse para realizar una selección de paquetes para sus tareas.
la relación organizada de paquetes según sección área
paquete
, ,
relación de paquetes con diferentes funciones que normalmente son necesarios para una tarea

2.2.6. Opciones del método de búsqueda con aptitude

Aptitude ofrece varias opciones para la búsqueda de paquetes usando su fórmula de expresiones regulares.
Línea de órdenes del intérprete de órdenes:
• «aptitude search 'expresión_regular_de_aptitude'» enumera el estado de instalación, nombre del paquete y descripción corta de los paquetes que encajan
• «aptitude show 'nombre_del_paquete'» muestra la descripción detallada del paquete
Modo interactivo de pantalla completa:
• ”l” para limitar la vista de los paquetes a los paquetes coincidentes
• «/» para buscar los paquetes que encajan
Page 87
Guía de referencia de Debian 59 / 267
• «\» busca hacia atrás el paquete que encaja
• «n» para encontrar el siguiente
• «N» para buscar el siguiente (hacia atrás)
sugerencia
La cadena del nombre_del_paquete se trata como el encaje exacto de la cadena al nombre del paquete al menos que empiece explícitamente con «~» para ser un fórmula de expresión regular.

2.2.7. La fórmula de la expresión regular de aptitude

La fórmula de expresiones regulares de aptitud es ERE extendida similar a mutt (ver Sección1.6.2) y los significados de la coincidencia especial específica aptitude Las extensiones de regla son las siguientes.
La parte regex es la misma ERE que la utilizada en las típicas herramientas de texto tipo Unix utilizando ”^”, ”. *”, ”$” etc. como en egrep(1), awk(1) y perl(1).
La dependencia tipo es una de (depende, predepende, recomienda, sugiere, entra en conflicto, reemplaza, pro­porciona) especificando la interrelación del paquete.
El tipo de dependencia por defecto es «depends«.
sugerencia
Cuando el patrón_de_la_expresión_regular es la cadena «null«, coloca inmediatamente después de la orden «~T».
Aquí hay algunos atajos.
«~Ptérmino» == «~Dprovides:término»
«~Ctérmino» == «~Dconflicts:término»
«…~W término» == «(…|término)»
Los usuarios familiarizados con mutt se adaptan rápidamente, ya que mutt fue la inspiración para la sintaxis de las ex­presiones. Consulte ”BÚSQUEDA, LIMITACIÓN Y EXPRESIONES” en el ”Manual del usuario” ”/usr/share/doc/aptitude/README.”.
nota
Con la versión de lenny de aptitude(8), la nueva sintaxis en formato largo como «?broken» se puede usar de forma equivalente para el uso de expresiones regulares en lugar de la anterior formato corto «~b». Ahora se considera el carácter de espacio « » como uno de los caracteres de finalización de la expresión regular al igual que la tilde «~». Ver el «Manual de Usuario« para la nueva sintaxis de formato largo.

2.2.8. Resolución de dependencias en aptitude

La selección de un paquete con aptitude no marca únicamente los paquetes definidos en su relación de «dependencias:» sino también aquellos en la relación de «Recomendados:» si la opción «F10 → Options → Preferences → Depen­dency handling« esta configurada de esa manera. Estos paquetes instalados de forma automática se eliminan de forma automatizada por aptitude si no se van a necesitar en el futuro.
La bandera que controla la ”autoinstalación” del comando aptitude también puede manipularse utilizando el co­mando apt-mark(8) del paquete apt.
Page 88
Guía de referencia de Debian 60 / 267
descripción de las reglas extendidas de encaje
fórmula de la expresión regular
nombre del paquete que encaja ~nnombre_de_la_expresión_regula encaja en la descripción ~ddescripcion_de_la_expresión_regular nombre de la tarea que encaja ~texpresión_regular_de_tareas encaja con las debtag ~G
expresion_regular_de_etiquetas
encaja con el desarrollador ~mexpresión_regular_del_desarrollador encaja con la sección del paquete ~sexpresión_regular_de_sección encaja con la versión del paquete ~Vexpresión_regular_de_la_versión encaja con la distribución ~A{bookworm,trixie,sid} encaja con el origen ~O{debian,…} encaja con la prioridad ~p{extra,important,optional,required,standard
} encaja con los paquetes esenciales ~E encaja con paquetes virtuales ~v encaja con nuevos paquetes ~N encaja con acciones pendientes ~a{install,upgrade,downgrade,remove,purge,hold,keep} encaja con paquetes instalados ~i encaja con paquetes marcados con A-mark (paquetes auto-instalados)
~M
encaja con paquetes instalados sin la marca A (paquetes seleccionados por el
~i!~M
administrador) encaja con paquetes instalados y que se pueden actualizar encaja con paquetes eliminados pero no purgados encaja con paquete eliminados y purgados o que se pueden eliminar encaja con paquetes que declaran una dependencia rota encaja con paquetes que declaran una dependencia rota de un tipo encaja el patrón sobre paquetes que tienen una dependencia tipo encaja el patrón con paquetes que tienen una dependencia rota de tipo
~U
~c
~g
~b
~Btype
~D[tipo:]patrón
~DB[tipo:]patrón
encaja con paquetes en los cuales el patrón encaja con paquetes que declaran
~R[tipo:]patrón
una dependencia tipo coinciden con paquetes a los que el paquete coincidente patrón declara
~RB[escribe:]patrón
dependencia rota tipo encaja con los paquetes con los que los paquetes instalados tienen dependencias encaja con los paquetes que no dependen de ningún paquete instalado
~R~i
!~R~i
encaja con los paquete que dependen o son recomendados por otros paquetes
~R~i|~Rrecommends:~i
instalados encaja con los paquetes según el patrón filtrados por la versión
~S filtro patrón
encaja con todos los paquetes (verdad) ~T no encaja con ningún paquete (falso) ~F
Cuadro 2.11: Relación de fórmulas de expresiones regulares de aptitute
Page 89
Guía de referencia de Debian 61 / 267
archivo contenido
/var/log/dpkg.log
/var/log/apt/term.log Registro de acciones genéricas APT /var/log/aptitude Registro de acciones de la orden aptitude
Cuadro 2.12: Los archivos de registro de acciones sobre paquetes
Registra la actividad a nivel de dpkg para todas las acciones sobre paquetes

2.2.9. Registro de la actividad de los paquetes

Puede comprobar el historial de actividad del paquete en los archivos de registro.
En realidad, no es fácil conseguir una comprensión rápida de estos registros. La manera más fácil se explica en Sección9.3.9.

2.3. Ejemplos de operaciones con aptitude

A continuación se muestran algunos ejemplos de
aptitude
(8) en acción.

2.3.1. Buscando paquetes interesantes

Se pueden buscar los paquetes que cumplan sus requisitos con aptitude bien en base a la descripción del paquete o con la relación de «Tareas«.

2.3.2. Enumera los paquetes cuyos nombres encajan con la expresión regular

Las órdenes siguientes enumeran los paquetes cuyos nombres encajan con la expresión regular.
$ aptitude search '~n(pam|nss).*ldap' p libnss-ldap - NSS module for using LDAP as a naming service p libpam-ldap - Pluggable Authentication Module allowing LDAP interfaces
Es bastante útil para encontrar el nombre exacto de un paquete.

2.3.3. Navega por la relación de paquetes que encajan con la expresión regular

La expresión regular ”~dipv6” en la vista ”Nueva lista plana de paquetes” con la indicación ”l”, limita la vista a los paquetes con la descripción coincidente y permite examinar su información de forma interactiva.

2.3.4. Purga los paquetes eliminados definitivamente

Se pueden borrar todos los archivos de configuración de los paquetes eliminados.
Compruebe los resultados del siguiente comando.
# aptitude search '~c'
Si estás seguro de que los paquetes enumerados deben eliminarse por completo, ejecuta el siguiente comando.
# aptitude purge '~c'
Page 90
Guía de referencia de Debian 62 / 267
Puede hacer lo mismo en modo interactivo para tener un control más detallado.
En la «Nueva Vista de Paquetes«, puede añadir una expresión regular a «~c» con el cursor «|». Esto limita los paquetes que se visualizan a únicamente los que encajan con la expresión regular, esto es, «eliminado pero no purgado«. Todos estos paquetes que encajan con la expresión regular se mostrarán al presionar «[» en la cabecera de más alto nivel.
Entonces, pulse «_» en la cabecera de mayor nivel como «Paquetes no instalados«. Solo los paquetes que encajan con el patrón de la expresión regular bajo dicho encabezado se marcarán para ser purgados. Usted puede no incluir algunos paquetes de la purga presionando «=» de forma manual sobre cada uno de ellos.
Esta técnica es bastante útil y funciona para muchas teclas de órdenes.

2.3.5. Estado de instalación ordenado de forma automática/manual

A continuación mostraremos como mantenemos en orden el estado de instalación de los paquetes (después de realizar instalaciones sin usar aptitude etc.).
1. Lance aptitude en modo interactivo como «root«.
2. Pulse «u», «U», «f» y «g» para actualizar la relación de paquetes y los paquetes.
3. Pulse «l» para acceder a la pantalla de los paquetes limitandolos a «~i(~R~i|~Rrecommends:~i)» y pulse
«M» sobre «Paquetes I» como auto instalados.
4. Pulse «l» para acceder a la pantalla de paquetes limitados como «~prequired|~pimportant|~pstandard|~E»
y pulse «m» sobre «Paquetes Instalados» como instalados de forma manual.
5. Escribe ”l” para entrar en el límite de la visualización de los paquetes como ”~i!~M” y elimina los paquetes no
utilizados escribiendo ”-” sobre cada uno de ellos después de exponerlos escribiendo ”[” sobre los ”Paquetes instalados”.
6. Pulse «|», para entrar en la pantalla de paquetes limitada por «~i»; entonces pulse «m» sobre Tareas», para
marcar aquellos paquetes instalados manualmente.
7. Salir de aptitude.
8. Ejecute «apt-get -s autoremove|less» como superusuario para comprobar lo que no usa.
9. Reinicie aptitude en modo interactivo y marque los paquetes que necesite con «m».
10. Volver a ejecutar «apt-get -s autoremove|less» como superusuario para volver a comprobar que solo ha ELIMINADO los paquetes que deseaba.
11. Ejecute «apt-get autoremove|less» como superusuario para eliminar los paquetes sin uso.
La acción «m» sobre «Tasks» es opcional y se usa para evitar la situación de eliminar paquetes de forma masiva en el futuro.

2.3.6. Actualización mayor del sistema

nota
Cuando se cambia a una nueva distribución etc, se debe considerar implantar una instalación limpia del nuevo sistema incluso cuando Debian es actualizable como se describe a continuación. Proporciona la oportunidad de eliminar la basura almacenada y acceder a las mejores combinaciones de las últimas versiones de los paquetes. Sin dudarlo, debería realizar una copia de respaldo completa del sistema a un lugar seguro (ver Sección10.2) antes de hacerlo. Nosotros recomendamos crear un arranque dual en una partición diferente para realizar una transición suave.
Page 91
Guía de referencia de Debian 63 / 267
Puedes realizar una actualización de todo el sistema a una versión más reciente cambiando el contenido de la lista de fuentes apuntando a una nueva versión y ejecutando el comando ”apt update; apt dist-upgrade”.
Para actualizar de stable (estable) a testing (pruebas) o unstable (inestable) durante el ciclo de publicación de bookworm-como-estable, debes sustituir ”bookworm ” en la lista de fuentes por ejemplo de Sección2.1.5 contrixie” o ”sid”.
De hecho, se puede encontrar con algunas complicaciones debido a alguna transición entre paquetes, la mayor parte debido a dependencias. Cuanto mayores es la actualización, más problemas importantes se puede encontrar. Para la transición desde una distribución antigua de stable (estable) a la nueva stable (estable) después de su publicación, puede leer las nuevas «Release Notes« y seguir el procedimiento concreto que se describe para minimizar los problemas.
Cuando decide migrar de stable (estable) a testing (pruebas) después de una publicación formal, no existen «Release Notes« de ayuda. La diferencia entre stable (estable) y testing (pruebas) puede ser bastante mayor después de la liberación de una nueva distribución stable (estable) y la actualización se puede convertir en una situación complicada.
Debería ser precavido cuando realiza un actualización completa y consultar la información actualizada sobre ello y usar el sentido común.
1. Lea las anterior «Release Notes«.
2. Realice una copia de respaldo (o de seguridad) completa (especialmente los datos y las configuraciones).
3. Disponga de un medio alternativo de arranque por si falla el cargador de arranque.
4. Informe con anterioridad y de forma correcta a los usuarios.
5. Registre las operaciones de la actualización con script(1).
6. Para evitar su eliminación marque los paquetes que lo requieran como «sin marcado automático» (unmarkauto), p. ej., «aptitude unmarkauto vim».
7. Minimize los paquetes instalados con el de minimizar la posibilidad de conflictos, p. ej., elimine los paquetes de la tarea «Escritorio«.
8. Elimina el archivo ”/etc/apt/preferences” (desactiva apt-pinning).
9. Realice actualizaciones siguiendo los pasos de forma sensata: oldstable (vieja_estable) → stable (estable) → testing (pruebas) → unstable (inestable).
10. Actualiza la lista de fuentes para que apunte sólo al nuevo archivo y ejecuta ”aptitude update”.
11. Instale, opcionalmente, primero los nuevos paquetes fundamentales , p. ej., «aptitude install perl».
12. Ejecute la orden «apt-get -s dist-upgrade» para comprobar su efecto.
13. Finalmente , ejecute la orden «apt-get dist-upgrade».
atención
No es aconsejable omitir la distribución principal de Debian, la stable (estable), cuando se actualiza entre distribuciones.
atención
En «Release Notes« anteriores, GCC, el núcleo de Linux , initrd-tools, Glibc, Perl, las herramientas APT, etc. han necesitado una atención especial para la actualización mayor del sistema.
Para actualizar de forma diaria la versión unstable, ver Sección2.4.3.
Page 92
Guía de referencia de Debian 64 / 267

2.4. Operaciones avanzadas de gestión de paquetes

2.4.1. Operaciones avanzadas de gestión de paquetes desde la línea de órdenes

A continuación puede encontrar otras operaciones de gestión de paquetes para las cuales aptitude es demasiada abstracta o no posee la funcionalidad que se necesita.
nota
Para paquetes que sean multi-arch, puede necesitar especificar el nombre de la arquitectura para algunas órdenes. Por ejemplo, use «dpkg -L libglib2.0-0:amd64» para enumerar el contenido del paquete libglib2.0-0 para la arquitectura amd64.
atención
Las herramientas de bajo nivel como «dpkg -i …» y «debi …» deben usarse con cuidado por el ad­ministrador del sistema. No tienen en cuenta de forma automática las dependencias entre paquetes. La opción de la línea de órdenes «--force-all» y parecidas (ver dpkg(1)) están hechas para que las usen únicamente usuarios expertos. Usarlas sin entender plenamente sus consecuencias puede corromper el sistema entero.
Ten en cuenta lo siguiente.
Todas las órdenes de configuración e instalación necesitan ser ejecutadas por el superusuario.
A diferencia de aptitude que usa expresiones regulares (ver Sección1.6.2), otras órdenes para la gestión de paquetes usan patrones como el intérprete de órdenes glob (ver Sección1.5.6).
apt-file(1) que está en el paquete apt-file necesita ejecutar previamente «apt-file update».
configure-debian(8) que está en el paquete configure-debian usa como su motor dpkg-reconfigure(8).
dpkg-reconfigure(8) ejecuta los archivos de órdenes de los paquetes usando como su motordebconf(1).
Los comandos ” en la lista de fuentes.
dget(1), debuild(1) y debi(1) necesitan el paquete devscripts.
Consulte el procedimiento de (re)empaquetado mediante «apt-get source» en Sección2.7.13.
La orden make-kpkg necesita el paquete kernel-package (ver Sección9.10).
Para el empaquetado general ver Sección12.9.
apt-get build-dep
”, ”
apt-get source
” y ”
apt-cache showsrc
” requieren la entrada ”

2.4.2. Verificación de los archivos de un paquete instalado

deb-src
La instalación de debsums permite de la verificación de los archivos de los paquetes instalados comparando los valores MD5sum en el archivo «/var/lib/dpkg/info/*.md5sums» con debsums(1). Para saber como funciona MD5sum verSección10.3.5.
nota
Ya que la base de datos de MD5sum la puede alterar un intruso, debsums(1) su uso como herramienta de seguri­dad es limitada. Solo es aceptable para que el administrador compruebe modificaciones locales o daños producidos por errores del medio de almacenamiento.
Page 93
Guía de referencia de Debian 65 / 267
orden acción
COLUMNS=120 dpkg -l
patrón_del_nombre_del_paquete
enumera el estado de los paquetes instalados para el informe de errores
dpkg -L nombre_del_paquete enumera el contenido de un paquete instalado dpkg -L nombre_del_paquete | egrep '/usr/share/man/man.*/.+' dpkg -S
patrón_del_nombre_de_archivo
apt-file search
patrón_nombre_de_archivo
apt-file list
patrón_nombre_de_paquete
dpkg-reconfigure
nombre_del_paquete
dpkg-reconfigure -plow
package_name
relación las páginas del manual para un paquete instalado
enumera los paquetes instalados que tienen un archivo que encaja con el patrón enumera los paquetes en el repositorio que encajan con el nombre de archivo enumera el contenido de los paquetes del repositorio que encajan
reconfigura el paquete dado
reconfigura el paquete dado realizando el mayor número de preguntas
configure-debian reconfigura los paquetes desde el menú de pantalla completa
dpkg --audit
auditoría del sistema referente a paquete instalados parcialmente
dpkg --configure -a configura todos los paquetes instalados parcialmente apt-cache policy
nombre_del_paquete_binario
apt-cache madison
nombre_del_paquete
apt-cache showsrc
nombre_del_paquete_binario
apt-get build-dep
nombre_del_paquete
aptitude build-dep
nombre_del_paquete
apt-get source
nombre_del_paquete
muestra la versión, la prioridad y la información del repositorio de un paquete binario muestra la versión disponible y la información del repositorio de un paquete muestra la información del paquete fuente que corresponde con el paquete binario
instala los paquetes requeridos para construir el paquete
instala los paquetes requeridos para construir el paquete
descarga la fuente (desde el repositorio estándar)
dget URL del archivo dsc descarga el código del paquete (desde otro repositorio) dpkg-source -x nombre_del_paquete_version-versión_de_debian.dsc
construye el árbol de las fuentes para un conjunto de paquetes fuente («orig.tar.gz» y «debian.tar.gz»/«*.diff.gz»)
debuild binary construye el/los paquete(s) desde un árbol de fuentes locales make-kpkg kernel_image construye el paquete del núcleo desde el árbol fuente del kernel
make-kpkg --initrd kernel_image
dpkg -i nombre_del_paquete_versión-versión_de_debian_arquitectura.deb apt install /path/to/package_filename.deb debi nombre_del_paquete_versión-versión_de_debian_arquitectura.dsc dpkg --get-selections '*' >selección.txt dpkg --set-selections <seleccion.txt
echo nombre_paquete hold | dpkg
--set-selections
construye el paquete del núcleo desde el árbol fuente de este con initramfs activado
instala un paquete local en el sistema
instala un paquete local en el sistema y trata de resolver de forma automática sus dependencias
instala el(los) paquete(s) locales en el sistema
guardar información de estado de selección de nivel de paquete
dpkg
asigna la información de estado de selección de nivel del paquete dpkg establecer el estado de selección del paquete a nivel dpkg para un paquete hold (equivalente a ”aptitude hold package_name”)
Cuadro 2.13: Relación de operaciones avanzadas con paquetes
Page 94
Guía de referencia de Debian 66 / 267

2.4.3. Protección frente a problemas con paquetes

Muchos usuarios prefieren seguir las versiones testing (pruebas) (o unstable (inestable)) del sistema Debian por sus nuevas características y paquetes. Esto hace que el sistema sea más propenso a sufrir fallos críticos en los paquetes.
La instalación del paquete apt-listbugs protege el sistema contra errores críticos comprobando estos de forma automática BTS de Debian cuando se actualiza mediante el sistema APT.
La instalación del paquete apt-listchanger aporta noticias importantes en «NEWS.Debian» cuando se actualiza mediante el sistema APT.

2.4.4. Buscando metadatos en los paquetes

Aunque al visitar la página de Debian https://packages.debian.org/ facilita formas fáciles de buscar en los metadatos del paquete en estos días, veamos otras formas más tradicionales.
Las órdenes grep-dctrl(1), grep-status(1) y grep-available(1) se pueden usar para buscar cualquier ar­chivo que tenga el formato general de un archivo de control de paquetes de Debian.
«dpkg -S patrón_de_archivo_de_nombres» se puede usar para buscar nombres de paquetes que contengan archivos que coincidan con el nombre instalado por dpkg. Pero pasa por alto los archivos creados por los scripts de mantenimiento.
Si necesita realizar búsquedas más elaboradas de metadatos de dpkg , necesita ejecutar la orden «grep -e regex_pattern *» en el directorio «/var/lib/dpkg/info/». Esto realiza búsquedas de las palabras mencionadas en los archivos de órdenes de los paquetes y textos de preguntas de la instalación.
Si desea realizar búsquedas recursivas en dependencias de paquetes , debería usar apt-rdepends(8).

2.5. Gestión interna de los paquetes Debian

Aprendamos como funciona internamente el sistema de paquetes Debian. Esto puede ayudar a encontrar su propia solución en algunos problemas con paquetes.

2.5.1. Metadatos de archivos

Los metadatos de archivos para cada distribución se almacenan en «dist/codename» en cada sitio espejo de Debian , p. ej., «http://deb.debian.org/debian/». La estructura del repositorio se puede navegar con un navegador web. Existen seis tipos de metadatos clave.
En el archivo reciente, estos metadatos se almacenan como los archivos comprimidos y diferencial para reducir tráfico de red.

2.5.2. Archivo «Release» del nivel superior y autenticación

sugerencia
El archivo de la raíz «Release» se usa para firmar el repositorio del sistema seguro APT.
Cada versión del archivo de Debian tiene un fichero de nivel superior ”Release”,por ejemplo, ”http://deb.debian.org/debian/dists/unstable/Release”, como sigue.
Page 95
Guía de referencia de Debian 67 / 267
archivo ubicación contenido
Distribución Alto de la distribución
Release.gpg Alto de la distribución
Contenido-arquitectura Alto de la distribución
Distribución
raíz de cada combinación de distribución/área/arquitectura raíz de cada combinación
Paquetes
distribución/área/arquitectura­binaria
Fuentes
raíz de cada combinación distribución/área/fuente
descripción del archivo e información de integridad archivo de firma para el archivo firmado «Release» con el archivo llave relación de todos los archivos para todos los paquetes en el repositorio pertinente descripción de archivo usado para la regla de apt_preferences(5)
concatenado de debian/control para paquetes binarios
concatenado de debian/control para paquetes fuente
Cuadro 2.14: El contenido de metadatos del repositorio Debian
Origin: Debian Label: Debian Suite: unstable Codename: sid Date: Sat, 14 May 2011 08:20:50 UTC Valid-Until: Sat, 21 May 2011 08:20:50 UTC Architectures: alpha amd64 armel hppa hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips ←-
mipsel powerpc s390 sparc
Components: main contrib non-free Description: Debian x.y Unstable - Not Released MD5Sum:
bdc8fa4b3f5e4a715dd0d56d176fc789 18876880 Contents-alpha.gz 9469a03c94b85e010d116aeeab9614c0 19441880 Contents-amd64.gz 3d68e206d7faa3aded660dc0996054fe 19203165 Contents-armel.gz
...
nota
Aquí, puede encontrar la razón de ser entre la «versión« y el «nombre en clave« en Sección2.1.5. «Distribución« se utiliza cuando se refiere a la «versión« y «nombre en clave«. Todos los nombres de ”áreas” de archivo que ofrece el archivo se enumeran en ”Componentes”.
La integridad del archivo de nivel superior ”Release” se verifica mediante una infraestructura criptográfica denomi­nada secure apt, tal y como se describe en apt-secure(8).
El archivo de firma criptográfica «
Release.gpg
» se crea desde el auténtico archivo «
Release
» de la raíz y el
archivo de la clave secreta Debian.
Las claves del archivo público de Debian se instalan localmente mediante el último paquete debian-archive-keyring.
El sistema secure APT verifica automáticamente la integridad del fichero descargado de nivel superior ”Release” criptográficamente mediante este fichero ”Release.gpg” y las claves públicas del archivo de Debian instaladas localmente.
La integridad de todos los archivos «Packages» y «Sources» se verifican usando valores MD5sum del archivo raíz «Release». La integridad de todos los archivos de paquetes se comprueban usando los valores de MD5sum en los archivos«Packages» and «Sources». Ver debsums(1) y Sección2.4.2.
Page 96
Guía de referencia de Debian 68 / 267
Ya que la verificación de la firma criptográfica es un proceso intensivo en uso de la CPU, el uso del valor MD5sum para cada paquete mientras se usa el archivo de firma criptográfica de la raíz «Release» proporciona buena
seguridad y eficiencia (ver Sección10.3).
Si la entrada lista de fuentes especifica la opción ”firmado por”, la integridad del archivo de nivel superior ”Release” descargado se verifica utilizando la clave pública especificada. Esto es útil cuando la lista de fuentes contiene archivos que no son Debian.
sugerencia
El uso del comando apt-key(8) para la gestión de claves APT está obsoleto.
También puedes verificar manualmente la integridad del fichero ”Release” con el fichero ”Release.gpg” y la clave pública del archivo Debian publicada en ftp-master.debian.org usando gpg.

2.5.3. Archivos «Release» a nivel de archivo

sugerencia
Los archivos “
Release
” a nivel de fichero se usan para la regla
apt_preferences
(5).
Existen ficheros a nivel del archivo ”Release” para todas las ubicaciones del archivo especificadas por la lista de fuentes, como ”http://deb.debian.org/debian/dists/unstable/main/binary-amd64/Release” ohttp://deb.debian.org/debian/dists/sid/main/binary-amd64/Release”, como se indica a continua­ción.
Archive: unstable Origin: Debian Label: Debian Component: main Architecture: amd64
atención
Para la etiqueta «Archive:» , los nombres de distribución (stable (estable), testing (pruebas), unstable (inestable), …) se utilizan en el repositorio Debian mientras que los nombres de publicación
trusty», «xenial», «artful», …) se utilizan en el repositorio Ubuntu.
Para algunos archivos, como experimental, y bookworm-backports, que contienen paquetes que no deben ins­talarse automáticamente, hay una línea extra, por ejemplo, ”http://deb.debian.org/debian/dists/experimental/main/binary-amd64/Release como sigue.
Archive: experimental Origin: Debian Label: Debian NotAutomatic: yes Component: main Architecture: amd64
Tenga en cuenta que los repositorios normales sin «NotAutomatic: yes», el valor por defecto de la prioridad de instalación (Pin-Priority) es 500, mientras que en los repositorios especiales con «NotAutomatic: yes», el valor por defecto de la prioridad de instalación (Pin-Priority) es 1 (ver apt_preferences(5) y Sección2.7.7).
Page 97
Guía de referencia de Debian 69 / 267

2.5.4. Actualizando la meta información de los paquetes

Cuando se usan herramientas APT, como aptitude, apt-get, synaptic, apt-file, auto-apt, ..., necesita­mos actualizar las copias locales de los metadatos que contienen la información del archivo Debian. Estas copias locales tienen los siguientes nombres que corresponden a los nombres especificados para: distribución, área y arquitectura en la lista de fuentes (ver Sección2.1.5).
«/var/lib/apt/lists/deb.debian.org_debian_dists_distribution_Release»
«/var/lib/apt/lists/deb.debian.org_debian_dists_distribution_Release.gpg»
«/var/lib/apt/lists/deb.debian.org_debian_dists_distribution_area_binary-architecture_Packages»
«/var/lib/apt/lists/deb.debian.org_debian_dists_distribution_area_source_Sources»
«/var/cache/apt/apt-file/deb.debian.org_debian_dists_distribution_Contents-architecture.gz» (para apt-file)
Los 4 primeros tipos de archivos son compartidos por todos los comandos APT pertinentes y actualizados desde la línea de comandos mediante ”apt-get update” o ”aptitude update”. Los metadatos ”Paquetes” se actualizan si se especifica ”deb” en la lista de fuentes. Los metadatos ”Fuentes” se actualizan si se especifica ”deb-src” en la lista de fuentes.
La metainformación de los «paquetes» y de las «fuentes» contienen el campo «Filename:» que apunta a la ubicación del archivo de los paquetes fuente y binarios. En este momento, estos paquetes se ubican en el subárbol del directorio «pool/» para mejorar la transición entre distribuciones.
Se pueden realizar búsquedas interactivas en las copias locales de la metainformación de los «paquetes» mediante la orden aptitude. La orden de búsqueda especializada grep-dctrl(1) puede buscar metainformación en las copias locales de los «paquetes» y las «fuentes».
La copia local de los metadatos ”Contents-architecture” se puede actualizar con ”apt-file update” y su ubicación es diferente de las otras 4 . Ver apt-file(1). (El auto-apt usa una ubicación diferente para la copia local de ”Contents-architecture.gz” por defecto)

2.5.5. Estado del paquete para APT

Además de acceder de forma remota a la metainformación, desde lenny, la herramienta APT almacena la informa­ción local referente al estado de la instalación en «/var/lib/apt/extended_states» el cual usan el resto de herramientas APT para realizar el seguimiento de todos los paquetes autoinstalados.

2.5.6. El estado del paquete en aptitude

Además de acceder de forma remota a la metainformación, la orden aptitude almacena el estado de la instalación de forma local en «/var/lib/aptitude/pkgstates» y este es usado únicamente por aptitude.

2.5.7. Copias locales de los paquetes descargados

Todos los paquetes descargados de forma remota mediante APT se almacenan en «/var/cache/apt/archives» hasta que se limpia.
Esta política de limpieza de los archivos de la caché para aptitude se puede configurar en ”Opciones” → ”Preferencias y se puede forzar por su menú ”Limpiar caché de los paquetes” o ”Limpiar los archivos obsoletos” en ”Acciones”.
Page 98
Guía de referencia de Debian 70 / 267
tipo de paquete estructura del nombre
El paquete binario (apodado deb) nombre_del_paquete_versión_actual-debian-versión_arquitectura.deb El paquete binario para el instalador de debian (apodado udeb) Paquete de código fuente (código fuente ascendente) El paquete fuente 1.0 (cambios Debian) nombre_del_paquete_versión_actual-debian-versión.diff.gz El paquete fuente 3.0 (quilt) (cambios de Debian) El paquete fuente (descripción) nombre_del_paquete_versión_actual-debian-versión.dsc
Cuadro 2.15: La estructura del nombre de los paquetes Debian
nombre_del_paquete_versión_actual-debian-versión_arquitectura.udeb
nombre_del_paquete_versión_actual-debian-versión.orig.tar.gz
nombre_del_paquete_versión_actual-debian-versión.debian.tar.gz

2.5.8. Nombres de archivos de paquetes Debian

Los archivos que son paquetes Debian tienen una estructura para nombrarlos determinada.
sugerencia
Únicamente describiremos aquí el formato del paquete fuente. Para obtener mayor información consulte dpkg-source(1).
nombre del campo
nombre_del_paquete [a-z0-9][-a-z0-9.+]+ obligatorio época: [0-9]+: opcional versión_actual [-a-zA-Z0-9.+:]+ obligatorio debian.versión [a-zA-Z0-9.+~]+ opcional
Cuadro 2.16: Los caracteres permitidos en cada campo del nombre del paquete en Debian
nota
Se puede comprobar el orden de las versiones de los paquetes con la ordendpkg(1), p. ej., «dpkg
--compare-versions 7.0 gt 7.~pre1 ; echo $?» .
nota
El instalador debian (d-i) usa la extensión de archivo udeb para sus paquetes binarios en vez de la normal deb.
Un paquete udeb es una versión reducida de un paquete deb a la cual se le han eliminado los contenidos no esenciales como la documentación con el fin de ahorrar espacio mientras se relajan los requisitos de la directriz de los paquetes. Ambos paquetes, deb y udeb, comparten la misma estructura de paquetes. La «u» tiene el significado de micro.
Caracteres disponibles (expresión regular)
existencia

2.5.9. La orden dpkg

dpkg(1) es la herramienta de más bajo nivel para la gestión de paquetes Debian. Es una herramienta muy poderosa y por tanto es necesario usarla con cuidado.
Al instalar el paquete llamado ”package_name”, dpkg lo procesa en el siguiente orden.
1. Desempaqueta el archivo deb (equivale a «ar -x»)
Page 99
Guía de referencia de Debian 71 / 267
2. Ejecuta «nombre_del_paquete.preinst» usando debconf(1)
3. Instala el paquete en el sistema (equivalente a ”tar -x”)
4. Ejecuta «nombre_del_paquete.postinst» usando debconf(1)
El sistema debconf proporciona una interacción de usuario estandarizada con compatibilidad con I18N y L10N (Capítulo8).
archivo descripción del contenido
/var/lib/dpkg/info/nombre_del_paquete.conffiles
/var/lib/dpkg/info/nombre_del_paquete.listrelación de archivos y directorios instalados por el paquete
/var/lib/dpkg/info/nombre_del_paquete.md5sums
/var/lib/dpkg/info/nombre_del_paquete.preinst
/var/lib/dpkg/info/nombre_del_paquete.postinst
/var/lib/dpkg/info/nombre_del_paquete.prerm
/var/lib/dpkg/info/nombre_del_paquete.postrm
/var/lib/dpkg/info/nombre_del_paquete.configarchivo de órdenes para el sistema debconf
/var/lib/dpkg/alternatives/nombre_del_paquete
/var/lib/dpkg/available la información disponible para todo el paquete
/var/lib/dpkg/diversions
/var/lib/dpkg/statoverride
/var/lib/dpkg/status la información del estado de todos los paquetes
/var/lib/dpkg/status-old
/var/backups/dpkg.status*
relación de archivos de configuración (modificables por el usuario)
relación de resumen criptográfico MD5 de los archivos instalados por el paquete archivos de órdenes del paquete que se ejecutan antes de su instalación archivo de órdenes que se ejecutan después de la instalación del paquete archivo de órdenes del paquete que se ejecuta antes de la eliminación del paquete archivo de órdenes del paquete para ser ejecutada después de la eliminación del paquete
la información alternativa usada por la orden
update-alternatives
la información de la ubicación alternativa usada por dpkg(1) y asignada por dpkg-divert(8) la información estadística manual utilizada por dpkg(1) y asignada por dpkg-statoverride(8)
la copia de seguridad de la primera generación del archivo ”var/lib/dpkg/status” el segundo juego de copias de respaldo y anteriores del archivo «var/lib/dpkg/status»
Cuadro 2.17: Los archivos destacados creados por dpkg
El archivo «status» además lo utilizan herramientas como dpkg(1), «dselect update» y «apt-get -u dselect-upgrade».
El comando de la búsqueda especializada grep-dctrl(1) puede buscar las copias locales de los metadatos ”status” y ”disponible”.
sugerencia
En el entorno del instalador de debian, la orden udpkg se usa para abrir los paquetes udeb. La orden udpkg es una versión reducida de la orden dpkg.

2.5.10. La orden update-alternatives

En sistema Debian existe un mecanismo para tener instalados a la vez varios programas que realizan la misma función sin problemas usando update-alternatives(1). Por ejemplo, se pueden hacer que la orden vi seleccione vim cuando se tienen instalados los paquetes tanto vim y nvi.
Page 100
Guía de referencia de Debian 72 / 267
$ ls -l $(type -p vi) lrwxrwxrwx 1 root root 20 2007-03-24 19:05 /usr/bin/vi -> /etc/alternatives/vi $ sudo update-alternatives --display vi ... $ sudo update-alternatives --config vi
Selection Command
---------------------------------------------­1 /usr/bin/vim
*+ 2 /usr/bin/nvi
Enter to keep the default[*], or type selection number: 1
El sistema «alternatives« de Debian mantiene un conjunto de enlaces simbólicos en «/etc/alternatives/». El uso del proceso de selección se encuentran en los archivos de «/var/lib/dpkg/alternatives/».

2.5.11. La orden dpkg-statoverride

El cambio de permisos (Stat overrides) que se realiza mediante la orden dpkg-statoverride(8) es una manera de conseguir quedpkg(1) use un propietario o unos permisos de uso diferentes para un archivo cuando se instala un paquete. Si se especifica «--update» y el archivo existe , los nuevos permisos y propietario se cambian al instante.
atención El cambio directo del propietario o modo de un archivo propiedad del paquete mediante los comandos
chmod o chown por parte del administrador del sistema se restablece en la siguiente actualización del paquete.
nota
Hemos usado la palabra archivo en los párrafos anteriores, pero realmente estos cambios se pueden ser realizar sobre cualquier objeto del sistema de archivos que gestione dpkg, incluidos directorios, dispositivos, etc.

2.5.12. La orden dpkg-divert

Las ubicaciones alternativas de un archivo que se realizan mediante la orden dpkg-divert(8) son una forma de obligar a dpkg(1) de instalar un archivo en una ubicación alternativa y no en su ubicación por defecto. Los archivos de órdenes de mantenimiento del paquete son los encargados del uso de dpkg-divert. Es una práctica en desuso su utilización por el administrador del sistema.

2.6. Recuperación de un sistema

Cuando se ejecuta el sistema testing (pruebas) o unstable (inestable), se espera que el administrador recupere la situación de administración de paquetes rotos.
atención
Algunos métodos descritos conllevan acciones muy peligrosas. ¡Está avisado!
Loading...