Artículo para la revista Solo Linux número ??: Herramientas de gestión de paquetes para Debian <author>Javier Fernández-Sanguino Peña <date>14 Enero 2001 <abstract> En este artículo se van a estudiar las distintas herramientas de paquetes disponibles para la distribución Debian GNU/Linux, tanto las incorporadas en la propia distribución como las desarrolladas por otros fabricantes. </abstract> <sect>Los paquetes en una distribución y su gestión <p> Cualquier persona que se ha enfrentado a una distribución de GNU/Linux habrá observado el componente fundamental de la mayoría de las distribuciones (excepto, claro, aquellas de "hagalo todo usted mismo"): los paquetes. Se trata de un concepto que no es particular de dichas distribuciones, de hecho se utiliza en el mundo UNIX, en sistemas operativos propietarios, hace ya un buen tiempo. Pero sin embargo en las distribuciones adquiere un énfasis particular, dado que los sistemas de paquetes llevan funcionalidades adicionales, con el interés de librar al usuario de tareas que se podrían gestionar mejor de forma automática. De este interés surgen los conceptos de "paquetes que dependen de otros paquetes", "paquetes que entran en conflicto con otros", etc.. En cualquier caso, es necesario diferenciar entre lo que es el sistema de paquetes y el formato de paquetes, para no dar lugar a confusión. El sistema de paquetes es el conjunto de reglas propias de una distribución que le indican dónde se localizan los programas, cómo se instalan demonios en el sistema, qué ficheros genéricos de configuración son accesibles (o modificables) por los programas, así como las distintas interacciones entre los paquetes, indicando, por ejemplo, si dos programas tienen incompatibilidades y no pueden coexistir en el mismo sistema. No entraremos en detalle sobre qué es, por dentro un paquete <!-- sólo para solo Linux -->(tema tratado en el artículo "Creación de paquetes Debian GNU/Linux" en el número 4 de la revista Linux Actual), pero baste decir que, para los propósitos de un usuario, no es más que un formato de fichero determinado para englobar todos los elementos que forman parte de un determinado software. Estos elementos serán: binarios, páginas de manual, documentos HTML, imágenes y ficheros de configuración. De entre todas las distribuciones de GNU/Linux se puede decir, sin ningún tipo de duda, que el sistema de gestión de paquetes de Debian GNU/Linux es el más completo de todos, y el que ofrece las herramientas más interesantes al administrador de dichos sistemas (que, en el caso de los sistemas caseros coincide con el usuario final). En este artículo se van a introducir las distintas herramientas disponibles para los usuarios de Debian GNU/Linux, así como la forma en que dichas herramientas se integran y complementan. No se tratarán aquí, sin embargo, las particularidades del sistema de paquetes y sus (grandes) diferencias con otras distribuciones. <sect>La vista general, como se relaciona todo <p> Como se muestra en la figura 1, las herramientas de gestión de paquetes abarcan distintos niveles de una sencilla arquitectura. Desde el gestor de paquetes fundamental, pasando por las librerías que incrementan su funcionalidad, hasta las herramientas de alto nivel, capaces de interactuar directamente con el el gestor de paquetes, o a través de las librerías disponibles. En Debian GNU/Linux esto se concreta en las siguientes herramientas: <itemize> <item>Gestor de paquetes: <tt>dpkg</tt> <item>Librería de funciones añadidas: <tt>apt</tt> <item>Herramientas integradas de gestión: <tt>dselect</tt> y <tt>aptitude</tt>, para modo texto, y <tt>gnome-apt</tt>, así como las proporcionadas por las distribuciones comerciales, para el modo gráfico </itemize> Esta división no implica que el uso de las herramientas de bajo nivel estén vedadas al usuario, más bien al contrario, es habitual hacer uso de éstas directamente. Sin embargo su uso se recomienda a usuarios que conozcan Debian dado que su uso directo, por ejemplo en la instalación de paquetes, puede dar lugar a comportamientos no esperados por la persona que no conozca el sistema de paquetes. Por ejemplo, un usuario novel puede haber oído que Debian GNU/Linux es capaz de actualizar automáticamente la lista de paquetes e instalar los paquetes que se hayan actualizado. Sin embargo, si intenta realizar esta operación directamente con <tt>dpkg</tt> quedará descorazonado al no ver esta funcionalidad disponible. Se preguntará "pero si éste es el gestor fundamental, ¿por qué no puedo hacerlo desde aquí?". La respuesta la conoce cualquier persona con experiencia en el mundo GNU/Linux o en UNIX en general: la filosofía no es construir herramientas monolíticas sino, en base a pequeñas herramientas, ir incorporando nuevas funcionalidades. Al margen de ésto, el lector avanzado quizás eche en falta muchas pequeñas herramientas disponibles en Debian GNU/Linux. Existen muchas que interactúan con el sistema de paquetes para dar información al administrador, pero estas se tratarán al final de este artículo. <sect>Dpkg, la herramienta principal <p><tt>Dpkg</tt> es, sin duda, una de las herramienta más compleja de la existentes en Debian GNU/Linux. Si un usuario novel ejecuta <tt>dpkg -h</tt> posiblemente se quede apabullado por las más de tres pantallas de información que saltan a la vista. Pero no es, ni mucho menos, una herramienta difícil de utilizar. <tt>Dpkg</tt> es la herramienta fundamental dentro del sistema de paquetes de Debian GNU/Linux. Es la encargada de instalar o eliminar paquetes, y manejar la base de datos del sistema con la situación de paquetes, de forma que indique claramente estos cambios. Además, dado que conoce las interioridades del sistema de paquetes, no sólo instala los ficheros que contiene los paquetes en los lugares correspondientes, sino que también ejecuta en determinados momentos de la instalación, los programas que el desarrollador del paquete haya indicado. De esta forma, al instalar un paquete, se llamará de forma "mágica" al programa encargado de configurarlo. Éste podrá modificar sólo unos pocos ficheros en el sistema, o mostrar al usuario una interfaz para adaptar el programa que está instalando a su sistema. Así, la herramienta <tt>dpkg</tt> permite: <itemize> <item>instalar (-i ó --install) y desinstalar (-r ó --remove) paquetes. Si desea borrar <em>todo</em> lo instalado por un paquete, incluyendo ficheros de configuración utilice --purge. <item>configurarlos (--configure), aunque esta tarea se hace siempre después de la instalación puede ser que la configuración falle y se quiera llevar a cabo este último paso. Si desea reconfigurar un paquete que está bien instalado utilice <tt>dpkg-reconfigure</tt> (del paquete <tt>debconf</tt>) <item>ver la información de estado de un paquete (-s ó --status) <item>obtener una lista de los ficheros que proporciona (-L ó --listfiles) <item>obtener una lista de los paquetes disponibles (-l ó --list) </itemize> Y muchas otras cosas más, como auditar el sistema, sacar la información de situación del sistema de paquetes: qué paquetes están marcados para instalar, cuáles han sido configurados, etc.. El usuario experto, que juguetee con el formato de paquetes sabrá que <tt>dpkg</tt> también puede extraer los ficheros de un fichero <tt>.deb</tt>. Ya dijimos antes que no es lo mismo un sistema de paquetes que los paquetes en sí, éstos últimos no son más que un conjunto de ficheros. En esencia, existen las mismas diferencias entre un fichero <tt>.deb</tt> y un fichero <tt>.rpm</tt> que la existente entre un fichero <tt>.arj</tt> y un fichero <tt>.zip</tt>. Así pues, <tt>dpkg</tt> puede manejar directamente los ficheros <tt>.deb</tt> que tengamos: <itemize> <item>obteniendo la información de éstos (-I ó --info) <item>extrayendo sus contenidos (-x ó --extract), o sus ficheros de control (-e ó --control) <item>listando éstos (-c ó --contents) <item>o incluso construirlos de una estructura de directorios apropiada (-b ó --build) </itemize> En realidad, para llevar a cabo estas funciones, <tt>dpkg</tt> llama, de forma transparente, a la aplicación <tt>dpkg-deb</tt>. <sect>Interrelaciones entre paquetes <p>Debian introduce en sus sistema de paquetes una serie de interrelaciones que permiten a los desarrolladores indicar cómo se comportan sus paquetes con el resto de los paquetes de la distribución. De ésta forma el paquete adquiere otra entidad (quizás podría denominarse <em>social</em> dentro del mundillo de paquetes), y el sistema de paquetes gana en complejidad. Pero, al mismo tiempo, facilita enormemente su utilización al usuario ya que, le avisa de determinadas situaciones, como puedan ser: <itemize> <item>dependencias con otros paquetes, si no están instalados éstos no podrá instalarse el paquetes (<em>Depends</em> y <em>Pre-Depends</em>). Las dependencias también podrán ser menos fuertes (<em>Recommends</em>). <item>paquetes con los que entra en conflicto y que no pueden estar instalados cuando se instala éste (<em>Conflicts</em>). <item>paquetes que mejoran el paquete que se está instalando y que, aunque no son necesarios para su funcionamiento, se recomienda su instalación (<em>Suggests</em>). <item>paquetes "virtuales" ofrecidos por el paquete (<em>Provides</em>) <item>paquetes a los que éste paquete reemplaza (<em>Replaces</em>). </itemize> <p>Está clara su utilidad, ya que así un usuario evita instalar dos gestores de correo que, al configurarse, entrarían en conflicto entre sí, "luchando" por los buzones de correo de los usuarios. <p>Sin embargo, aunque <tt>dpkg</tt> "entiende" las interrelaciones entre paquetes, no las gestiona. Esta tarea queda a los interfaces y, actualmente, es gestionada por <tt>apt</tt>. <sect>Apt, el gestor de interrelaciones <p><tt>Apt</tt>, acrónimo de <em>Advanced Package Tool</em>, (ver la página de manual con <tt>man apt</tt> o, mejor aún, <tt>/usr/doc/apt/guide.text.gz</tt>) es el conjunto de herramientas ofrecida por Debian para que los usuarios no tengan que llevar a cabo la siguiente tarea, habitual en otras distribuciones: <itemize> <item>quiero instalar el programa X <item>¡vaya! Si depende de Y, pues, nada, a buscar Y e instalarlo antes. <item>¡córcholis! Si Y depende de Z, W, V, a ver si los encuentro por FTP, o en el último CD-ROM que me prestaron <item>(tras una ardua búsqueda) W depende de L ¿donde ésta? <item>así, <em>ad infinitum</em>... </itemize> <p><tt>Apt</tt> permite decirle al sistema: "instala X", y éste, apropiadamente configurado, buscará Y, W, Z, V los instalará, quitará M (que entra en conflicto con M) y ¡dejará X totalmente instalado!. Es más, podrá recoger algunos paquetes de un CD-ROM y otros de un servidor de FTP. <p>Es capaz de hacer esto gracias al sistema de dependencias, y a su conocimiento de éste. Además <tt>apt</tt> puede configurarse para acceder a distintas fuentes de paquetes, estas fuentes podrán ser: <itemize> <item>CD-ROMS de la distribución, o actualizaciones de la misma. <item>Servidores en Internet por HTTP ó FTP. <item>Un disco duro local con los paquetes. </itemize> <p>Todo esto se gestiona a través del fichero de configuración <tt>/etc/apt/sources.list</tt> (ver la página de manual <tt>man sources.list</tt>) aunque existen herramientas para añadir automáticamente dichas fuentes. La forma habitual es hacerlo desde una de las interfaces que se verán más abajo (las que ofrecen esta funcionalidad), aunque se puede hacer también desde la línea de comandos ejecutando <tt>/usr/sbin/apt-setup</tt> (que de hecho es lo que se ejecuta al instalar el sistema base). Más aún, si el usuario quiere añadir simplemente un nuevo CD-ROM lo más fácil es ejecutar como superusuario <tt>/usr/sbin/apt-cdrom add</tt>. <p>Aunque <tt>apt</tt> es un sistema pensado para ser utilizado como interfaz a <tt>dpkg</tt> por las interfaces de usuario (ya sean gráficas o de texto), puede ser utilizado directamente por el superusuario desde una consola. Sin embargo, se debe hacer una advertencia previa: <tt>apt</tt> no instala automáticamente aquellos paquetes definidos como "Sugeridos", por lo que algunos programas pueden no instalarse con toda la funcionalidad que se esperara de ellos. Queda avisado. <p>Las herramientas que se instalan con <tt>apt</tt> son dos: <tt>apt-get</tt> y <tt>apt-cache</tt> (ver sus correspondientes páginas de manual). La primera se utilizará para instalar o eliminar los paquetes deseados, la segunda para consultar la información de los paquetes y sus dependencias. <p>Algunos ejemplos: <itemize> <item>Para instalar un programa: <tt>apt-get install programa</tt> <item>Para eliminarlo: <tt>apt-get remove programa</tt> <item>Para actualizar la información disponible de paquetes: <tt>apt-get update</tt> <item>Para actualizar el sistema: <tt>apt-get upgrade</tt> <item>Para actualizar el sistema entre distintas versiones de Debian GNU/Linux: <tt>apt-get dist-upgrade</tt>. <item>Para simular la instalación de un programa: <tt>apt-get install -s gimp</tt> <item>Para consultar la información de un programa: <tt>apt-cache show programa</tt>, y para consultar sus dependencias <tt>apt-cache showpkg programa</tt>. <item>Para buscar un texto determinado entre los programas disponibles:<tt>apt-cache search texto</tt> (también se pueden introducir expresiones regulares) <item>Para mostrar las dependencias con respecto a un programa: <tt>apt-cache depends programa</tt> (incluso se pueden ver de forma gráfica, si tiene instalado <tt>graphviz</tt>) </itemize> <p>También es posible añadir fuentes de código fuente, si las añadimos (tipo deb-src) se le podrá decir, a <tt>apt-get</tt> que coja las fuentes de un paquete. Éste obtendrá los ficheros necesarios y dejará preparado un directorio para poder compilar directamente el paquete. Así, si se quisiera compilar para nuestro sistema, por ejemplo, el mismo <tt>apt</tt>, sólo habría que hacer: <tt>apt-get source apt && cd apt-* && dpkg-buildpackage</tt> o bien <tt>apt-get --compile source apt</tt> <p>Dado que <tt>apt-get</tt> descarga los paquetes a instalar en un almacenamiento temporal, <tt>/var/cache/apt</tt>, se recomienda que la partición que incluya este directorio tenga un tamaño suficiente para la descarga, ya que puede haber ocasiones en que se necesario descargar muchos paquetes para actualizar un sistema (siempre y cuando no tenga acceso a ellos directamente, es decir, no utilice un CD-ROM o un sistema de ficheros local). En cualquier caso puede borrar dicha caché cuando lo desee utilizando <tt>apt-cache clean</tt>. <sect>Interfaces de texto <p> Vistas ya las distintas herramientas de bajo nivel, desarrolladas con la intención de ser usadas por línea de comandos se van a ver las interfaces desarrolladas para interactuar con el sistema de paquetes. Estas interfaces tienen como objetivo el facilitar al usuario la gestión diaria del sistema de paquetes, de forma que pueda ver, de forma integrada, los paquetes disponibles, sus descripciones, y sus interrelaciones. Además, estas interfaces hacen una mejor gestión de las dependencias que apt, ya que pueden ofrecer al usuario una serie de alternativas cuando ésto sea posible para que éste elija la que le conviene (<tt>apt</tt> sin embargo, elije la que cree conveniente que puede no ser la más acertada, sobre todo en el caso de paquetes "virtuales"). <p>Las herramientas de texto siempre han sido criticadas por los usuarios más noveles por considerarlas, de entrada y careciendo de experiencia en ellas, de arcaicas y artificiales. Sin embargo es conveniente recordar que no todos los usuarios en todos los sistemas disponen de interfaces gráficos y, aunque sea la norma en los sistemas caseros, no es lo habitual en la gestión de sistemas en otros ambientes. Así pues, conviene empezar primero por éstas, aunque puedan desilusionar al principiante. <p>De las herramientas de texto de gestión de paquetes Debian GNU/Linux incorpora dos que cabe destacar, en primer lugar <tt>dselect</tt> el interfaz estándar para gestionar paquetes, y <tt>aptitude</tt> un interfaz nuevo que funciona directamente sobre <tt>apt</tt>. <p><tt>Dselect</tt> (ver Figura 2 y Figura 3) es una de las herramientas que posiblemente más criticada haya sido en Debian pero, aunque su funcionamiento pueda parecer al principio complicado, está convenientemente documentada (en el directorio de instalación de los CD-ROMs en el documento dselect.beginner proporcionado en varios formatos) y cumple su cometido perfectamente. <p>Desde esta herramienta se pueden configurar los métodos de obtención de paquetes, listar los paquetes disponibles e instalar los mismos (<tt>dselect</tt> indicará si surgen conflictos, o recomendará los paquetes que crea conveniente). Por último, se podrá lanzar la instalación de los paquetes seleccionados. Aunque <tt>apt</tt> es el interfaz por defecto para el acceso a los paquetes, mucho antes de que existiera <tt>apt</tt> se disponía de sistemas de acceso a colecciones de paquetes a través de los <em>métodos</em> de <tt>dselect</tt>. Existen métodos disponibles para acceso a colecciones de CDs, sistemas por NFS, servidores FTP... <p><tt>Aptitude</tt> (ver Figura 4 y Figura 5) es, por otro lado, un sencillo motor de acceso mediante consola a las funciones de <tt>apt</tt>. El interfaz es capaz de mostrar la lista de paquetes y sus dependencias con otros, indicando con un código de colores la posibilidad de instalar (o no) éstos (si las dependencias se cumplen). Se encuentra aún en fase de desarrollo, pero es perfectamente utilizable desde un punto de vista de un administrador. Se trata de una herramienta más sencilla que <tt>dselect</tt> ya que basa toda las funciones de configuración e instalación en <tt>apt</tt>. Sin embargo, carece de cierta funcionalidad útil, como la modificación de fichero de fuentes (que por otro lado, si se realiza en consola se puede hacer con <tt>apt-setup</tt> como se ha comentado previamente). <sect>Interfaces gráficos <p>Sin embargo, no es necesario limitarse a interfaces de texto a la hora de tener que llevar a cabo la gestión de paquetes. Los interfaces gráficos son, a menudo, más versátiles (y visuales) para los usuarios noveles. Además, dadas las características de la interfaz gráfica (generalmente de mayor resolución que la consola) suelen ser de manejo más cómodo. <p>Debian GNU/Linux 2.2 incorpora un interfaz aún en desarrollo para la gestión de paquetes desde la interfaz gráfica (que tendrá que hacerse siempre como superusuario, ver Listado 2), se trata de <tt>gnome-apt</tt>. <tt>Gnome-Apt</tt>, como se puede ver en la Figura 6, muestra de un vistazo todos los paquetes disponibles, y la descripción del paquete disponible. También incluye funcionalidad para el rápido filtrado de paquetes, por estado, por prioridades y por textos claves. <tt>Gnome-apt</tt> permite la rápida edición de las fuentes de paquetes de forma gráfica, que posteriormente se volcará en el archivo de configuración de apt. <p>La vista seleccionada en <tt>gnome-apt</tt>, en el que se muestra determinadas columnas con información sobre los paquetes, es totalmente configurable. Sin embargo, <tt>gnome-apt</tt> aún no incluye ciertas funcionalidades interesantes, como la resolución inversa de dependencias o la búsqueda de paquetes "huérfanos". <p>Otra herramienta gráfica, pero esta vez utilizando el toolkit Qt (en lugar de gtk) que quizás pronto se distribuya en Debian es <tt>qaptivate</tt>, disponible en ftp:/unilinux.sourceforge.net/pub/unilinux. Esta herramienta se encuentra, sin embargo, aún en estado <em>alpha</em>. <p>Las distribuciones comerciales basadas en Debian también distribuyen sus propios interfaces gráficos de gestión de interfaces. El autor ha tenido la ocasión de estudiar tanto el Corel Updater de la distribución Corel Linux, como el <tt>stormpkg</tt> (ver Figura 8). <p>Éste último está cuidadosamente diseñado, a diferencia del primero, que sufre las prisas con las que Corel se introdujo en el mundo del software libre, y se distribuye con licencia GPL, así que es posible que en un futuro se incluya en la distribución principal. Además, está totalmente integrado con el escritorio y de forma inteligente (no obliga a que el interfaz de ventanas se ejecute como superusuario o se hagan <em>triquiñuelas</em>). Al arrancar muestra como primera pantalla la posibilidad de filtrado de los paquetes, de forma que sólo se muestren aquellos que el usuario quiera ver desde un principio. <p><tt>Stormpkg</tt> utiliza <tt>atp</tt> para la instalación de las aplicaciones, que se realiza en el terminal desde el que se lanza y, para evitar interferir en la instalación, el gestor de paquetes se oculta convenientemente dejando libre la vista. El instalador de Corel, por otro lado, introduce la salida de <tt>apt</tt> en una pantalla que hace difícil resolver algún tipo de situaciones que puede darse al llevar a cabo la instalación de muchos paquetes. <p><tt>Stormpkg</tt> y <tt>Corel Updates</tt> permiten la edición del fichero de fuentes de <tt>apt</tt> pero el primero es más cuidadoso que el último. Por ejemplo, Corel Updates no lleva bien la edición manual (o por terceras herramientas como <tt>apt-cdrom</tt> de las fuentes de paquetes, al tiempo que las fuentes que se pueden introducir están limitadas. <tt>Stormpkg</tt> sin embargo, acepta la edición manual y la interpreta correctamente (salvo en el caso de los CD-ROMS añadidos con <tt>apt-cdrom</tt>, en el que interpreta mal los corchetes de descripción de éstos). Es más, si el usuario deshabilita editando manualmente las fuentes y añadiendo un comentario, incluso a las propias de Storm Linux, <tt>stormpkg</tt> lo aceptará gustosamente ya que sigue el mismo convenio (introducción de comentarios) para habilitar y deshabilitar fuentes de paquetes. <p>Existen otros gestores de paquetes gráficos en distribuciones basadas en Debian, como el de Libranet, sin embargo éstos son menos conocidos debido al difícil acceso a éstos. <!-- PONER Con consentimiento de Javi <sect>Búsqueda de las aplicaciones <p> Una de las preguntas que mas aparece en la lista de correo de usuarios de Debian es qué paquete es necesario instalar para obtener una determinada librería o un programa. Si tenemos acceso a otra máquina donde esté instalada la librería o programa que necesitamos, bastará con usar el comando <tt>dpkg -S nombre</tt>. Si estamos en un sistema donde dicho paquete no está instalado, la única forma de encontrarlo es buscar en el fichero <tt>Contents</tt>. Este es un fichero que se encuentra en las réplicas y en los CD's de Debian, y que contiene la lista completa de todos los ficheros en todos los paquetes de Debian. En los CDs se puede encontrar en el directorio debian/dists/stable/, y tendrá como nombre <tt>Contents-arquitectura</tt>, donde <em>arquitectura</em> puede ser i386, sparc, arm... Por ejemplo, para encontrar qué paquete incluye el programa 822-date para la arquitectura i386, usaríamos el comando: zgrep Contents-i386.gz o zcat Contents-i386.gz |grep 822-date o gunzip -c Contents-i386.gz | grep 822-date Que en "potato" nos dará el siguiente resultado: <tt> usr/bin/822-date utils/dpkg-dev usr/share/man/man1/822-date.1.gz utils/dpkg-dev usr/share/man/pl/man1/822-date.1.gz doc/manpages-pl </tt> El cual indica que el programa y su página de manual vienen con el paquete dpkg-dev, en la sección de utilitarios (y existe una traducción al polaco del manual de 822-date). --> <sect>Otras herramientas para el usuario avanzado <p> Existe muchas otras herramientas para la gestión de paquetes en Debian, que han sido realizadas de forma experimental y tardarán un tiempo en ser integradas dentro de las interfaces de usuario. Además están disponibles en Debian <em>woody</em> (la versión de desarrollo actual de Debian) y no podrá encontrarlas en Debian 2.2. Entre otras podemos hablar de: <itemize> <item><tt>deborphan</tt>. Que indica qué librerías instaladas han quedado "huérfanas" es decir, no están siendo utilizadas por ningún paquete. De esta forma se podrá hacer limpieza del sistema en caso de que fuera necesario. <item><tt>dlocate</tt>. Permite buscar ficheros en el sistema y los paquetes que lo instalaron de una forma más rápida que la utilizada por <tt>dpkg</tt> directamente ya que genera una base de datos binaria para realizar la búsqueda. <item><tt>dpkg-iasearch</tt>. Permite búsquedas entre los textos de los paquetes con técnicas de inteligencia artificial (vectorización de documentos) que va más allá del simple <tt>grep</tt> o el uso de expresiones regulares. </itemize> <!-- <sect>El futuro de la gestión de paquetes <p> http://www.helixcode.com/apps/redcarpet.php3 Proyecto más ambicioso actualización de todo el sistema, incluyendo interfaces rpm y dpkg Miguel de Icaza: Sure. Red Carpet builds on top of our experience with helix-update and from the requests of our users and partners. Red Carpet is a package manager that contains a number of interesting features: Red Carpet is a universal package manager. It has a pluggable architecture for doing package management and to handle dependencies in them. Support for multiple distributions and packaging systems: RPM and Debian are currently supported. After the 1.0 release we will be working on HP-UX package support and Solaris package support (previously we shipped RPMs for Solaris. Our Debian and RPM support is superb. The teams working on both systems really excelled (Ian, Vlad and Joe). Full dependency tracking: people familiar with Debian's apt-get might see a resemblance here. Red Carpet can do the same dependency tracking that is available to Debian users in all the platforms we support (RPM-based system, Debian systems, Solaris and soon HP-UX). Full dependency tracking means that people will never get an installation that is incomplete or that does not work correctly. Package management facilities: you can remove, install, upgrade software on any of our supported platforms with full dependency tracking. So you can use this instead of command line tools. Package management not only includes packages shipped by Helix Code. Red Carpet can be used to administer, install, update and remove components of your distribution. When a new update for your favorite distribution comes out, this will be available through Red Carpet. After Red Carpet 1.0 we are adding a few extra features for Red Carpet 1.2 which are already being implemented: Software purchasing: you will be able to buy packages on-line: if you want to purchase games, clipart, proprietary Linux software, fonts, pantone palettes and just about anything that gets installed into your computer. Bonobo integration: Bonobo is our component technology, and by making Red Carpet Bonobo-aware we will be able to make applications package-aware. For example, if you want to get more clipart in the GIMP, or get a pantone palette, you could buy those directly from the software you are using (on the color selector, in the font selector) Collaborative filtering: For people who wish to contribute their feedback to other users (and only if they want to, at Helix we are very privacy aware), it will be possible to rate software packages and enable people to see what other people have installed. Things like `You just selected the GIMP. People who installed the GIMP also found the SodiPodi program interesting. Integration with the Helix Setup Tools: We are going to have a public beta of Red Carpet by the end of January. http://www.linuxorbit.com/features/interview3.php3 > --> <sect>Resumen <p> El sistema de paquetes de Debian es muy complejo, pero muy enfocado al usuario final, y proporciona múltiples interfaces (para todos los gustos) a sus administradores. El desarrollo de estas interfaces quizás pueda verse como lento, pero otros dirían que es "seguro" en el sentido de que las bases quedan bien asentadas antes de ir a una capa más arriba de dicho desarrollo. Debian tiene como propósito para su próxima versión el estandarizar el interfaz gráfico a utilizar en las instalaciones con soporte gráfico, este interfaz aún está por decidir, y tanto <tt>gnome-apt</tt> como las versiones comerciales licenciadas bajo GPL son opciones posibles, el tiempo nos dirá cual de ellas es la mejor preparada para ofrecerse como interfaz por defecto para todos los usuarios. <sect>Sumarios <p> Los sistemas de paquetes son conocidos por los usuarios de distribuciones GNU/Linux. El sistema de paquetes es distinto al formato. El sistema de gestión de Debian GNU/Linux es el más completo de todos. Las herramientas abarcan distintos niveles. Dpkg es la herramienta fundamental de paquetes en Debian. Es importante entender las interrelaciones entre paquetes. Apt puede ser utilizado directamente por el usuario. Apt puede descargar paquetes de CDs, servidores de FTP y WWW Las interfaces ayudan a la gestión integral. Las herramientas de texto son necesarias en algunos sistemas. gnome-apt es la herramienta gráfica, aún en desarrollo. Las distribuciones comerciales incorporan sus propias herramientas Stormpkg incluye funcionalidades similares a gnome-apt Existen otras herramientas para el usuario avanzado Debian estandarizará el interfaz gráfico en su próxima versión <sect>Listados <P> LISTADO 1 El lector avispado habrá observado que, aunque no se muestran las herramientas de gestión de paquetes basados en rpm (el formato original realizado por la distribución RedHat). La librería intermedia de gestión de paquetes <tt>apt</tt> se solapa con el sistema de paquetes rpm. Esto se debe a que, recientemente, la distribución Connectiva Linux ha llevado a cabo el esfuerzo de modificar <tt>apt</tt> para que éste pueda ser utilizado también para paquetes rpm. Queda aún por ver si <tt>apt</tt> se convertirá en la herramienta intermedia común para todas las herramientas de gestión de paquetes, pero este paso es, sin duda (así como algunas otras aportaciones de Connectiva Linux a la base de código de <tt>apt</tt> como la posibilidad de comprobar las firmas digitales de los paquetes) un paso decisivo para la integración de la gestión de los distintos sistemas de paquetes. Ya no sólo serán los usuarios de Debian los que podrán asombrar a sus compañeros de las capacidades de sus sistemas, sino que se podrá beneficiar toda la comunidad de usuarios de GNU/Linux. PIE LISTADO 1: Apt también para rpm LISTADO 2 Algunos usuarios pueden pensar que para poder hacer uso de los interfaces gráficos es necesario ejecutar el interfaz de ventanas como superusuario. Es cierto que dichos interfaces, para poder hacer las funciones de gestión de paquetes (instalación y eliminación) deben tener acceso de superusuario en la máquina, pero para esto no es necesario ejecutar las X como superusuario. Existen varios métodos para llevar esto a cabo, uno de ellos es lanzar una sesión de terminal, permitir el acceso al sistema local (con la orden <tt>xhost + localhost</tt>), convertirse en superusuario (<tt>su -</tt>), indicar el servidor de X a utilizar (<tt>export DISPLAY=localhost:0.0</tt>) y lanzar la aplicación correspondiente. Otro método, más seguro, consiste en no permitir el acceso a todos los usuarios de la máquina (al hacer <tt>xhost</tt>) sino, como superusuario, cargar el fichero de autoridad para acceso al servidor de X (con <tt>xauth merge /directorio/.Xauthority</tt>), siendo <em>directorio</em> el directorio del usuario que inició la sesión de X, y luego ejecutar el programa. Por último, el método utilizado (de forma inteligente) por la distribución Storm Linux, es instalar un acceso en el escritorio que llama a la aplicación <tt>gtk-su</tt> con parámetros para que, tras autenticar la contraseña del superusuario, lanza la aplicación de gestión de paquetes. PIE LISTADO 2: Ejecución de interfaces gráficos y el superusuario LISTADO Se puede encontrar más información sobre Debian en general en: <itemize> <item>El servidor principal: www.debian.org <item>El servidor de La Espiral: www.laespiral.org (para usuarios hispanoparlantes) </itemize> Las herramientas aquí comentadas vienen acompañadas de documentación pero son referencias fieles al sistema de gestión de paquetes: El manual de empaquetamiento (disponible en <tt>/usr/share/doc/packaging-manual</tt>, La guía del usuario de Apt (disponible en <tt>/usr/share/doc/apt/</tt>). Para saber qué servidores de Debian están disponibles para descargase paquetes consulte http://www.debian.org/misc/README.mirrors, y podrá conseguir mucha más documentación de Debian en http://www.debian.org/doc. Por supuesto, las listas de distribución son de gran ayuda siempre (http://www.debian.org/MailingLists/), si quiere seguir el desarrollo de apt, subscríbase a deity@lists.debian.org, si quiere consultar cosas con usuarios y desarrolladores hispanoparlantes, hágalo en debian-user-spanish@lists.debian.org. PIE LISTADO 3: Más información <!-- LISTADO x- PIE LISTADO x: --> <sect>Capturas <p> <itemize> <item>Figura 1.-'sistemapaq.png' Arquitectura del sistema de paquetes y las herramientas. <item>Figura 2.-'dselect-main.png' Pantalla principal de dselect. <item>Figura 3.-'dselect-pack.png' Selección de paquetes en dselect. <item>Figura 4.-'aptitude-main.png' Pantalla principal de aptitude. <item>Figura 5.-'aptitude-pack.png' Selección de paquetes en aptitude. <item>Figura 6.-'gnome-apt.png' La interfaz gráfica de gnome-apt <item>Figura 7.-'stormpkg-full.png' Gestión de paquetes con stormpkg <item>Figura 8.-'stormpkg.png' La interfaz principal de stormpkg <!-- <item>Figura 9.-'redcarpet.png' La herramienta integrada de HelixCode --> </itemize> <sect>Notas de maquetación <p> <sect>Notas de coordinación <p> El artículo puede quedar más de 4 páginas por las capturas y los listados. Si fuera necesario, se puede separar en dos partes. Una hasta los interfaces de texto (con Listado 1 y figuras 1-5 ) y otra de los interfaces gráficos (Listado 2 y Figuras 6-8). Si se separa, hablar con el autor para añadir un párrafo de resumen del artículo intermedio (adelantando de lo que se hablará en el siguiente) e incorporaré otros textos que no he añadido pero muy interesantes a saber: cómo buscar utilizando las herramientas de consola paquetes y programas y la nuevas tendencias de HelixCode para ofrecer un interfaz de gestión de paquetes único para Debian/RedHat/Solaris... </article>