Guía de referencia rápida Debian -------------------------------- Osamu Aoki Coordinador de la traducción al español: Walter O. Echarri Sección A.1, `Autores' CVS, jue ene 18 11:54:33 UTC 2007 ------------------------------------------------------------------------------- Resumen ------- Esta Guía de referencia rápida Debian (http://qref.sourceforge.net/) intenta proporcionar una breve introducción al sistema Debian al igual que una _referencia rápida_. Es un extracto de Guía de referencia Debian (http://qref.sourceforge.net/). Nota de Copyright ----------------- Copyright (C) 2001--2005 by Osamu Aoki Este documento puede ser usado en los términos descritos en la Licencia Pública GNU versión 2 o posterior. (http://www.gnu.org/copyleft/gpl.html) Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this document under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this document into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. ------------------------------------------------------------------------------- Contenidos ---------- 1. Prefacio 1.1. Convenciones en los documentos 1.2. Fundamentos sobre las distribuciones Debian 2. Actualizando una distribución 2.1. Actualizando de Potato a Woody 2.2. Preparándose para una actualización 2.3. Actualizando 2.3.1. Usando `dselect' 3. Administración de paquetes Debian 3.1. Introducción 3.1.1. Herramientas principales 3.1.2. Herramientas prácticas 3.2. Fundamentos de la administración de paquetes Debian Debian 3.2.1. Instalación de con `tasksel' 3.2.2. Configurar el sistema APT 3.2.3. `dselect' 3.2.4. `aptitude' 3.2.5. Los comandos `apt-cache' y `apt-get' 3.2.6. Permanecer en una versión de la distribución Debian 3.2.7. Volver todos los paquetes a su versión `estable' 3.2.8. Repaso de `/etc/apt/preferences' 3.3. Comandos de supervivencia de Debian 3.3.1. Búsqueda de fallos y ayuda en Debian 3.3.2. Resolución de problemas al actualizar con APT 3.3.3. Rescate usando `dpkg' 3.3.4. Recuperar los datos de la selección de paquetes 3.3.5. Recuperando un sistema luego de borrar `/var' 3.3.6. Instalar un paquete en un sistema que no arranca 3.3.7. Qué hacer si el comando `dpkg' se encuentra dañado 3.4. Comandos 'nirvana' de Debian 3.4.1. Información sobre un archivo 3.4.2. Información sobre un paquete 3.4.3. Instalación automática con APT 3.4.4. Reconfigurar paquetes instalados 3.4.5. Desinstalar y purgar paquetes 3.4.6. Conservar paquetes antiguos 3.4.7. Sistema mixto `estable'/`de prueba'/`inestable' 3.4.8. Eliminar paquetes del caché 3.4.9. Grabar/copiar la configuración del sistema 3.4.10. Portar un paquete a la rama `stable' 3.4.11. Archivo local de paquetes 3.4.12. Convertir o instalar un paquete que no pertenece a Debian 3.4.13. Verificar los paquetes instalados 3.5. Otras particularidades de Debian 3.5.1. El comando `dpkg-divert' 3.5.2. El paquete `equivs' 3.5.3. Comandos alternativos 3.5.4. `init' del System-V y niveles de ejecución 3.5.5. Servicios desactivados A. Apéndice A.1. Autores A.2. Garantías A.3. Comentarios ------------------------------------------------------------------------------- 1. Prefacio ----------- Inicialmente, este documento era una "referencia rápida" pero creció. No obstante, mi principio rector sigue siendo _resúmalo y simplifíquelo_. 1.1. Convenciones en los documentos ----------------------------------- La "Guía de referencia rápida Debian" proporciona información mediante comandos del shell `bash'. Una referencia: * una página del _manual_ se muestra así bash(1). * una página _TEXINFO GNU_ se muestra así `info libc'. 1.2. Fundamentos sobre las distribuciones Debian ------------------------------------------------ Debian se encarga de tres distribuciones simultáneamente. Estas son: * `estable' --- La más útil para un servidor ya que sólo se actualiza con parches de seguridad. * `de prueba' --- La distribución preferidad para una estación de trabajo ya que contiene las últimas versiones de programas de escritorio que han sido relativamente probados. * `inestable' --- Lo último de lo último. La elección de los desarrolladores de Debian Cuando los paquetes de la rama `inestable' no poseen fallos críticos (RC) dados a conocer durante la primera semana de pruebas, automáticamente se transfieren a la rama `de prueba'. Debian distributions also have code names. Antes del lanzamiento de Woody en agosto del 2002, las tres distribuciones eran, respectivamente, Potato, Woody y Sid. Cuando salga Sarge las distribuciones `estable' e `inestable' serán Sarge y Sid. Se creará entonces una nueva distribución `de prueba' que será inicialmente una copia de la distribución `estable' y se le asignará un nuevo nombre. Suscríbase a la lista de poco tráfico `debian-devel-announce@lists.debian.org' para estar al tanto sobre las novedades de Debian. Si desea utilizar versiones de paquetes que son más actuales que las que acompañan a la distribución que está usando, puede o actualizar a una distribución posterior como se explica en Capítulo 2, `Actualizando una distribución' o bien actualizar únicamente los paquetes seleccionados. Si el paquete no puede actualizarse fácilmente puede acondicionarlo tal como se explica en Sección 3.4.10, `Portar un paquete a la rama `stable''. | ------------------------------------------------------------------------------- 2. Actualizando una distribución -------------------------------- 2.1. Actualizando de Potato a Woody ----------------------------------- El presente procedimiento se describe por separado porque el APT de Potato no tiene todas las características descriptas en l página actual del manual apt_preferences(5). Luego de incluir sólo las fuentes para Woody en `/etc/apt/sources.list', actualice APT y los paquetes principales requeridos a sus versiones Woody haciendo lo siguiente: # apt-get update # apt-get install libc6 perl libdb2 debconf # apt-get install apt apt-utils dselect dpkg Luego actualice el resto del sistema # apt-get upgrade # apt-get dist-upgrade 2.2. Preparándose para una actualización ---------------------------------------- Puede actualizar de una distribución a otra obteniendo los paquetes de la red. Esto se puede realizar de la siguiente manera: Obtenga una lista de repositorios para `estable' # cd /etc/apt # cp -f sources.list sources.anterior # :>sources.list # apt-setup noprobe Si desea actualizar a la distribución `de prueba' ñada la sección `testing' a la lista nueva. Si también desea actualizar a la distribución `inestable' añada la sección `unstable'. # cd /etc/apt # grep -e "^deb " sources.list >srcs # :>sources.list # cp -f srcs sources.list # sed -e "s/stable/testing/" srcs >>sources.list # sed -e "s/stable/unstable/" srcs >>sources.list # apt-get update # apt-get install apt apt-utils Véase Sección 3.2, `Fundamentos de la administración de paquetes Debian Debian' para ver cómo poner a punto `/etc/apt/sources.list' y `/etc/apt/preferences'. 2.3. Actualizando ----------------- Luego de configurar en forma adecuada los archivos `/etc/apt/sources.list' y `/etc/apt/preferences' como se indicó más arriba, puede comenzar con la actualización. Nótese que la utilización de la versión `de prueba' de Debian tiene como efecto colateral la lenta solución de los fallos de seguridad, ya que estos paquetes se envían a la versión `inestable' y sólo posteriormente a la `de prueba'. Véase Capítulo 3, `Administración de paquetes Debian' para los fundamentos y consultre Sección 3.3.2, `Resolución de problemas al actualizar con APT' si tropieza con problemas. 2.3.1. Usando `dselect' ----------------------- Si un sistema tiene muchos paquetes que incluye paquetes `-dev', etc., se recomienda el siguiente método usando `dselect' para un control minucioso de paquetes. # dselect update # siempre hacer esto antes de actualizar # dselect select # seleccione los paquetes adicionales Todos los paquetes actuales serán seleccionados al arrancar `dselect'. `dselect' puede proponerle otros paquetes: `Dependientes', `Sugeridos' y `Recomendados'. Si no desea añadir ningún paquete, sólo pulse `Q' para abandonar `dselect'. # dselect install Deberá responder algunas preguntas para la configuración para esta parte del proceso, por lo tanto tome nota y dedique parte de su tiempo a esta parte. Véase Sección 3.2.3, ``dselect''. Use `dselect'. _Siempre funciona :)_ ------------------------------------------------------------------------------- 3. Administración de paquetes Debian ------------------------------------ Este capítulo se basa en una más vieja versión del texto original inglés. Comprobar por favor la versión inglesa también. Para reducir el tráfico en los repositorios Debian, asegúrese de configurar un proxy HTTP local usando `squid' para los paquetes descargados mediante APT y, de ser necesario, configurar la variable de entorno `hhtp_proxy' o fijar el valor `http' en `/etc/apt/apt.conf'. Esto mejora notablemente el rendimiento de las actualizaciones en una red, en especial en una LAN con una gran cantidad de sistemas Debian. Aunque el método de marcado (pinning) de apt_preferences(5) es poderoso, no resuelve la totalidad de temas sobre dependencias puesto que las definiciones de dependencias tienden a buscar las versiones más nuevas de otros programas fundamentales. El uso de chroot es útil para asegurar, simultáneamente, tanto la estabilidad del sistema como el acceso a las últimas versiones de los programas. Este capítulo se basa en sistemas Woody pero la mayoría de la información se aplica también a sistemas Potato (con exepción de apt_preferences(5) y lo concerniente al archivo `/etc/apt/preferences'). 3.1. Introducción ----------------- Si el leer toda la documentación del desarrollador es demasiado para Ud., lea primero este capítulo y empiece a disfrutar toda la potencia de Debian con `testing'/`unstable' :-) 3.1.1. Herramientas principales ------------------------------- dselect -- herramienta de administración de paquetes basada en menús (alto nivel) dpkg -- instala paquetes (package-file centric) apt-get -- instala paquetes (package-archive centric, CLI APT) tasksel -- instala tareas (conjunto de paquetes) aptitude -- instala paquetes (paquetes y tareas, interfaz de APT basada en ncurses) deity -- otra interfaz para APT basada en ncurses synaptic, gsynaptic -- otras interfaces gráficas para APT Estas herramientas no están en un mismo nivel. `dselect' se ejecuta encima de APT (`apt-get') y `dpkg'. APT utiliza `/var/lib/apt/lists/*' para el seguimiento de paquetes disponibles, mientras que `dpkg' usa `/var/lib/dpkg/available'. Si instaló paquetes directamente usando `apt-get' o programas similares como, por ejemplo, `aptitude', asegúrese de actualizar el archivo `/var/lib/dpkg/available' mediante la opción `[U]pdate' del menú de `dselect' o desde la línea de comandos "`dselect update'" antes de ejecutar `dselect select', `tasksel' o `dpkg -l'. En cuanto a la dependencia entre paquetes, `apt-get' obtiene automáticamente los paquetes que dependen entre sí (_depends_) pero ignora los paquetes recomendados (_recommends_) y sugeridos (_suggests_). `dselect', en cambio, ofrece un control más avanzado de los paquetes basado en menús que ofrece la posibilidad de elegir paquetes basándose en _depends_, _recommends_ y _suggests_. `aptitude' tiene la opción de descargar todos los paquetes automáticamente basándose en _depends_, _recommends_ y _suggests_. 3.1.2. Herramientas prácticas ----------------------------- apt-cache - búsqueda de paquetes en el caché local dpkg-reconfigure - vuelve a configurar un paquete ya instalado (si utiliza debconf) dpkg-source - se encarga de los archivos fuentes dpkg-buildpackage - automatiza la creación de un paquete ... 3.2. Fundamentos de la administración de paquetes Debian Debian --------------------------------------------------------------- Puede instalar un conjunto de paquetes denominado _tarea_ o instalar paquetes individuales o actualizar el sistema usando las herramientas de administración de paquetes como se describe a continuación. 3.2.1. Instalación de con `tasksel' -------------------------------------------- `tasksel' es el _Instalador de Tareas de Debian_ que se ofrece durante la instalación como método de instalación "`sencillo'". Cuando uno necesita instalar una determinada función que requiere de múltiples paquetes, esta es la mejor manera de hacerlo. Asegúrese de ejecutar los comandos en el siguiente orden: # dselect update # tasksel `aptitude' también ofrece acceso a las _tareas_. No sólo permite seleccionar _tareas_ sino que permite eliminar paquetes de una _tarea_ en forma selectiva mediante un menú. 3.2.2. Configurar el sistema APT -------------------------------- Para realizar actualizaciones selectivas desde la distribución `de prueba' el sistema APT (>Woody) debe configurarse como en Sección 2.1, `Actualizando de Potato a Woody' para usar aprovechar las características de apt_preferences(5). Primero añada las fuentes para la versión estable (`stable'), de prueba (`testing') e inestable (`unstable') a su `/etc/apt/sources.list'. A continuación, edite `/etc/apt/preferences' para configurar correctamente el Pin-Priority: Package: * Pin: release a=stable Pin-Priority: 500 Package: * Pin: release a=testing Pin-Priority: 600 Package: * Pin: release a=unstable Pin-Priority: 50 3.2.3. `dselect' ---------------- Al arrancar, `dselect' selecciona automáticamente todos los paquetes "Requeridos" ("Required"), "Importantes" ("Important") y "Estándar" ("Standard"). En el sistema Potato, algunos programas muy grandes tales como teTeX y Emacs solían estar aquí y resultaba mejor omitirlos en una instalación inicial deseleccionándolos manualmente (mediante `_'). En Woody, han sido puestos en la categoría de paquetes "Opcionales" ("Optional"). `dselect' tiene una interfaz de usuario algo extraña. Existen cuatro comandos un tanto ambiguos (Mayúsculas, significa ¡MAYÚSCULAS!): Tecla Acción Q Salir. Confirma la selección actual y sale de todas maneras. (no tiene en cuenta las dependencias) R ¡Reestablecer! No quise decir esto. D ¡Maldición! No me importa lo que piensa dselect. ¡Házlo! U Volver todo en el estado sUgerido Con `D' y `Q', puede elegir paquetes en conflicto bajo su entera responsabilidad. Utilice estos comandos con cuidado. Actualmente, `dselect' es una herramienta basada en menús madura que ofrece un control muy preciso sobre los paquetes sugeridos (_suggests_) y recomendados (_recommends_). Añada una línea que contenga la opción "expert" en `/etc/dpkg/dselect.cfg' para reducir la cantidad de información mostrada. Para una máquina más lenta, puede ejecutar `dselect' en otra máquina más rápida para encontrar los paquetes y usar `apt-get install' para instalarlos. `dselect' no ofrece acceso a los paquetes que no han sido favorecidos por la Pin-Priority. 3.2.4. `aptitude' ----------------- `aptitude' es un instalador de paquetes nuevo basado en menús similar a `dselect'. También se puede como alternativa de `apt-get' en la línea de comandos. Véase aptitude(1). `aptitude' acepta comandos de una tecla, que generalmente están en minúsculas. Tecla Acción F10 Menú ? Ayuda u Actualizar la información del archivo de paquetes g Descargar e instalar los paquetes seleccionados q Salir de la pantalla actual y guardar los cambios x Salir de la pantalla actual y descartar los cambios Enter Ver información sobre un paquete `aptitude' ofrece la opción de descargar automáticamente todos los paquetes basándose en _depends_, _recommends_ y _suggests_. Puede alterar este comportamiento eligiendo `F10 -> Optciones -> Manejo de dependencias' de su menú. `aptitude' permite el acceso a todas las versiones de un paquete. 3.2.5. Los comandos `apt-cache' y `apt-get' ------------------------------------------- Con el ejemplo de arriba para trabajar en la versión `de prueba', podemos controlar el sistema usando los siguientes comandos: * `apt-get -u upgrade' Permanece en la distribución `de prueba' y actualiza todos los paquetes del sistema instalando las dependencias desde ella misma. * `apt-get -u dist-upgrade' Permanece en la distribución `de prueba' y actualiza todos los paquetes del sistema resolviendo las dependencias desde ella misma. * `apt-get -u dselect-upgrade' Permanece en la distribución `de prueba' y actualiza todos los paquetes del sistema teniendo en cuenta la selección de `dselect'. * `apt-get -u install ' Instala el y sus dependencias desde la distribución `de prueba'. * `apt-get -u install /unstable' Instala el desde la distribución `inestable' y sus dependencias desde la distribución `de prueba'. * `apt-get -u install -t unstable ' Instala el y sus dependencias desde la distribución `inestable' asignando una Pin-Prioriy igual a 990 a `unstable'. * `apt-cache policy ' Comprueba el estado de los paquetes . * `apt-cache show | less' Comprueba la información referente a los paquetes . * `apt-get install ' Instala una versión particular (<2.2.4-1>) del paquete . * `apt-get -u install ' Instala el paquete y desinstala el paquete * `apt-get remove ' Desinstala el paquete pero conserva intactos los archivos de configuración personalizados. * `apt-get remove --purge ' Desinstala el paquete junto con todos sus archivos de configuración personalizados. En los ejemplos anteriores, el uso de la opción `-u' asegura que `apt-get' muestre la lista de todos los paquetes que van a ser actualizados y pregunte al usuario antes de proceder. Lo siguiente elige la opción `-u' como acción predeterminada: $ cat >> /etc/apt/apt.conf << . // Mostrar siempre los paquetes que van a ser actualizados (-u) APT::Get::Show-Upgraded "true"; . Utilice la opción `-s' para simular la actualización sin llevarla realmente a cabo. 3.2.6. Permanecer en una versión de la distribución Debian ---------------------------------------------------------- Dependiendo de su preferencia por permanecer en una determinada versión de Debian , puede modificar el archivo de ejemplo `/etc/apt/preferences' en Sección 3.2.2, `Configurar el sistema APT' para que se ajuste a sus necesidades: permanecer en stable: poner la Pin-Priority de testing en 50 permanecer en testing: mantener la configuración dada anteriormente permanecer en testing (unstable): poner la Pin-Priority de unstable en 500 permanecer en unstable(testing): poner la Pin-Priority de unstable en 800 Una idea para la elección del Pin-Priority consiste en moverse desde arriba hacia abajo en la tabla anterior conforme transcurre el tiempo entre la fecha inmediatamente posterior a la salida de una distribución y la fecha de congelación de la siguiente versión. Advertencia: el permanecer en la versión `de prueba' de Debian tiene como efecto colateral la lenta solución de los fallos de seguridad. Si mezcla las versiones de Debian, `de prueba' con `estable' o `inestable' con `estable', es muy probable que descarge diversos paquetes importantes de la rama `de prueba' o `inestable' que pueden tener errores. Queda debidamente advertido. Ejemplos de `/etc/apt/preferences' que bloquean algunos paquetes fundamentales en su versión más madura mientras actualizan a una versión menos madura paquetes que no son esenciales, están disponibles en el examples subdirectory (http://www.debian.org/doc/manuals/debian-reference/examples/) como `preferences.testing' y `preferences.unstable'. Por otra parte, `preferences.stable' fuerza a todos los paquetes a volver a su versión `estable'. 3.2.7. Volver todos los paquetes a su versión `estable' ------------------------------------------------------- Para volver todos los paquetes a la versión `estable', edite el `/etc/apt/preferences' de la siguiente manera: Package: * Pin: release a=stable Pin-Priority: 1001 y ejecute "`apt-get upgrade'" que forzará el retorno a la rama estable debido a que Pin-priority > 1000. Tenga cuidado, puede haber algunos inconvenientes con las dependencias. 3.2.8. Repaso de `/etc/apt/preferences' --------------------------------------- En el `/etc/apt/preferences' de ejemplo presentado en Sección 3.2.2, `Configurar el sistema APT', la primera línea `Package: *' significa que esa sección se aplica a todos los paquetes. Puede usar el nombre de un paquete en vez de * para especificar la Pin-Priority del mismo. En el segundo renglón, "Pin: release a=stable" significa que `apt-get' descargará el archivo `Packages.gz' del repositorio que contiene al archivo `Release' con la línea "Archive: stable". En el último renglón "Pin-Priority: 500" indica que la Pin-Priority es 500. Si existen varios paquetes con el mismo nombre, generalmente el que tiene el valor de Pin-Priority más alto es el que se instala.. Los significados de los Pin-Priority son: * 1001 en adelante: prioridades para volver a la versión anterior. Se permite volver a la versión anterior del paquete. * 100 a 1000: prioridades estándar. No se permite volver a la versión anterior del paquete. Algunos valores de Pin-Priority claves: * 990: la prioridad dado por la opción `--target-release' or `-t' of apt-get(8) option. * 500: la prioridad predeterminada de todos los paquetes. * 100: la prioridad de los paquetes recientemente instalados. * 0 a 99: prioridades que no son automáticas (se utilizan únicamente si el paquete no está instalado y no existe otra versión disponible). * menor que 0: la versión nunca es seleccionada. Se puede obtener el mismo efecto que `--target-release' configurando `/etc/apt/apt.conf' de la siguiente manera: # echo 'APT::Default-Release "testing";' >> /etc/apt/apt.conf La opción `--target-release' de la línea de comandos y la configuración de `/etc/apt/apt.conf' tienen prioridad sobre la configuración de `/etc/apt/preferences'. Tenga cuidado con estas interferencias cuando juegue con `/etc/apt/preferences'. 3.3. Comandos de supervivencia de Debian ---------------------------------------- Con estos conocimientos, se puede vivir _eternamente_ de "actualizaciones" :-) 3.3.1. Búsqueda de fallos y ayuda en Debian ------------------------------------------- Si tiene problemas con un paquete determinado, asegúrese de consultar los siguientes sitios antes de pedir ayuda o enviar un informe de fallos. (`lynx', `links' y `w3m' funcionan igualmente bien): $ lynx http://bugs.debian.org/ $ lynx http://bugs.debian.org/ # si conoce el nombre del paquete $ lynx http://bugs.debian.org/ # si conoce el número de fallo Busque en Google (www.google.com) incluyendo "site:debian.org" como palabra clave. En caso de duda, recurra a la documentación. Inicialice `CDPATH' de la siguiente manera: export CDPATH=.:/usr/local:/usr/share/doc y escriba $ cd $ mc 3.3.2. Resolución de problemas al actualizar con APT ---------------------------------------------------- Al actualizar desde `unstable'/`testing' pueden surgir problemas entre dependencias como se explicó en Sección 2.3, `Actualizando'. La mayoría de las veces, es debido a que el paquete que se desea actualizar posee una nueva dependencia que no es satisfecha. Estos problemas se solucionan haciendo # apt-get dist-upgrade Si esto no funciona, entonces repita las siguientes operaciones hasta que el problema se resuelva por sí solo: # apt-get upgrade -f # continue con upgrade a pesar de los errores ... o # apt-get dist-upgrade -f # continue con dist-upgrade a pesar de los errores Algunos scripts de actualización conflictivos pueden provocar inconvenientes en forma recurrente. Generalmente resulta conveniente resolver este tipo de situación inspeccionando los scripts `/var/lib/dpkg/info/.{post,pre}{inst,rm}' del paquete problemático y ejecutando: # dpkg --configure -a # configura todos los paquetes parcialmente # instalados Si algún script se queja sobre un archivo de configuración faltante, busque en `/etc' el archivo de configuración correspondiente. Si existe alguno con extensión `.new' (o algo similar), recurra a `mv' para eliminar el sufijo. Pueden aparecer problemas de dependencias al instalar paquetes de la rama `inestable'/`de prueba'. Existen distintas maneras de burlar las dependencias. # apt-get install -f # no tener en cuenta dependencias no # resueltas Un método alternativo para resolver estas situaciones consiste en usar el paquete `equivs'. Véase `/usr/share/doc/equivs/README.Debian'. 3.3.3. Rescate usando `dpkg' ---------------------------- La recuperación de un `dselect' (APT) que no funciona más en un sistema inutilizado se puede realizar usando `dpkg' sin APT: # cd /var/cache/apt/archives # dpkg -i libc6* libdb2* perl* # dpkg -i apt* dpkg* debconf* # dpkg -i * # hasta que no haya más errores Si falta un paquete, obténgalo de mirror sites (http://www.debian.org/mirror/) mediante: # mc # utilice "FTP link" apuntando a un servidor FTP Debian Los paquetes en el servidor HTTP/FTP pueden no estar localizados en el directorio habitual `/dist' sino en el nuevo directorio `/pool'. Luego instálelo haciendo: # dpkg -i /var/cache/apt/archives/ Para una dependencia no resuelta, resuelvala o utilice: # dpkg --ignore-depends=,... -i # dpkg --force-depends -i # dpkg --force-depends --purge # dpkg --force-confmiss -i # Instale archivo de # configuración # faltante 3.3.4. Recuperar los datos de la selección de paquetes ------------------------------------------------------ Si por alguna razón se inutiliza `/var/lib/dpkg/status' , el sistema Debian perderá los datos de la selección de paquetes y resultará enormemente afectado.. Busque el archivo `/var/lib/dpkg/status' anterior en `/var/lib/dpkg/status-old' o `/var/backups/dpkg.status.*'. Puede resultar una muy buena idea mantener `/var/backups/' en una partición aparte ya que este directorio contiene una inmensa cantidad de datos importantes del sistema. Si el archivo `/var/lib/dpkg/status' anterior no se encuentra disponible, aún puede recuperar información de los directorios situados `/usr/share/doc/'. # ls /usr/share/doc | \ grep -v [A-Z] | \ grep -v '^texmf$' | \ grep -v '^debian$' | \ awk '{print $1 " install"}' | \ dpkg --set-selections # dselect --expert # reinstale el sistema, use dselect si es necesario 3.3.5. Recuperando un sistema luego de borrar `/var' ---------------------------------------------------- Puesto que el directorio `/var' contiene datos que se actualizan continuamente, como por ejemplo el correo, es suceptible de corromperse. Ubicándolo en una partición independiente disminuye los riesgos. Si ocurre un desastre, puede que deba reconstruir el directorio `/var' para recuperar el sistema Debian. Obtenga la estructura del directorio `/var' de un sistema Debian funcional basada en una versión Debian igual o anterior, por ejemplo `var.tar.gz (http://people.debian.org/~osamu/pub/)', y ubíquela en el directorio raíz del sistema dañado. A continuación, # cd / # mv var var-old # si quedan contenidos útiles # tar xvzf var.tar.gz # utilice la estructura Woody # aptitude # o dselect Esto proporcionará un sistema funcional. Puede recuperar la selección de paquetes, usando el método descripto en Sección 3.3.4, `Recuperar los datos de la selección de paquetes'. ([FIXME]: Este procedimiento necesita de más pruebas.) 3.3.6. Instalar un paquete en un sistema que no arranca ------------------------------------------------------- Arranque Linux usando un diskete/CD de rescate o una partición alternativa en un sistema multi-arranque. Monte el sitema que no arranca en `/target' y utilice el modo de instalación chroot de `dpkg'. # dpkg --root /target -i Luego configure y solucione los problemas. A propósito, si es un `lilo' dañado el que le impide arrancar el sistema, puede usar un disco de rescate estándar de Debian. En el indicador de arranque, suponiendo que la partición raíz de su intalación Linux está en `/dev/hda12' y que desea entrar al nivel de ejecución 3, escriba: boot: rescue root=/dev/ 3 De esta manera arrancará un sistema prácticamente funcional cuyo kernel se encuentra en el diskete (pueden aparecer pequeños problemas debido a la falta de algunas de las características o módulos del kernel) 3.3.7. Qué hacer si el comando `dpkg' se encuentra dañado --------------------------------------------------------- Un `dpkg' dañado puede tornar imposible la instalación de cualquier archivo `.deb'. Un procedimiento similar al siguiente le ayudará a superar esta situación (en la primera línea, puede reemplazar "links" con su navegador de consola favorito) $ links http:///debian/pool/main/d/dpkg/ ... descargue una versión de dpkg__.deb $ ar x dpkg__.deb $ su password: ***** # mv data.tar.gz /data.tar.gz # cd / # tar xzfv data.tar.gz Para una máquina `i386', puede utilizar también la URL `http://packages.debian.org/dpkg'. 3.4. Comandos 'nirvana' de Debian --------------------------------- Bajo la _luz_ de estos comandos una persona se salvará de la lucha kármica eterna contra el infierno de la actualización y le permitirá alcanzar el _nirvana_ Debian. :-) 3.4.1. Información sobre un archivo ----------------------------------- Para averiguar a qué paquete pertenece un archivo determinado: $ dpkg {-S|--search} patrón # busca 'patrón' en los paquetes instalados $ wget http://ftp.us.debian.org/debian/dists// $ zgrep -e pattern # busca 'patrón' en los archivos descargados de Debian O utilice comandos de paquetes especializados: # apt-get install dlocate $ dlocate # alternativa rápida de dpkg -L y dpkg -S ... # apt-get install auto-apt # herramienta de instalación automática de paquetes # bajo demanda # auto-apt update # crea el archivo db para auto-apt $ auto-apt search # busca de 'patrón' en todos los paquetes, instalados o no 3.4.2. Información sobre un paquete ----------------------------------- Buscar y mostrar la información sobre un paquete. Asegúrese de apuntar a un/unos archivo(s) APT adecuado(s) editando `/etc/apt/sources.list'. Si desea ver las diferencias entre un paquete de la rama `de prueba'/`inestable' y uno instalado, utilice `apt-cache policy'. # apt-get check # actualiza el caché y verifica las dependencias $ apt-cache search # busca un paquete a partir del 'patrón' $ apt-cache policy # información sobre la prioridad de un # paquete $ apt-cache show -a # muestra la descripción del paquete en # todas las distribuciones $ apt-cache showsrc # muestra la descripción de un paquete # fuente $ apt-cache showpkg # información de depuración de un paquete # dpkg --audit|-C # busca paquetes parcialmente instalados $ dpkg {-s|--status} # descripción de un paquete instalado $ dpkg -l # estado de un paquete instalado (una # línea) $ dpkg -L # lista los archivos instalados por el # paquete `apt-cache showsrc' no está documentado en el lanzamiento de Woody pero funciona :) Asimismo puede encontrar información de paquetes en (utilizo `mc' para navegar): /var/lib/apt/lists/* /var/lib/dpkg/available La comparación de los siguientes archivos proporciona inoformación sobre lo que ocurrió exactamente durante las últimas instalaciones. /var/lib/dpkg/status /var/backups/dpkg.status* 3.4.3. Instalación automática con APT ------------------------------------- Para una instalación automática, añada la siguiente línea al `/etc/apt/apt.conf': Dpkg::Options {"--force-confold";} Esto equivale a ejecutar `apt-get -q -y '. Puesto que de esta manera se responden con "Sí" todas las preguntas fomuladas, puede causar problemas. Por lo tanto use este truco con cuidado. Véase apt.conf(5) y dpkg(1). Posteriormente puede configurar cualquier paquete siguiendo Sección 3.4.4, `Reconfigurar paquetes instalados'. 3.4.4. Reconfigurar paquetes instalados --------------------------------------- Utilice los siguientes comandos para reconfigurar un paquete ya instalado. # dpkg-reconfigure --priority= [...] # dpkg-reconfigure --all # reconfigura todos los paquetes # dpkg-reconfigure locales # genera los nuevos locales # dpkg-reconfigure --p= xserver-xfree86 # reconfigura el # servidor X Hago lo mismo con `debconf' si necesita cambiar en forma permanente el modo de diálogo de `debconf'. Algunos programas vienen con scripts de configuración especiales. apt-setup - crea el /etc/apt/sources.list install-mbr - instala un administrador del sector de arranque maestro tzconfig - configura el huso horario local gpmconfig - configura el administrador del ratón gpm eximconfig - configura Exim (MTA) texconfig - configura teTeX apacheconfig - configura Apache (httpd) cvsconfig - configura CVS sndconfig - configura el sistema de sonido ... update-alternatives - configuración del comando predeterminado, por ej. vim por vi update-rc.d - administación de los scripts de arranque System-Vt update-menus - sistema de menús de Debian ... 3.4.5. Desinstalar y purgar paquetes ------------------------------------ Desinstalar un paquete manteniendo su configuración: # apt-get remove ... # dpkg --remove ... Desinstalar un paquete incluyendo su configuración: # apt-get remove --purge ... # dpkg --purge ... 3.4.6. Conservar paquetes antiguos ---------------------------------- Por ejemplo, para conservar `libc6' y `libc6-dev' para `dselect' y `apt-get -u upgrade ' se puede hacer: # echo -e "libc6 hold\nlibc6-dev hold" | dpkg --set-selections `apt-get -u install ' no se verá afectado por esto. Para conservar un paquete forzando una actualización automática a una versión anterior mediante `apt-get -u upgrade ' o `apt-get -u dist-upgrade', añada lo siguiente al `/etc/apt/preferences': Package: libc6 Pin: release a=stable Pin-Priority: 2000 En "`Package:'" no se pueden usar entradas del tipo "`libc6*'". Si necesita conservar todos los paquetes binarios relacionados con el paquete fuente `glibc' en forma conjunta, debe listarlos en forma explícita. El siguiente comando lista todos los paquetes que se desean conservar: dpkg --get-selections "*"|grep -e "hold$" 3.4.7. Sistema mixto `estable'/`de prueba'/`inestable' ------------------------------------------------------ `apt-show-versions' puede mostrar las versiones de los paquetes disponibles en cada distribución. $ apt-show-versions | fgrep /testing | wc ... cantidad de paquetes de la rama de prueba (testing) $ apt-show-versions -u ... lista de paquetes que se pueden actualizar $ apt-get install `apt-show-versions -u -b | fgrep /unstable` ... actualiza todos los paquetes de la rama inestable (unstable) a su versión más reciente 3.4.8. Eliminar paquetes del caché ---------------------------------- La instalación de paquetes con APT guarda los paquetes en `/var/cache/apt/archives'. # apt-get autoclean # elimina únicamente los paquetes inútiles # apt-get clean # elimina la totalidad de los paquetes del caché 3.4.9. Grabar/copiar la configuración del sistema ------------------------------------------------- Para hacer una copia local del estado de la selección de los paquetes: # debconf-get-selections > # dpkg --get-selections "*" > # o usar \* `"*"' incluye también los nombres de los paquetes a purgar en `'. Puede transferir este archivo a otra computadora e instalarlo haciendo: # dselect update # debconf-set-selections < # dpkg --set-selections < # apt-get -u dselect-upgrade # dselect install 3.4.10. Portar un paquete a la rama `stable' -------------------------------------------- Para una actualización parcial del sistema `estable', es conveniente reconstruir el paquete para el entorno dado a partir de su código fuente. Esto evita actualizaciones masivas de paquetes debido a las dependencias. Primero, añada las siguientes entradas al `/etc/apt/sources.list': deb-src http://http.us.debian.org/debian testing \ main contrib non-free deb-src http://http.us.debian.org/debian unstable \ main contrib non-free Cada entrada para `deb-src' está dividida en dos por cuestiones de impresión aunque en realidad las entradas en el `sources.list' deben escribirse en una única línea. A continuación, obtenga el código fuente y cree una copia local del paquete: $ apt-get update # actualiza la lista de paquetes del repositorio $ apt-get source $ dpkg-source -x $ cd ... busque los paquetes requeridos (Build-depends en el archivo .dsc) e instálelos. Necesitará también el paquete "fakeroot". $ dpkg-buildpackage -rfakeroot ...o (sin firma) $ dpkg-buildpackage -rfakeroot -us -uc # utilice luego "debsign" si es necesario ...luego para instalarlo $ su -c "dpkg -i " En general, se necesita instalar algunos paquetes con la opción "-dev" para satisfacer la dependencia entre paquetes. `debsign' pertenece al paquete `devscripts'. `auto-apt' puede fácilmente satisfacer estas dependencias. La utilización de `fakeroot' evita el uso innecesario de la cuenta de superusuario. En Woody, estos temas sobre dependencias pueden simplificarse. Por ejemplo, para compilar el paquete fuente `pine': # apt-get build-dep pine # apt-get source -b pine 3.4.11. Archivo local de paquetes --------------------------------- A fin de crear un archivo local de paquetes que sea compatible con los sistemas APT y `dselect', es necesario crear el archivo `Packages' y archivar los paquetes en un árbol de directorios determinado. Se puede crear un repositorio local `deb' similar al oficial de Debian haciendo: # apt-get install dpkg-dev # cd # install -d # los paquetes se ubicarán físicamente aquí # install -d dists//
/binary- # ls -1 | sed 's/_.*$/ extra /' | uniq > # editor # ajuste # dpkg-scanpackages / \ > dists//
/binary-/Packages # cat > dists//
/Release << EOF Archive: Version: <3.0> Component:
Origin: Label: Architecture: EOF # echo "deb file:
" \ >> /etc/apt/sources.list O bien, rápidamente haciendo: # apt-get install dpkg-dev # mkdir # mv # dpkg-scanpackages /dev/null | \ gzip - > /Packages.gz # echo "deb file: ./" >> /etc/apt/sources.list Se puede acceder en forma remota a estos archivos habilitando el acceso a estos directorios mediante HTTP o FTP y modificando convenientemente las entradas del archivo `/etc/apt/sources.list'. 3.4.12. Convertir o instalar un paquete que no pertenece a Debian ----------------------------------------------------------------- `alien' permite la conversión de paquetes `rpm' de Redhat , `slp' de Stampede , `tgz' de Slackware y `pkg' de Solaris al formato de paquetes `deb' de Debian. Si desea utilizar un paquete de una distribución Linux diferente a la que tiene instalada en su sistema, puede usar `alien' para convertirlo en su formato de paquetes preferido e instalarlo. `alien' soporta también paquetes LSB. 3.4.13. Verificar los paquetes instalados ----------------------------------------- `debsums' permite verificar la integridad de los paquetes instalados usando las sumas de control (checksums) MD5. Algunos paquetes no poseen sumas de control MD5. Veamos una solución provisoria para los administradores de sistema: # cat >>/etc/apt/apt.conf.d/90debsums DPkg::Post-Install-Pkgs {"xargs /usr/bin/debsums -sg";}; ^D por Joerg Wendland (sin verificar). 3.5. Otras particularidades de Debian ------------------------------------- 3.5.1. El comando `dpkg-divert' ------------------------------- _dpkg-divert_ fuerza a `dpkg' a no instalar un archivo en su lugar habitual sino en otro diferente. Estos _desvíos_ se pueden usar en los scripts de los paquetes Debian para quitar un archivo que provoca un conflicto. Los administradores de sistemas también pueden usarlo para no tener en cuenta algunos archivos de configuración o algunos archivos (que no han sido marcados como tales) necesitan preservarse de `dpkg' al instalar una versión nueva de un paquete que los incluya. # dpkg-divert [--add] # añade "diversion" # dpkg-divert --remove # elimina "diversion" En general, resulta una buena idea no usar `dpkg-divert' salvo que sea absolutamente necesario hacerlo. 3.5.2. El paquete `equivs' -------------------------- Si compila un programa a partir de su código fuente, resulta conveniente crear un paquete Debian (`*.deb'). Utilice `equivs' como último recurso. Package: equivs Priority: extra Section: admin Description: burlar las dependencias entre paquetes Este es un paquete ficticio que se puede usar para crear paquetes Debian que contienen únicamente información sobre dependencias. 3.5.3. Comandos alternativos ---------------------------- Para utilizar el comando `vim' en lugar de `vi', utilice `update-alternatives': # update-alternatives --display vi ... # update-alternatives --config vi Selection Command ----------------------------------------------- 1 /usr/bin/elvis-tiny 2 /usr/bin/vim *+ 3 /usr/bin/nvi Enter to keep the default[*], or type selection number: 2 Los miembros del sistema de alternativos de Debian se encuentran en `/etc/alternatives' como enlaces simbólicos. Para tener su entorno de ventanas X favorito, aplique `update-alternatives' a `/usr/bin/x-session-manager' y `/usr/bin/x-window-manager'. `/bin/sh' es un enlace simbólico a `/bin/bash' o `/bin/dash'. Resulta más seguro utilizar `/bin/bash' para preservar la compatibilidad con scripts antiguos contaminados con comandos del bash aunque resulta más disciplinado usar `/bin/dash' para asegurar compatibilidad POSIX. La actualización al kernel 2.4 Linux kernel tends to set this to `/bin/dash'. 3.5.4. `init' del System-V y niveles de ejecución ------------------------------------------------- El nivel de ejecución predeterminado se puede configurar en el `/etc/inittab'. A diferencia de otras distribuciones, Debian deja la administración de los niveles de ejecución bajo la completa responsabilidad del administrador de sistemas. La administración de `init' en un sistema System-V es llevada a cabo mediante los scripts `update-rc.d'. Arrancar `/etc/init.d/' en los niveles de ejecución 1,2,3 y detenerlo en 4,5 con una prioridad igual a 20 (normal) se puede realizar haciendo: # update-rc.d start 20 1 2 3 . stop 20 4 5 . Si el script existe en `init.d', el enlace simbólico se puede eliminar haciendo: # update-rc.d -f remove Para editar los niveles de ejecución, hago trampa. Edito manualmente las entradas usando el comando `mv' en el indicador del `mc' y copio los enlaces con Alt-Enter. Por ejemplo: # mv S99xdm K99xdm # desactivo xdm (X display manager) Incluso, como atajo rápido, desactivo un demonio escribiendo `exit 0' al comienzo de un script del `init.d'. Después de todo son `archivos de configuración'. 3.5.5. Servicios desactivados ----------------------------- La distribución Debian toma muy en serio la seguridad del sistema y espera que el administrador del sistema sea competente. Por lo tanto, la facilidad de uso a menudo se relega al segundo plano y determinados servicios brindados por los demonios vienen con el nivel de seguridad más alto y pocos servicios (o ninguno) estan disponibles en su estado de instalación predeterminado. Ejecute `ps aux' o consulte el contenido de `/etc/init.d/*' y `/etc/inetd.conf', si posee alguna duda (sobre Exim, DHCP, ...). También consulte el `/etc/hosts.deny'. Asimismo resulta útil el comando `pidof' (véase pidof(8)). En versiones recientes de Debian X11 no permite, por defecto, conexiones TCP/IP (remotas). El redireccionamiento de X también se encuentra deshabilitado en SSH. ------------------------------------------------------------------------------- A. Apéndice ----------- A.1. Autores ------------ La Guía de referencia rápida Debian fue iniciada por Osamu Aoki a partir del resumen de su instalación personal que inicialmente denominó "Referencia Rápida..." ("Quick Reference ..."). Muchos de los contenidos provienen de los archivos de la lista de correo "debian-user". También fueron referenciados "Manual de Instalación Debian " y "Debian Release Notes". Siguiendo las sugerencias de Josip Rodin, un miembro muy participativo del Proyecto de Documentación Debian (http://www.debian.org/doc/ddp) (DDP) y el encargado actual de las "FAQ de Debian", el documento fue renombrado como "Referencia Debian" y se nutrió con diversos capítulos de las "Debian FAQ". Luego se creo el resumen "Guía de referencia rápida Debian". Este documento fue editado, traducido y ampliado por los siguientes miembros el equipo QREF: * Inglés original de la "Quick Reference..." * Osamu Aoki (coordinador: de todos los contenidos) * Relectura del original en inglés y contribuciones adicionales * David Sewell (coordinador: en estilo) * Thomas Hood (temas relacionados con redes) * Brian Nelson (en especial, temas relacionados con X) * Jan Michael C Alonzo * Daniel Webb * Intercambio de opiniones con todos los traductores * Traducción al francés * Guillaume Erbs (coordinador: fr) * Rénald Casagraude * Jean-Pierre Delange * Daniel Desages * Traducción al italiano * Davide Di Lazzaro (coordinador: it) * Traducción al portugués brasileño * Paulo Rogério Ormenese (coordinador: pt-br) * Andre Luis Lopes * Marcio Roberto Teixeira * Rildo Taveira de Oliveira * Raphael Bittencourt Simoes Costa * Gustavo Noronha Silva (coordinador) * Traducción al español * Walter Echarri (coordinador: es) * José Carreiro * Traducción al alemán * Jens Seidel (coordinador: de) * Willi Dyck * Stefan Schröder * Agon S. Buchholz * Traducción al polaco---los siguientes miembros de PDDP (http://debian.linux.org.pl): * Marcin Andruszkiewicz * Mariusz Centka * Bartosz Fenski (coordinador: pl) * Radoslaw Grzanka * Bartosz 'Xebord' Janowski * Jacek Lachowicz * Rafal Michaluk * Leonard Milcin, Jr. * Tomasz Z. Napierala * Oskar Ostafin * Tomasz Piekos * Jacek Politowski * Mateusz Prichacz * Marcin Rogowski * Pawel Rozanski * Mariusz Strzelecki * Krzysztof Scierski * Przemyslaw Adam Smiejek * Krzysztof Szynter * Mateusz Tryka * Cezary Uchto * Krzysztof Witkowski * Bartosz Zapalowski * Traducción al chino (simplificado) * Hao "Lyoo" LIU * Ming Hua * Xiao Sheng Wen (leader: zh-cn) * Haifeng Chen * Xie Yanbo * easthero * Traducción al chino (tradicional) * Asho Yeh (coordinador: zh-tw) * Tang Wei Ching (ex-coordinador: zh-tw) * Traducción al japonés * Shinichi Tsunoda (coordinador: ja) * Osamu Aoki A.2. Garantías -------------- Puesto que no soy un experto, no pretendo ser un entendido en Debian o Linux en general. Las consideraciones sobre seguridad quizás sean aplicables únicamente al ámbito doméstico. El presente documento no reemplaza a ninguna de las guías autorizadas. No se ofrecen garantías de ningún tipo. Todas las marcas son propiedad de sus respectivos dueños. A.3. Comentarios ---------------- Son bienvenidos todos los comentarios y sugerencias. Por favor, envíen un mensaje a Debian BTS system (http://bugs.debian.org/) para el paquete `debian-reference' o los respectivos paquetes traducidos. El uso de `reportbug' facilita el envío de un reporte de fallos. Incluso pueden enviar un mail para Osamu Aoki (http://people.debian.org/~osamu/) a en inglés o a cada traductor en su respectivo idioma) ------------------------------------------------------------------------------- Guía de referencia rápida Debian Osamu Aoki Coordinador de la traducción al español: Walter O. Echarri Sección A.1, `Autores' CVS, jue ene 18 11:54:33 UTC 2007