<sect>Actualización del sistema Debian<label id="Uptodate"></>
<!--
Lo siento de nuevo, pero de gerundio, nada. svd
-->

<sect1>¿Cómo puedo actualizar mi distribución Debian 1.3.1 (o anterior), basada en lib5, a la versión 2.0 (o posterior), basada en libc6?
<P>
Hay varias formas de actualizarse:
<itemize>
<item>Utilizando un sencillo script de shell llamado <tt>autoup.sh</tt>
que actualiza los paquetes más importantes. Después de que
<tt>autoup.sh</tt> ha hecho su trabajo, puede utilizar dselect para
instalar los paquetes que falten <it>en masa</it>. Este es probablemente
el método recomendado, pero no el único.
<P>
Actualmente, la última versión de <tt>autoup.sh</tt> puede encontrarse
en los siguientes lugares:
<itemize>
<item><url url="http://www.taz.net.au/autoup/">
<item><url url="http://csanders.vicnet.net.au/autoup/">
</itemize>
<P>
Se espera que esté en los archivos FTP de Debian algún día.
<item>Siguiendo de cerca el
<url url="ftp://ftp.debian.org/pub/debian/doc/libc5-libc6-Mini-HOWTO.txt"
name="libc5-libc6-Mini-HOWTO"> y actualizar los paquetes más importantes
a mano. <tt>autoup.sh</tt> está basado en este Mini-HOWTO, así que este
método debería funcionar más o menos como usar <tt>autoup.sh</tt>.
<item>Usando una versión libc5 de APT. APT quiere decir "A
Package Tool" (una herramienta de paquetes), y podría sustituir 
a dselect algún día. De momento, funciona simplemente como un
interfaz de línea de órdenes, o como método de acceso de
dselect. Encontrará una versión libc5 en el directorio
<tt>dists/slink/main/upgrade-older-i386</tt> en los archivos de Debian.

<item>Utilizando únicamente dselect, sin actualizar primero ningún paquete
a mano. Se recomienda encarecidamente que NO utilice este método si
puede evitarlo, porque dselect, por sí solo, actualmente no instala los
paquetes en el orden óptimo. APT funciona mucho mejor y es más seguro.
</itemize>

<!--

Lo que sigue está obsoleto:

El directorio <tt>upgrades/</tt> contiene los ficheros necesarios para la
actualización de Debian 0.93R6 a Debian 1.1 (o posterior).  Hay dos
formas de realizar la actualización:
<itemize>
<item>la forma manual, instalando los paquetes a mano. Las instrucciones
están en <tt>upgrade_manual.doc</tt>.  También necesitará los ficheros
<tt>UpGrade</tt>, <tt>base_list</tt>, y <tt>dpkg-*.deb</tt>.
<item>usando dselect para actualizar todos los paquetes <it>en masa</it>.
Las instrucciones están en <tt>upgrade_dselect.doc</tt>. También necesitará
<tt>dpkg-*.deb</tt>.
</itemize>
<P>
Observe que la versión de <tt>dpkg</tt> disponible en este directorio está
en formato a.out.  Las versiones de <tt>dpkg</tt> disponibles en los árboles
de desarrollo (development) y estable (stable) están en formato ELF.

-->

<sect1>¿Cómo puedo mantener mi Sistema Debian actualizado?
<P>
Uno puede simplemente realizar un ftp anónimo a un archivo de Debian,
buscar por los directorios hasta encontrar el fichero deseado, traérselo y
finalmente instalarlo usando <tt>dpkg</tt>.  Observe que <tt>dpkg</tt>
instalará los ficheros actualizados en el momento, incluso en un sistema
ya en marcha, sin tener que detenerlo.
A veces, un paquete revisado requerirá la instalación de la versión
actualizada de otro paquete, en cuyo caso la instalación fallará hasta
que/a menos que el otro paquete esté instalado.
<P>
Mucha gente encuentra que esta forma de actualizar lleva mucho tiempo
debido a que Debian evoluciona tan rápidamente---semanalmente se suelen
añadir una docena de paquetes nuevos, o más. Este número es mayor cuando
se aproxima la publicación de una nueva versión. Para poder manejarse bien
con tal avalancha, mucha gente prefiere usar un programa automatizado.
Hay disponibles tres paquetes diferentes para este propósito:
<itemize>

<item><tt>dpkg-ftp</tt><label id="dpkgftp">.
Éste es un método de acceso para <tt>dselect</tt>. Se puede invocar
desde el propio <tt>dselect</tt>, permitiendo así al usuario obtener
ficheros e instalarlos en un sólo paso. Para hacer ésto, arranque el programa
<tt>dselect</tt>, elija la opción &dquot;0&dquot; (&dquot;Choose
the access method to use&dquot;), marque la opción &dquot;ftp&dquot;
y luego especifique la máquina y directorio remotos.
<tt>dpkg-ftp</tt> transferirá entonces los ficheros seleccionados a su
máquina (ya sea en esta sesión de <tt>dselect</tt> o en posteriores).
<P>
Observe que, al contrario que el programa <tt>mirror</tt>,
<tt>dpkg-ftp</tt> no recoge todos los ficheros del sitio réplica, sino que
transfiere sólo los ficheros que haya seleccionado, y que necesiten ser
actualizados.
<P>
<tt>dpkg-ftp</tt> está disponible en el directorio
<tt>stable/binary-all/net/</tt> en cualquier archivo de Debian.
<P>
<item><tt>mirror</tt>.  Este script Perl, y su programa gestor (opcional)
denominado <tt>mirror-master</tt>, pueden usarse para obtener partes
especificadas del árbol de directorios de un servidor especificado,
<it>via</it> ftp anónimo.

