<!doctype linuxdoc system>

<article>
<!-- Notas: 
- 1 pagina de articulo, aprox. 6000 caracteres
- Un cuadro al menos cada dos paginas, o un cuadro y una captura
- Capturas con pie de foto
- Para incluir imagen ********* IMAGEN **********+
- 1 sumario por pagina 
-->

<!-- TODO

1.- Generar un gráfico con apt-cache dotty y graphviz para "vacilar" ;)
2.- ¿Por qué no se incluye la documentación de dselect como un paquete de doc?
(aparte del CD)
3.- Decir a la gente de Storm que stormpkg no interpreta bien los sources.list de apt-cdrom add (corchetes)

-->

<title>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>


