Update the 'Ports' chapter. The new content added

has a link to 'Updating', so being on that we have
a new chapter translated.

With contributions from:

FreeBSD Spanish Documentation Project
This commit is contained in:
J. Vicente Carrasco 2008-11-07 01:50:34 +00:00
parent 8523ece2d8
commit 5ccdeffd7c
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=33181
5 changed files with 1641 additions and 758 deletions
es_ES.ISO8859-1/books/handbook

View file

@ -190,6 +190,7 @@ SRCS+= preface/preface.sgml
SRCS+= printing/chapter.sgml
SRCS+= security/chapter.sgml
SRCS+= serialcomms/chapter.sgml
SRCS+= updating/chapter.sgml
SRCS+= users/chapter.sgml
SRCS+= vinum/chapter.sgml
SRCS+= virtualization/chapter.sgml

View file

@ -58,8 +58,9 @@
<!ENTITY % chap.freebsd-glossary "IGNORE">
<!ENTITY % chap.mac "IGNORE">
<!ENTITY % chap.audit "IGNORE">
<!ENTITY % pgpkeys SYSTEM "pgpkeys/pgpkeys.ent"> %pgpkeys;
<!ENTITY % chap.updating "IGNORE">
]>
@ -341,6 +342,8 @@
<![ %chap.eresources; [ &chap.eresources; ]]>
<![ %chap.pgpkeys; [ &chap.pgpkeys; ]]>
<![ %chap.index; [ &chap.index; ]]>
<![ %chap.updating; [ &chap.updating; ]]>
</part>
&chap.colophon;
</book>

View file