<!--

<tt>mirror</tt> es particularmente útil para obtener grandes volúmenes de
software. Después de que se hayan bajado los ficheros de un sitio por
primera vez, se crea un fichero denominado <tt>.mirrorinfo</tt> en la máquina
local. Cambios en el sistema de ficheros del servidor remoto son tratados
autómaticamente por <tt>mirror</tt>, el cual compara este fichero con uno
similar en el sistema remoto y baja sólo los ficheros modificados o
añadidos.
<P>
El programa <tt>mirror</tt> se usa generalmente para actualizar copias de
árboles de directorio remotos. Los ficheros transferidos no tienen por qué
ser ficheros Debian. (Como <tt>mirror</tt> es un script Perl, puede usarse
también en sistemas no-Unix.)  A pesar de que el programa <tt>mirror</tt>
proporciona mecanismos para excluir ficheros cuyo nombre concuerde con
cadenas especificadas por el usuario, este programa es más útil cuando el
objetivo es recuperar árboles de directorio completos más que paquetes
seleccionados.
<P>
El programa <tt>mirror</tt> está disponible en el formato de
paquetes Debian y se encuentra en el directorio
<tt>stable/binary-all/net</tt> en cualquier archivo FTP de Debian.
<P>
POR DESGRACIA, mirror no es software libre, y probablemente no deberíamos
mencionarlo aquí.

-->

<!-- ¿Tal vez deberíamos recomendar GNU wget? -->

<item><tt>dftp</tt><label id="dftp">.  Este script Perl puede usarse para
traerse de un servidor determinado paquetes Debian especificados por el
usuario. Empieza obteniendo los ficheros Packages.gz de los directorios
especificados por el usuario (ej. stable, contrib, non-free) y le presenta
una lista de paquetes. Éstos están localizados en varias secciones: new
upgrades (nuevas actualizaciones), downgrades ("des-actualizaciones"), new
packages (nuevos paquetes), ignored upgrades (actualizaciones ignoradas) e
ignored packages (paquetes ignorados). Entonces el usuario selecciona los
paquetes que quiera y dftp los instala. Ésto hace muy fácil mantener su
sistema Debian 100% actualizado todo el tiempo sin tener que bajarse
paquetes que no va a instalar.
<P>
<tt>dftp</tt> puede usarse para llamar a <ref id="dselect"
name="dselect">, proporcionando de esta forma un modo integrado para
obtener y actualizar los paquetes Debian de nuestro sistema. Cuando
finalice la instalación, se puede usar otra orden <tt>dftp</tt> para
eliminar los ficheros de los paquetes (&dquot;.deb&dquot;). Los cambios en el
sistema de ficheros remoto son tratados automáticamente por <tt>dftp</tt>,
el cuál compara el fichero Packages.gz local con los ficheros del sistema
remoto.
<P>
El programa dftp está disponible como un script en el directorio
<tt>project/misc</tt> en cualquier archivo FTP de Debian.
</itemize>

<sect1>¿Debo cambiar a modo monousuario para actualizar un paquete?
<P>
No.  Los paquetes pueden actualizarse en cualquier momento, incluso en
sistemas en funcionamiento.
Debian tiene un programa llamado <tt>start-stop-daemon</tt> que se invoca
para parar y luego rearrancar un proceso en ejecución si es necesario durante
la actualización de un paquete.

<sect1>¿Tengo que guardar todos esos ficheros .deb en mi disco?
<P>
No.  Si se ha bajado los ficheros a su disco (lo que no es absolutamente
necesario (ver <ref id="dpkgftp" name="dpkg-ftp"> o <ref id="dftp"
name="dftp">)), después de que los haya instalado, puede borrarlos de su
sistema.

<sect1>¿Cómo puedo mantener un registro de los paquetes que he ido añadiendo al sistema?
<P>
<tt>dpkg</tt> mantiene un registro de los paquetes que han sido
desempaquetados, configurados, borrados, y/o purgados, pero no mantiene
un registro (de momento) de los mensajes que envía al terminal cuando el
paquete se está manipulando. Algunos usuarios realizan esta tarea
simplemente usando <tt>tee</tt>:
<tscreen><verb>
dpkg -iGOEB -R stable/binary non-free/binary contrib/binary | \
    tee -a /root/dpkg.log
</verb></tscreen>

La misma orden usando los parámetros largos quedaría:
<tscreen><verb>
dpkg --install --refuse-downgrade --selected-only \
  --skip-same-version --auto-deconfigure \
  --recursiv estable/binary non-free/binary contrib/binary | \
    tee -a /root/dpkg.log
</verb></tscreen>