@ -52,6 +52,7 @@
<!ENTITY chap.cutting-edge SYSTEM "cutting-edge/chapter.sgml">
<!-- Part four -->
<!ENTITY chap.updating SYSTEM "updating/chapter.sgml">
<!ENTITY chap.serialcomms SYSTEM "serialcomms/chapter.sgml">
<!ENTITY chap.ppp-and-slip SYSTEM "ppp-and-slip/chapter.sgml">
<!ENTITY chap.mail SYSTEM "mail/chapter.sgml">

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,676 @@
<!--
The FreeBSD Documentation Project
$FreeBSD$
i
The FreeBSD Spanish Documentation Project
%SOURCE% en_US.ISO8859-1/books/handbook/updating/chapter.sgml
%SRCID% 1.1
-->
<chapter id="updating">
<chapterinfo>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>Escrito por </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Colin</firstname>
<surname>Percival</surname>
<contrib>Basado en notas facilitadas por </contrib>
</author>
</authorgroup>
</chapterinfo>
<title>Actualizaci&oacute;n de &os;</title>
<sect1 id="updating-synopsis">
<title>Synopsis</title>
<indexterm><primary>Actualizaci&oacute;n de &os;</primary></indexterm>
<indexterm>
<primary>freebsd-update</primary>
<see>Updating</see>
</indexterm>
<para>Hay un aspecto de &os; que se ha mantenido inalterable
desde el principio: la necesidad de utilizar aplicaciones y
herramientas para obtener actualizaciones mayores y menores.</para>
<para>Durante muchos a&ntilde;os los usuarios que quer&iacute;an
actualizar su sistema, recabar parches de seguridad y conseguir
actualizaciones de ports y packages sin estropear la forma de
entender las cosas de la Colecci&oacute;n de Ports estaban
obligados a utilizar
<application>CVSup</application>.</para>
<para><application>CVSup</application> sigue funcionando y
ya hay una versi&oacute;n de dicha aplicaci&oacute;n en lenguaje
C, pero han aparecido nuevos m&eacute;todos para conseguir
actualizaciones del sistema.</para>
<para>Herramientas como &man.portsnap.8; y &man.freebsd-update.8;
han simplificado el proceso de actualizaci&oacute;n. Estos nuevos
m&eacute;todos la productividad al ofrecer una interfaz m&aacute;s
accesible a los usuarios. Alguna de estas nuevas herramientas puede
ejecutarse desde &man.cron.8;, reduciendo la intervenci&oacute;n
manual del administrador del sistema; esto es una buena noticia
para quienes tienen que monitorizar cientos de
m&aacute;quinas.</para>
<para>En este cap&iacute;tulo se explica c&oacute;mo usar estos
nuevos m&eacute;todos y c&oacute;mo pueden los usuarios y los
administradores de sistemas aprovechar lo pr&aacute;ctico y
f&aacute;cil de su uso.</para>
<para>Una vez leido este cap&iacute;tulo sabr&aacute; usted:</para>
<itemizedlist>
<listitem>
<para>Qu&eacute; herramientas hay disponibles para actualizar el
sistema y la Colecci&oacute;n de Ports.</para>
</listitem>
<listitem>
<para>C&oacute;mo usar <command>freebsd-update</command> para
aplicar parches de seguridad y aplicar actualizaciones
mayores y menores de &os;.</para>
</listitem>
<listitem>
<para>C&oacute;mo comparar el estado de un sistema instalado contra una
copia confiable.</para>
</listitem>
</itemizedlist>
<para>Antes de leer este cap&iacute;tulo necesita:</para>
<itemizedlist>
<listitem>
<para>Comprender lo b&aacute;sico de &unix; y &os;
(<xref linkend="basics">).</para>
</listitem>
<listitem>
<para>Tener soltura con la configuraci&oacute;n y la
compilaci&oacute;n del kernel
(<xref linkend="kernelconfig">).</para>
</listitem>
<listitem>
<para>Tener cierta familiaridad con la Colecci&oacute;n de
Ports y la instalaci&oacute;n de aplicaciones de terceros
en &os;
(<xref linkend="ports">).</para>
</listitem>
<listitem>
<para>Experiencia con los diversos componentes de c&oacute;digo
que componen &os; y c&oacute;mo usar &man.mergemaster.8;
(<xref linkend="cutting-edge">).</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="updating-freebsdupdate">
<title>FreeBSD Update</title>
<para>La aplicaci&oacute;n de parches de seguridad es una parte
importante del mantenimiento del software. Durante mucho tiempo
en &os; este proceso no era precisamente de los m&aacute;s
sencillos. Hab&iacute;a que aplicar los parches al c&oacute;digo
fuente, recompilarlo para convertirlo en binarios y despu&eacute;s
reinstalar esos binarios.<para>
<para>Ahora todo ha cambiado, &os; ha incorporado una herramienta
f&aacute;cil de usar llamada <command>freebsd-update</command>. Esta
herramienta tiene dos funciones. La primera es permitir la
aplicaci&oacute;n de actualizaciones de seguridad y erratas sin
los pasos compilar e instalar. La segunda es poder aplicar
actualizaciones de versi&oacute;n mayores y menos.</para>
<note>
<para>Hay actualizaciones binarias para todas las arquitecturas
y versiones de &os; soportadas por el equipo de seguridad;
no obstante, ciertas caracter&iacute;sticas (como las
actualizaciones del sistema operativo, hacen imprescindible
la &uacute;ltima versi&oacute;n de &man.freebsd-update.8; y
&os;&nbsp;6.3 o superior. Antes de actualizar a una nueva
release consulte los avisos de la release actual; es posible
que contenga informaci&oacute;n de su inter&eacute;s. Puede
encontrar estos anuncios aqu&iacute;:
<ulink url="http://www.FreeBSD.org/releases/"></ulink>.</para>
</note>
<para>Si est&aacute; usando <command>crontab</command> con
<command>freebsd-update</command> tendr&aacute; que dejar
de hacerlo antes de proseguir con lo que vamos hacer. Puede
instalar la &uacute;ltima versi&oacute;n de
<command>freebsd-update</command>: descargue el tar.gz
de la suguiente<acronym>URL</acronym> e inst&aacute;lelo del
siguiente modo:</para>
<screen>&prompt.root; <userinput>gunzip -c freebsd-update-upgrade.tgz | tar xvf -</userinput>
&prompt.root; <userinput>mv freebsd-update.sh /usr/sbin/freebsd-update</userinput>
&prompt.root; <userinput>mv freebsd-update.conf /etc</userinput></screen>
<para>No es necesario actualizar <command>freebsd-update</command>
en las releases actuales.</para>
<sect2>
<title>El fichero de configuraci&oacute;n</title>
<para>Algunos usuarios pueden querer retocar el fichero de
configuraci&oacute;n para controlar mejor el proceso. Las
opciones disponibles est&aacute;n muy bien documentadas
pero hay unas pocas, que veremos a continuaci&oacute;n,
que quiz&aacute;s necesiten una explicaci&oacute;n un
poquito m&aacute;s m&aacute;s detallada.</para>
<programlisting># Components of the base system which should be kept updated.
Components src world kernel</programlisting>
<para>Es decir:</para>
<programlisting># Componentes del sistema base que deben mantenerse actualizados.
Components src world kernel</programlisting>
<para>Este par&aacute;metro controla qu&eacute; partes de &os;
deben actualizarse. Por omisi&oacute;n se actualiza el
c&oacute;digo fuente del sistema, el sistema base y el
kernel. Los componentes posibles son los mismos que se
ofrecen durante la instalaci&oacute;n, es decir, que si se
incluye en la lista de componentes a actualizar
&laquo;world/games&raquo; se actualizar&iacute;a la
distribuci&oacute;n &laquo;games&raquo;. Si se incluye
&laquo;src/bin&raquo; actualizar&aacute; el c&oacute;digo
fuente bajo<filename class="directory">src/bin</filename>.</para>
<para>Lo m&aacute;s razonable es dejar &eacute;ste par&aacute;metro
tal y como est&aacute;, puesto que modificarlo de cualquier
obligar&aacute; al usuario a incluir en la lista todos y
cada uno de los elementos que quiera actualizar, lo cual
puede tener consecuencias desastrosas si el c&oacute;digo
fuente y los binarios dejan de estar sincronizados.</para>
<programlisting># Paths which start with anything matching an entry in an IgnorePaths
# statement will be ignored.
IgnorePaths</programlisting>
<para>Es decir:</para>
<programlisting># Las rutas que estén detrás de IgnorePaths serán ignoradas.
IgnorePaths</programlisting>
<para>Puede incluir como
<filename class="directory">/bin</filename> o
<filename class="directory">/sbin</filename> para que esos
directorios no se toquen durante la actualizaci&oacute;n
si hay en ellos cambios que haya hecho
usted.</para>
<programlisting># Paths which start with anything matching an entry in an UpdateIfUnmodified
# statement will only be updated if the contents of the file have not been
# modified by the user (unless changes are merged; see below).
UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile</programlisting>
<para>Es decir:</para>
<programlisting># Las rutas que comiencen por algo que esté tras UpdateIfUnmodified solamente
# se actualizarán si el contenido del fichero no ha sido modificado
# por el usuario (salvo que los cambios se hayan importado; siga
# leyendo más abajo.
UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile</programlisting>
<para>Con esto actualizar&aacute; los ficheros de configuraci&oacute;n
que est&eacute;n en los directorios especificados solamente
si no han sido modificados. Cualquier cambio que el usuario
pueda hacer en ellos anular&aacute; la actualizaci&oacute;n
autom&aacute;tica de esos ficheros. Hay otra opci&oacute;n,
<literal>KeepModifiedMetadata</literal>, que le dice a
<command>freebsd-update</command> que guarde los cambios que
encuentre durante la mezcla de las versiones de los ficheros.</para>
<programlisting># When upgrading to a new &os; release, files which match MergeChanges
# will have any local changes merged into the version from the new release.
MergeChanges /etc/ /var/named/etc/</programlisting>
<para>Esto es:</para>
<programlisting># Al actualizar a una nueva release de &os;, en los ficheros que aparezcan
# tras MergeChanges se mezclarán los cambios entre la versión local y la de la nueva release.
MergeChanges /etc/ /var/named/etc/</programlisting>
<para>Lista los directorios con ficheros de configuraci&oacute;n
en los que <command>freebsd-update</command> deber&iacute;a
intentar mezclar cambios locales con los de la nueva versi&oacute;n.
El proceso de mezcla consiste en una serie de parches &man.diff.1;
similar a ejecutar &man.mergemaster.8; pero con menos opciones: la
mezcla se acepta, se abre un editor o
<command>freebsd-update</command> se apaga. Si tiene alguna duda
haga una copia de seguridad de
<filename class="directory">/etc</filename> y acepte la mezcla.
Consulte el <xref linkend="cutting-edge"> si necesita m&aacute;s
informaci&oacute;n sobre la orden <command>mergemaster</command>.</para>
<programlisting># Directory in which to store downloaded updates and temporary
# files used by &os; Update.
# WorkDir /var/db/freebsd-update</programlisting>
<para>Esto es:</para>
<programlisting># Directorios donde descargar actualizaciones y guardar ficheros temporales necesarios para &os; Update.
# WorkDir /var/db/freebsd-update</programlisting>
<para>En este directorio es donde van a parar todos los parches
y los ficheros temporales. Cuando el usuario est&eacute;
haciendo una actualizaci&oacute;n de versi&oacute;n este
directorio puede llegar a ocupar un gigabyte.</para>
<programlisting># When upgrading between releases, should the list of Components be
# read strictly (StrictComponents yes) or merely as a list of components
# which *might* be installed of which &os; Update should figure out
# which actually are installed and upgrade those (StrictComponents no)?
# StrictComponents no</programlisting>
<para>Es decir:</para>
<programlisting># Durante una actualizaci&oacute;n entre releases ¿Debe leerse al When upgrading between releases, should the list of Components be
# pie de la letra (StrictComponents yes) o simplemente como una lista
# de componentes que *podrían* instalarse y de las cuales &os; Update
# tendrá que decidir cuáles están instaladas y actualizarlas
# (StrictComponents no)?
# StrictComponents no</programlisting>
<para>Si pone <literal>yes</literal>
<command>freebsd-update</command> asumir&aacute; que la lista
de <literal>Components</literal> est&aacute; completa y no
intentar&aacute; cambiar nada que no est&eacute; en ella.
Dicho de otro modo, <command>freebsd-update</command> intentar&aacute;
modificar cada fichero que aparezca en la lista
<literal>Components</literal>.</para>
</sect2>
<sect2>
<title>Parches de seguridad</title>
<para>Los parches de seguridad se almacenan en una
m&aacute;quina remota y se pueden descargar e instalar
mediante la siguiente orden:</para>
<screen>&prompt.root; <userinput>freebsd-update fetch</userinput>
&prompt.root; <userinput>freebsd-update install</userinput></screen>
<para>Si se ha aplicado alg&uacute;n parche al kernel tendr&aacute;
que reiniciar. Si todo ha ido bien el sistema el sistema
ya est&aacute; parcheado y <command>freebsd-update</command>
puede ejecutarse como trabajo nocturno en
&man.cron.8;. Esto se hace con una entrada en
<filename>/etc/crontab</filename>:</para>
<programlisting>@daily root freebsd-update cron</programlisting>
<para>Esta entrada har&aacute; que una vez al dia se
ejecutar&aacute; <command>freebsd-update</command>. Al pasarle
el argumento <option>cron</option> a
<command>freebsd-update</command> solamente intentar&aacute;
saber si existen actualizaciones. Si hay parches disponibles
los descargar&aacute; autom&aacute;ticamente a disco local, pero
no los instalar&aacute;. El usuario
<username>root</username> recibir&aacute; un correo
electr&oacute;nico avisandole de que puede aplicarlos.</para>
<para>Si algo ha ido mal <command>freebsd-update</command>
puede dar marcha atr&aacute;s al &uacute;ltimo conjunto de
cambios si le da la siguiente orden:</para>
<screen>&prompt.root; <userinput>freebsd-update rollback</userinput></screen>
<para>Hecho esto el sistema tendr&aacute; que reiniciarse si el
kernel o cualquier m&oacute;dulo del kernel han sufrido
modificaciones. De este modo &os; podr&aacute; cargar en memoria
los nuevos binarios.</para>
<note>
<para><command>freebsd-update</command> solamente funciona con
el kernel <filename>GENERIC</filename>. Si hace cualquier cambio
a <filename>GENERIC</filename> o utiliza un kernel personalizado
<command>freebsd-update</command> no podr&aacute; cumplir su
misi&oacute;n: en el primer caso fallar&aacute; y en el segundo
le mostrar&aacute; un error.</para>
</note>
</sect2>
<sect2>
<title>Actualizaciones mayores y menores</title>
<para>Este proceso borrar&aacute; todos los ficheros de
objeto viejos y las librer&iacute;as que har&aacute;n
fallar la mayor&iacute;a de las aplicaciones de terceros
que tenga en el sistema. Le recomendamos que borre y
reinstale todos sus ports o los actualice con
<filename role="package">ports-mgmt/portupgrade</filename>.
Tambi&eacute;n le recomendamos que ejecute una compilaci&oacute;n
de prueba con la siguiente orden:</para>
<screen>&prompt.root; <userinput>portupgrade -af</userinput></screen>
<para>De esta forma se asegura de uqe todo se reinstalar&aacute;
correctamente. Recuerde que si asigna el valor
<literal>yes</literal> a la variable de entorno
<makevar>BATCH</makevar> responder&aacute; usted
que <emphasis>s&iacute;</emphasis> a todas las preguntas
que puedan surgir y por tanto requerir intervenci&oacute;n
manual durante el proceso de compilaci&oacute;n.</para>
<para>Las actualizaciones a versiones mayores o menores pueden
ejecutarse facilitando a <command>freebsd-update</command> la
release a la que queremos llevar al sistema; veamos un ejemplo
en el que vamos a actualizar a
&os;&nbsp;6.3:</para>
<screen>&prompt.root; <userinput>freebsd-update -r 6.3-RELEASE upgrade</userinput></screen>
<para>Una vez que la orden ha sido recibida
<command>freebsd-update</command> lee el fichero de
configuraci&oacute;n y la del sistema para recopilar
toda la informaci&oacute;n necesaria para actualizar el
sistema. Se le mostrar&aacute; una pantalla con una
lista con los componentes detectados y tam&eacute;n con
los que no han podido serlo. Veamos un ejemplo:</para>
<screen>Looking up update.FreeBSD.org mirrors... 1 mirrors found.
Fetching metadata signature for 6.3-BETA1 from update1.FreeBSD.org... done.
Fetching metadata index... done.
Inspecting system... done.
The following components of FreeBSD seem to be installed:
kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games
src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
world/base world/info world/lib32 world/manpages
The following components of FreeBSD do not seem to be installed:
kernel/generic world/catpages world/dict world/doc world/games
world/proflibs
Does this look reasonable (y/n)? y</screen>
<para>Lo que m&aacute;s o menos vendr&iacute;a a ser:</para>
<screen>Buscando réplicas de update.FreeBSD.org ... encontrada 1 réplica.
Descargando firma de metadatos para 6.3-BETA1 from update1.&os;.org... hecho.
Descargando índice de metadatos... hecho.
Inspección del sistema... hecho.
Parece que están instalados los siguientes componentes de &os;:
kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games
src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
world/base world/info world/lib32 world/manpages
Parece que no están instalados los siguientes componentes:
kernel/generic world/catpages world/dict world/doc world/games
world/proflibs
¿Está de acuerdo? (s/n) s</screen>
<para>A partir de aqu&iacute; <command>freebsd-update</command>
intentar&aacute; descargar todos los ficheros necesarios para
la actualizaci&oacute;n del sistema. En algunos casos le
har&aacute; preguntas al usuario sobre qu&eacute; o c&oacute;mo
instalar.</para>
<para>Una vez que todos los parches han sido descargados al
disco duro local hay que aplicarlos, es decir,
instalarlos. Este proceso puede llevar tiempo dependiendo
de la velocidad y la carga de trabajo que est&eacute;
sacando adelante la m&aacute;quina. Los ficheros de
configuraci&oacute;n tendr&aacute;n que mezclarse: esta
parte del proceso requiere intervenci&oacute;n del usuario
cuando un fichero tenga que ser mezclado, o cuando aparezca
un editor en pantalla para que haga una mezcla manual. Los
resultados de cada mezcla que concluya satisfactoriamente se
ir&aacute;n mostrando al usuario a medida que el proceso vaya
avanzando. Si falla o se ignora alguna mezcla el proceso
se interrumpir&aacute;. Le recomendamos que haga una copia
de seguridad de <filename class="directory">/etc</filename>
y mezcle manualmente los ficheros importantes (como
<filename>master.passwd</filename> o
or <filename>group</filename>) cuando acabe con la
actualizaci&oacute;n.</para>
<note>
<para>En este punto el sistema sigue sin haber sufrido
ning&uacute;n cambio, pues todo el parcheo y las
mezclas est&aacute;n teniendo lugar en un directorio.
Cuando todos los parches se hayan aplicado satisfactoriamente,
todos los ficheros de configuraci&oacute;n hayan sido
mezclados y parezca -desde todos los puntos de vista- que
el proceso va del todo bien, los cambios tendr&aacute;n
que ser aplicados por el usuario.</para>
</note>
<para>Cuando el proceso est&eacute; completo la actualizaci&oacute;n
se aplicar&aacute; al sistema con la siguiente orden:</para>
<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
<para>El kernel y los m&oacute;dulos del kernel se parchean en
primer lugar. Tras esto hay que reiniciar la m&aacute;quina. Debe
usar la siguiente orden para reiniciar la m&aacute;quina
y poder as&iacute; cargar en memoria el nuevo kernel:</para>
<screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
<para>Una vez que haya reiniciado el sistema
arranque de nuevo <command>freebsd-update</command>. El
estado del proceso se ha guardado, as&iacute; que
<command>freebsd-update</command> no empezar&aacute; desde
cero, pero s&iacute; que borrar&aacute; todas las bibliotecas
compartidas y ficheros objeto que ya no sean necesarios.
Introduzca la siguiente orden:</para>
<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
<note>
<para>Dependiendo de si hay n&uacute;meros de versi&oacute;n de
bibliotecas que hayan subido habr&aacute; dos o tres pasos
instalaci&oacute;n.</para>
</note>
<para>Es necesario recompilar y reinstalar todo el software
de terceros. La raz&oacute;n de esto es que el software
que tiene instalado puede depender de bibliotecas que van
a desaparecer durante el proceso de actualizaci&oacute;n.
Puede utilizar la orden
<filename role="package">ports-mgmt/portupgrade</filename>
para automatizar el proceso. Puede usar las siguientes
&oacute;rdenes para comenzar el proceso:</para>
<screen>&prompt.root; <userinput>portupgrade -f ruby</userinput>
&prompt.root; <userinput>rm /var/db/pkg/pkgdb.db</userinput>
&prompt.root; <userinput>portupgrade -f ruby18-bdb</userinput>
&prompt.root; <userinput>rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db</userinput>
&prompt.root; <userinput>portupgrade -af</userinput></screen>
<para>Una vez terminado esto solamente queda usar una vez
m&aacute;s a <command>freebsd-update</command>. Utilice
la siguiente orden para concluir el proceso de
actualizaci&oacute;n:</para>
<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
<para>Reinicie la m&aacute;quina y ver&aacute; la nueva
versi&oacute;n de &os;. El proceso ha terminado.</para>
</sect2>
<sect2>
<title>Comparaci&oacute;n de estado del sistema</title>
<para>La orden <command>freebsd-update</command> puede
utilizarse para comprobar el estado de una versi&oacute;n
instalada de &os; contra una copia confiable. Esta
opci&oacute;n compara la versi&oacute;n instalada de las
utilidades del sistema, bibliotecas y ficheros de
configuraci&oacute;n. Para ejecutar la comparaci&oacute;n
ejecute la siguiente orden:</para>
<screen>&prompt.root; <userinput>freebsd-update IDS &gt;&gt; outfile.ids</userinput></screen>
<warning>
<para>Aunque el nombre de la orden sea
<acronym>IDS</acronym> bajo ning&uacute;n concepto puede
utilizarse como sustituto de un sistema de detecci&oacute;n
de intrusos <footnote><para><acronym>IDS</acronym> son las
siglas de <literal>sistema de detecci&oacute;n
de intrusos</literal> en ingl&eacute;s: <literal>Intrusion
Detection System</literal>.</para></footnote> como
<filename role="package">security/snort</filename>. Dado que
<command>freebsd-update</command> almacena datos en disco las
posibilidades de manipulaci&oacute;n son evidentes. Puede
reducirlas mediante <varname>kern.securelevel</varname> y
guardando los datos de <command>freebsd-update</command>
en un medio de solo lectura mientras no est&eacute;n en
uso. O puede hacer algo mejor a&uacute;n, comparar el
sistema con el contenido de un disco seguro, como un
<acronym>DVD</acronym> o un dispositivo
<acronym>USB</acronym> almacenado en sitio seguro.</para>
</warning>
<para>El sistema se va a revisar y se generar&aacute; una lista
de ficheros con sus respectivos valores hash
&man.sha256.1;. Estos valores son los de la release y de la
versi&oacute;n instalada. La salida se env&iacute;a al fichero
<filename>outfile.ids</filename> porque pasa a una velocidad
muy superior a la necesaria para poder leer el texto y muy
r&aacute;pidamente sobrepasa el tama&ntilde;o del b&uacute;fer
de la consola.</para>
<para>Las l&iacute;neas del fichero son adem&aacute;s extremadamente
largas, pero el formato de salida puede manejarse muy
f&aacute;cilmente. Por ejemplo, si quiere obtener una lista
de todos los ficheros diferentes de lo que aparece en la release
utilice la siguiente orden:</para>
<screen>&prompt.root; <userinput>cat update.ids | awk '{ print $1 }' | more</userinput>
/etc/master.passwd
/etc/motd
/etc/passwd
/etc/pf.conf</screen>
<para>La salida del ejemplo no est&aacute; completa, hay
muchos otros ficheros que diferir&aacute;n. Algunos de
estos ficheros tienen cambios normales, el fichero
<filename>/etc/passwd</filename> es distinto porque se han
a&ntilde;adido usuarios nuevos. En ciertos casos puede
haber otros ficheros distintos, como m&oacute;dulos del
kernel, que ser&aacute;n diferentes porque
<command>freebsd-update</command> los habr&aacute;
actualizado. Si quiere excluir ficheros o directorios
espec&iacute;ficos use la opci&oacute;n
<literal>IDSIgnorePaths</literal> en
<filename>/etc/freebsd-update.conf</filename>.</para>
<para>Este sistema puede utilizarse como parte de un
m&eacute;todo muy elaborado de actualizaci&oacute;n
aparte de lo que aqu&iacute; se ha explicado.</para>
</sect2>
</sect1>
<sect1 id="updating-portsnap">
<title>Portsnap: Una herramienta de actualizaci&oacute;n de la
Colecci&oacute;n de Ports</title>
<para>El sistema base de &os; tiene una herramienta para la
la actualizaci&oacute;n de la Colecci&oacute;n de Ports:
&man.portsnap.8;. Una vez ejecutada se conectar&aacute; con
un servidor remoto, verificar&aacute; la firma de seguridad y
descargar&aacute; una copia nueva del &aacute;rbol de ports.
La firma segura se usa para verificar la integridad de todos
los ficheros que se descargan para asegurarse de que no han sido
modificados desde que fueron generados. Para descargar la
&uacute;ltima versi&oacute;n de los ficheros que componen la
Colecci&oacute;n de Ports use la siguiente orden:</para>
<screen>&prompt.root; <userinput>portsnap fetch</userinput>
Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found.
Fetching snapshot tag from portsnap1.FreeBSD.org... done.
Fetching snapshot metadata... done.
Updating from Wed Aug 6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008.
Fetching 3 metadata patches.. done.
Applying metadata patches... done.
Fetching 3 metadata files... done.
Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done.
Applying patches... done.
Fetching 133 new ports or files... done.</screen>
<!--
No he traducido esta "captura de pantalla" porque el párrafo siguiente
la explica. No podemos meter en una cápsula al usuario y que no vea
que el sistema en realidad está en inglés.
carvay@FreeBSD.org Noviembre 2008
-->
<para>Este ejemplo muestra c&oacute;mo &man.portsnap.8; ha encontrado
y verificado varios parches para los ports del sistema. Indica
tambi&eacute;n que la aplicaci&oacute;n ya hab&iacute;a sido
ejecutada. Si hubiera sido una primera ejecuci&oacute;n
sencillamente se hubiera descargado la colecci&oacute;n.</para>
<para>Una vez que &man.portsnap.8; ha obtenido los nuevos
elementos de la Colecci&oacute;n de Ports junto con los nuevos
parches disponibles, y una vez que todos ellos han pasado la
verificaci&oacute;n en local, ya podemos pasar a la instalaci&oacute;n,
que efectuaremos con la siguiente orden:</para>
<para>Los ficheros actualizados pueden
ya instalarse tecleando lo siguiente:</para>
<screen>&prompt.root; <userinput>portsnap extract</userinput>
/usr/ports/.cvsignore
/usr/ports/CHANGES
/usr/ports/COPYRIGHT
/usr/ports/GIDs
/usr/ports/KNOBS
/usr/ports/LEGAL
/usr/ports/MOVED
/usr/ports/Makefile
/usr/ports/Mk/bsd.apache.mk
/usr/ports/Mk/bsd.autotools.mk
/usr/ports/Mk/bsd.cmake.mk
<replaceable>...</replaceable></screen>
<para>El proceso ha concluido y ya puede instalar o actualizar
aplicaciones desde su flamante Colecci&oacute;n de Ports.</para>
</sect1>
</chapter>