diff options
author | Eitan Adler <eadler@FreeBSD.org> | 2015-04-03 05:08:29 +0000 |
---|---|---|
committer | Eitan Adler <eadler@FreeBSD.org> | 2015-04-03 05:08:29 +0000 |
commit | db5df9d85fc7fce7416421ca6a172ac5269628a0 (patch) | |
tree | 8498095bff9bba059fb8ce30ee25addf7645180e /es_ES.ISO8859-1/articles/fbsd-from-scratch/article.xml | |
parent | 4e77ebb87491d864030f58a455df26141e69e65e (diff) | |
download | doc-db5df9d85fc7fce7416421ca6a172ac5269628a0.tar.gz doc-db5df9d85fc7fce7416421ca6a172ac5269628a0.zip |
attempt to fix build breakage
If I understand correctly the build broke because the non-english articles
import from the english version of fbsd-from-scratch.
Remove the translated articles for the articles I removed in English
Notes
Notes:
svn path=/head/; revision=46443
Diffstat (limited to 'es_ES.ISO8859-1/articles/fbsd-from-scratch/article.xml')
-rw-r--r-- | es_ES.ISO8859-1/articles/fbsd-from-scratch/article.xml | 709 |
1 files changed, 0 insertions, 709 deletions
diff --git a/es_ES.ISO8859-1/articles/fbsd-from-scratch/article.xml b/es_ES.ISO8859-1/articles/fbsd-from-scratch/article.xml deleted file mode 100644 index 24094e8da1..0000000000 --- a/es_ES.ISO8859-1/articles/fbsd-from-scratch/article.xml +++ /dev/null @@ -1,709 +0,0 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN" - "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [ -<!ENTITY scratch.ap "<application xmlns='http://docbook.org/ns/docbook'>FreeBSD From Scratch</application>"> -]> -<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="es"> - <info><title>FreeBSD From Scratch</title> - - - <author><personname><firstname>Jens</firstname><surname>Schweikhardt</surname></personname><affiliation> - <address><email>schweikh@FreeBSD.org</email></address> - </affiliation></author> - <copyright> - <year>2002</year> - <holder>Jens Schweikhardt</holder> - </copyright> - - <pubdate>$FreeBSD$</pubdate> - - <releaseinfo>$FreeBSD$</releaseinfo> - - <abstract> - <para>&scratch.ap; explica la instalación totalmente automatizada - de un sistema &os; hecho a medida y compilado desde las fuentes, - proceso que incluye además la compilación de sus - <quote>ports</quote> favoritos y configurado para coincidir con - su idea del sistema perfecto. Si cree que - <command>make world</command> es un concepto fascinante - &scratch.ap; lo amplía hasta ser - <command>make evenmore</command>. N. del T. : Juego de palabras - intraducible basado en el nombre que en &os; se da al proceso de - recompilar todo el sistema desde los fuentes, <command>make world</command>, - que podría traducirse muy libremente como <quote>hacer, o más bien rehacer el - mundo entero</quote> y <command>make evenmore</command>, osea, <quote>hacer más - aún</quote>. </para> - &trans.es.carvay; - </abstract> - </info> - - <sect1 xml:id="introduction"> - <title>Introducción</title> - - <para>?Ha actualizado alguna vez su sistema mediante - <command>make world</command>?. Si solamente tiene un sistema - en sus discos se encontrará con un problema. Si - <buildtarget>installworld</buildtarget> falla a la mitad - su sistema quedará dañado e incluso - puede ser incapaz de arrancar de nuevo. O quizás - <buildtarget>installworld</buildtarget> se ha ejecutado sin problemas - pero el nuevo kernel no arranca. Se impone buscar el CD de - Rescate y tratar de encontrar algo útil en aquellos - <quote>backups</quote> que hizo hace seis meses.</para> - - <para>Creo en el paradigma de <quote>al actualizar sistemas operativos - instala desde cero</quote>. Haciéndolo así, esto es, - al borrar sobreescribiendo en los discos o mejor dicho las particiones, - nos aseguraremos de no dejar datos antiguos en ellos, un aspecto - éste del que la mayoría de los procesos de - actualización no se preocupan en absoluto. - Por otra parte borrar las particiones significa - que tendrá que recompilar/reinstalar todos sus - <quote>ports</quote> y <quote>packages</quote> y después de eso - rehacer todas y cada una de las configuraciones que con muchos esfuerzos - atesoraba. Si usted también piensa que ésta tarea - debería automatizarse siga leyendo.</para> - </sect1> - - <sect1 xml:id="why"> - <title>?Por qué (no) debería interesarme - &scratch.ap;?</title> - - <para>Esa es una pregunta muy razonable. Tenemos - <application>sysinstall</application>, una compilación - del kernel que funciona sin sorpresas y tenemos también - las herramientas de entorno de usuario.</para> - - <para>El problema que tiene <application>sysinstall</application> - es que está extremadamente limitado cuando se trata de - qué, dónde y cómo queremos que haga la - instalación.</para> - - <itemizedlist> - <listitem> - <para>Normalmente se usa para instalar distribuciones precompiladas - y <quote>packages</quote> desde diversas fuentes (CD, DVD, - FTP). No puede instalar el resultado de - <literal>make buildworld</literal>.</para> - </listitem> - - <listitem> - <para>No puede instalar un segundo sistema en un directorio - de un sistema en funcionamiento.</para> - </listitem> - - <listitem> - <para>No puede hacer una instalación en particiones - <application>Vinum</application>.</para> - </listitem> - - <listitem> - <para>No puede compilar <quote>ports</quote>, sólo - instala <quote>packages</quote> precompilados.</para> - </listitem> - - <listitem> - <para>Es difícil automatizar mediante - <quote>scripts</quote> o incluso hacer de forma manual - los cambios que considere - necesarios después de la instalación</para> - </listitem> - - <listitem> - <para>Por si todo esto fuera poco - <application>sysinstall</application> - está semioficialmente al final de su - <quote>Ciclo de Vida Útil</quote>.</para> - </listitem> - </itemizedlist> - - <para>El archiconocido proceso de <quote>construír/instalar - el mundo</quote> (<quote>build/install world</quote>), explicado en - <link xlink:href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html">el - Handbook</link>, por defecto realiza la tarea de sustituír el - sistema existente. Sólo respeta el kernel y los - módulos. Los binarios del sistema, los ficheros de - cabecera y muchos otros ficheros son sobreescritos; hay ficheros - obsoletos que se quedan donde estaban y pueden causar - sorpresas. Si el proceso de actualización falla por alguna - razón puede ser difícil o incluso imposible volver a - dejar el sistema en el estado inicial.</para> - - <para>&scratch.ap; resuelve todos esos problemas. La estrategia es - simple: utiliza un sistema en funcionamiento para instalar un nuevo - sistema en un árbol de directorios y montar nuevas particiones - limpiamente en ese árbol. Muchos ficheros de - configuración pueden copiarse al sitio que les corresponda y - &man.mergemaster.8; se encargará de aquellos a los que - no. Pueden hacerse cambios discrecionales tras la - instalación del nuevo sistema desde el viejo, - como si el nuevo sistema estuviera dentro de un - <quote>chroot</quote>. El proceso tiene tres fases, - cada una de los cuales consiste en ejecutar un - <quote>script de shell</quote> o invocar - <command>make</command>:</para> - - <orderedlist> - <listitem> - <para><filename>fase_1.sh</filename>: - Crea un sistema nuevo y capaz de arrancar en un directorio - vacío y combina o copia tantos ficheros como sea - necesario. Una vez acabado esto arranca el nuevo sistema.</para> - </listitem> - - <listitem> - <para><filename>fase_2.sh</filename>: - Instala los <quote>ports</quote> que hayamos elegido.</para> - </listitem> - - <listitem> - <para><filename>fase_3.mk</filename>: - Remata la configuración del software instalado en la - fase anterior.</para> - </listitem> - </orderedlist> - - <para>Una vez que ha usado &scratch.ap; para construír un - segundo sistema y ha comprobado que funciona satisfactoriamente - durante unas cuantas semanas puede usarlo de nuevo para reinstalar - el sistema original. Desde ese momento cada vez que crea que - debe actualizar un sistema simplemente elija las particiones que - hay que borrar y reinstalar.</para> - - <para>Puede que haya oído hablar o incluso haya usado ya - <link xlink:href="http://www.linuxfromscratch.org/">Linux From Scratch</link>, - LFS para ser más breve. LFS abarca también cómo - construír e instalar un sistema desde cero en particiones - vacías partiendo de un sistema en funcionamiento. El - objetivo de LFS parece ser mostrar la razón de ser y de estar - de todas y cada una de las partes del sistema (como el kernel, - el compilador, los dispositivos, la shell, la base de datos de - terminales, etc.) y los detalles de la instalación de cada - parte. &scratch.ap; no entra en detalles tan exahustivos. Mi - intención es facilitar una instalación automatizada y - completa, no explicar cada detalle escabroso del ciclópeo - proceso que arrancamos cuando hacemos un - <command>make world</command>. Si desea usted explorar &os; de - modo tan profundo comience por leer - <filename>/usr/src/Makefile</filename> y siga cuidadosamente lo - que sucede al teclear - <command>make buildworld</command>.</para> - - <para>Hay también algunos detalles delicados con los que - me encontré durante el desarrollo de &scratch.ap; que - debería tener muy en cuenta.</para> - - <!-- XXX: Sería una buena idea escribir el fase_2.sh usando un - "jail" situada en el sistema nuevo instalado en la primera - fase. Si disponemos de una dirección de red bien configurada - como IP primaria de esa "jail" podría ser posible incluso - compilar "ports" en un "chroot" sin desinstalar nada del - sistema anfitrión. No obstante tenga en cuenta que incluso - las "jail" están ejecutando el kernel anfitrión.--> - - <itemizedlist> - <listitem> - <para>El sistema no puede ser usado normalmente - durante la compilación de los <quote>ports</quote> - que tiene lugar en la segunda fase. Si va a ejecutar - el proceso en un servidor en producción tenga en cuenta - el tiempo de parada provocado por la fase dos. Los - <quote>ports</quote> compilados por - <filename>fase_2.sh</filename> necesitan aproximadamente 4 horas - para acabar en un sistema SCSI AMD1800+ con discos de 10.000 rpm - y 1GB de RAM.</para> - </listitem> - </itemizedlist> - - </sect1> - - <sect1 xml:id="prerequisites"> - <title>Requisitos previos</title> - - <para>Para poder usar &scratch.ap; - necesitará lo siguiente:</para> - - <itemizedlist> - <listitem> - <para>Un sistema &os; con el árbol de <quote>ports</quote> y - los fuentes instalados.</para> - </listitem> - - <listitem> - <para>Al menos una partición vacía donde instalaremos - el nuevo sistema.</para> - </listitem> - - <listitem> - <para>Experiencia en el uso de &man.mergemaster.8; o al menos no - tener miedo de usarlo.</para> - </listitem> - - <listitem> - <para>Si su acceso a Internet es lento o si no dispone del mismo - necesitará los <quote>distfiles</quote> de los ports que - vaya a instalar.</para> - </listitem> - - <listitem> - <para>Conocimientos básicos de confección de - <quote>scripts</quote> de shell con la shell Bourne, - &man.sh.1;</para> - </listitem> - - <listitem> - <para>Finalmente, debería ser capaz de decirle a su - <quote>boot loader</quote> (cargador de arranque) cómo arrancar el nuevo - sistema, en modo interactivo o mediante un fichero de - configuración.</para> - </listitem> - </itemizedlist> - - </sect1> - - <sect1 xml:id="stage1"> - <title>Primera Fase: Instalación del Sistema</title> - - <para>Lo que vamos a explicar más adelante es mi - <filename>fase_1.sh</filename>. Tendrá que modificarlo - en varios sitios para que cuadre con su propia idea del - <quote>sistema perfecto</quote>. He intentado incluír - todos los comentarios posibles en los sitios donde debería - usted introducir sus cambios. Los puntos a estudiar son:</para> - - <itemizedlist> - <listitem> - <para>Esquema de particiones.</para> - - <para>No estoy de acuerdo con la idea de una sola - partición inmensa en la que instalar todo el - sistema. Mis sistemas tienen generalmente al menos - una partición para - <filename>/</filename>, - <filename>/usr</filename> y - <filename>/var</filename> con - <filename>/tmp</filename> enlazado simbólicamente a - <filename>/var/tmp</filename>. - Además comparto los sistemas de ficheros en los que - ubico - <filename>/home</filename> (los directorios de los usuarios), - <filename>/home/ncvs</filename> (réplica del repositorio - de &os;, - <filename>/usr/ports</filename> (el árbol de ports), - <filename>/src</filename> (diversos árboles de fuentes de - procedencias varias) y - <filename>/share</filename> (otros datos compartidos que no - necesitan ser guardados, por ejemplo mensajes de - <quote>news</quote>.</para> - </listitem> - - <listitem> - <para><quote>Lujos</quote>.</para> - - <para>Me refiero a lo que usaremos inmediatamente tras el arranque - del nuevo sistema e incluso antes de la segunda fase. En mi caso - se trata de <package>shells/zsh</package> puesto - que es la shell que aparece en mi cuenta de usuario en <filename> - /etc/passwd</filename>. De todos modos la tarea puede culminarse - sin esos <quote>lujos</quote> (de ahí su nombre), todo lo - que necesita es entrar en el sistema como root y pasar a la - siguiente fase.</para> - - <para>?Por qué no instalar entonces todos mis ports - en la primera fase?: en teoría y en la práctica - nos encontraremos con problemas de arranque y de consistencia: - durante la primera fase tendrá funcionando su viejo kernel - mientras el entorno <quote>chroot</quote> dispone de sus propios - binarios y ficheros de cabecera todos nuevos. Si por ejemplo el - sistema nuevo integra una nueva llamada al sistema (conforme a sus - cabeceras) algunos <quote>scripts</quote> de configuración - podrían intentar usarla y en concuencia ver <quote> - muertos</quote> sus procesos al tratar de ejecutarse en el viejo - kernel. He tenido problemas de otro tipo al intentar - construír <package>lang/perl5</package>.</para> - </listitem> - </itemizedlist> - - <para>Antes de ejecutar <filename>fase_1.sh</filename> asegúrese - de haber cumplido con las tareas previas a un - <command>make installworld installkernel</command>, es decir:</para> - - <itemizedlist> - <listitem> - <para>haber adaptado el fichero de configuración de su - kernel</para> - </listitem> - - <listitem> - <para>haber completado sin errores <command> - make buildworld</command></para> - </listitem> - - <listitem> - <para>haber completado sin errores<command> - KERNCONF= - nombre_de_su_kernel</command></para> - </listitem> - </itemizedlist> - - - <para>Cuando ejecute <filename>fase_1.sh</filename> por primera vez - y copie sus ficheros de configuración de su sistema en - funcionamiento a su nuevo sistema no están al día - con respecto a lo que hay bajo - <filename>/usr/src</filename>, así que <command> - mergemaster</command> le preguntará por lo que quiere - hacer. Le recomiendo combinar los cambios. (Nota del traductor: - merge (to): unir, fusionar, mezclar). Si se cansa de pelear con - los diálogos de <command>mergemaster</command> puede - simplemente actualizar sus ficheros una vez en el sistema <emphasis> - original</emphasis> (pero sólo si existe esa opció: - por ejemplo, si uno de sus sistemas usa <literal>-STABLE</literal> y - el otro <literal>-CURRENT</literal> los cambios tienen bastantes - probabilidades de ser incompatibles). En posteriores usos - de <command>mergemaster</command> detectará que los ID de - las versiones RCS de esos ficheros coinciden con los que están - bajo <filename>/usr/src</filename> y no les prestará más - atención.</para> - - <para>El <quote>script</quote> <filename>fase_1.sh</filename> - detendrá su ejecución si falla alguno de los - comandos que contiene (si alguno da una salida distinta de - cero) por incluír <command>set -e</command>, así - que es imposible que pase por alto algún error. Antes - de seguir adelante debería asegurarse de que no hay errores - en su versión de - <filename>fase_1.sh</filename>.</para> - - <para>En <filename>fase_1.sh</filename> invocamos - <command>mergemaster</command>. Tanto si alguno de los ficheros - requiere ser combinado como si no, <command>mergemaster</command> - emitirá el siguiente mensaje</para> - - <screen>*** Comparison complete - -Do you wish to delete what is left of /var/tmp/temproot.fase1? [no] <userinput>no</userinput></screen> - - <para>es decir</para> - - <screen>*** Comparación completada - -?Quiere borrar el contenido de /var/tmp/temproot.fase1? [no] <userinput>no</userinput></screen> - - <para>Por favor, responda <literal>no</literal> o simplemente pulse - <keycap>Enter</keycap>. Eso es debido a que <command> - mergemaster</command> habrá dejado unos cuantos ficheros - de longitud igual a cero en <filename> - /var/tmp/temproot.fase1</filename> y los copiará al nuevo - sistema (a menos que ya estén ahí).</para> - - <para>Después mostrará los ficheros que ha instalado - mediante &man.more.1; o si lo prefiere mediante &man.less.1;):</para> - -<screen>*** You chose the automatic install option for files that did not - exist on your system. The following were installed for you: - /rootnuevo/etc/defaults/rc.conf - ... - /rootnuevo/COPYRIGHT - -(END)</screen> - - <para>es decir</para> - - <screen>*** Ha elegido la opción de instalar automáticamente - los ficheros que no existen en su sistema. Han sido instalados los - siguientes: - /rootnuevo/etc/defaults/rc.conf - ... - /rootnuevo/COPYRIGHT - - </screen> - - <para>Teclée <keycap>q</keycap> para salir del - paginador. Ahora se le informará sobre <filename> - login.conf</filename>:</para> - - <screen>*** You installed a login.conf file, so make sure that you run - '/usr/bin/cap_mkdb /newroot/etc/login.conf' - to rebuild your login.conf database - - Would you like to run it now? y or n [n]</screen> - - <para>es decir</para> - - <screen>*** Ha instalado un fichero login.conf así que - asegúrese de ejecutar '/usr/bin/cap_mkdb /rootnuevo/etc/login.conf' - para reconstruír la base de datos de login.conf - - ?Quiere ejecutarlo ahora mismo? (s)i o (n)o [n]</screen> - - <para>La respuesta no tiene importancia puesto que ejecutaremos - &man.cap.mkdb.1; en todos los casos.</para> - - <para>Todo lo que hace <filename>fase_1.sh</filename> queda registrado - en un fichero <quote>log</quote> para que pueda examinarse con - detalle si es preciso.</para> - - <para>Éste es el <filename>fase_1.sh</filename> del autor, - así que tendrá que modificarlo a conciencia, - en especial los pasos 1, 2, 5 y 6.</para> - - <warning> - <para>Por favor, ponga una atención esmerada a las - entradas en las que aparece &man.newfs.8;. Si bien - es cierto que es imposible crear nuevos sistemas de archivos en - particiones montadas nuestro <quote>script</quote> no tendrá - ningún inconveniente en borrar cualquier partición - que no esté montada y con los nombres que aparezcan en - él, en nuestro caso - <filename>/dev/da3s1a</filename>, <filename>/dev/vinum/var_a</filename> - y <filename>/dev/vinum/usr_a</filename>. Puede provocar un desastre, - así que asegúrese de cambiar los nombres de los - dispositivos como corresponda.</para> - </warning> - -<programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="fase_1.sh" parse="text" encoding="iso-8859-1"/></programlisting> - - <para>Descargue <link xlink:href="fase_1.sh"><filename>fase_1.sh</filename></link>.</para> - - <para>La ejecución de éste <quote>script</quote> instala - un sistema equipado con lo siguiente:</para> - <itemizedlist> - <listitem> - <para>Usuarios y grupos heredados del anterior sistema.</para> - </listitem> - <listitem> - <para>Acceso a Internet mediante Ethernet y PPP protegido por - un cortafuegos.</para> - </listitem> - <listitem> - <para>NTP y zona horaria correctas.</para> - </listitem> - <listitem> - <para>Algunos ficheros secundarios como - <filename>/etc/ttys</filename> e - <command>inetd</command>.</para> - </listitem> - </itemizedlist> - - <para>Hay otras áreas listas para ser configuradas pero - no las tocaremos hasta concluír la segunda fase. Por ejemplo, - hemos copiado unos cuantos ficheros para configurar la impresión - y X11. Sin embargo la impresión suele necesitar de aplicaciones - que no se encuentran en el sistema base, por ejemplo PostScript. X11 - no funcionará hasta que no compilemos el servidor, las - bibliotecas y los programas.</para> - </sect1> - - <sect1 xml:id="stage2"> - <title>Segunda Fase: Instalación de <quote> - ports</quote></title> - - <note> - <para>En ésta fase es posible instalar <quote>packages</quote> - (que vienen precompilados) en lugar de compilar <quote> - ports</quote>. Para poder hacerlo convertiremos <filename> - fase_2.sh</filename> en poco más que una lista de - comandos <command>pkg_add</command>. Confío en que - será usted capaz de escribir un <quote>script</quote> - como ese. Ahora nos concentraremos en el sistema tradicional - y mucho más flexible de funcionamiento de los - <quote>ports</quote>.</para> - </note> - - <para>El siguiente <quote>script</quote> <filename> - fase_2.sh</filename> es el que yo uso para instalar mis <quote> - ports</quote> favoritos. Puede ejecutarse tantas veces como sea - preciso y no prestará atención a los <quote> - ports</quote> que ya estén instalados. Incluye también - soporte para la - opción <option>-n</option> que hace un <emphasis>ensayo - general con todo</emphasis>, es decir, muestra lo que hubiera sucedido - si se hubiera ejecutado. Seguro que tiene que editar la lista de - <quote>ports</quote> y probablemente tenga que cambiar unas cuantas - variables de entorno.</para> - - <para>La lista de <quote>ports</quote> consiste en líneas - de dos o más palabras separadas por espacios: la categoría - y el <quote>port</quote>. Es opcional situar detrás - un comando de instalación que compilará e instalará - el <quote>port</quote> (por defecto <command>make install</command>). - Se ignoran las líneas vacís y las que comienzan - por #. La mayoría de las veces es suficiente incluír el - nombre del <quote>port</quote> y la categoría a que pertenece pero - existen unos pocos <quote>ports</quote> en cuya compilación - podemos afinar mucho asignando valores a variables de <command> - make</command>; veamos un ejemplo:</para> - - <programlisting>www mozilla make WITHOUT_MAILNEWS=yes WITHOUT_CHATZILLA=yes install -mail procmail make BATCH=yes install</programlisting> - - <para>De hecho puede usted usar comandos de <quote>shell</quote> a - su criterio, así que no tiene que limitarse a simples - invocaciones de <command>make</command>:</para> - - <programlisting>java linux-sun-jdk13 yes | make install -news inn-stable CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" make install</programlisting> - - <para>Observe que la línea de <package>news/inn-stable</package> es un ejemplo de una - asignación de entrada a la variable del intérprete de - mandatos <literal>CONFIGURE_ARGS</literal>. El fichero <filename>Makefile</filename> - del <quote>port</quote> la usará como valor inicial y la - completará con otros argumentos esenciales. La diferencia respecto a - a especificar la variable para <filename>make</filename> en la línea de - comandos mediante </para> - - <programlisting>news inn-stable make CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" install</programlisting> - - <para>está en que esto último sustituye directamente el valor - en lugar de completarlo. El método más adecuado depende de cada - <quote>port</quote> en particular.</para> - - <para>Compruebe cuidadosamente que ninguno de sus <quote>ports</quote> - tenga una instalación interactiva, es decir, que ninguno - deberí intentar recibir de stdin nada que no le dé - usted en stdin. Si alguno lo hace leerá la siguiente o - siguientes líneas de éste documento y no entenderá - nada de nada. Si <filename>fase_2.sh</filename> pasa por alto - un <quote>port</quote> o cesa su ejecución sin razón - aparente es muy posible que esa sea la razón.</para> - - <para>He aquí <filename>fase_2.sh</filename>. Crea un fichero - <quote>log</quote> por cada port que instala y les da nombres - según el esquema <filename> - DIRECTORIO_LOG/categoría+port</filename>. Si no tiene una - copia de su <filename>fase_2.sh</filename> en una partición - compartida no olvide copiarlo al sistema nuevo antes de - arrancarlo.</para> - -<programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="fase_2.sh" parse="text" encoding="iso-8859-1"/></programlisting> - - <para>Descargue <link xlink:href="fase_2.sh"><filename>fase_2.sh</filename></link>.</para> - </sect1> - - <sect1 xml:id="stage3"> - <title>Tercera Fase</title> - - <para>Ya hemos concluído la segunda fase y ya están - instalados sus queridísimos <quote>ports</quote>, pero - algunos de ellos requieren un poco de configuración. En - eso consistirá la tercera fase, añadir los - detalles específicos de las configuraciones. Podría - haberlos integrado en el <quote>script</quote> <filename> - fase_2.sh</filename> pero creo que hay una diferencia conceptual - entre instalar un <quote>port</quote> y en modificar la - configuración con la que viene por defecto para adaptarla - a nuestros gustos o necesidades y creo por lo tanto que esa - diferencia justifica una separación en una fase - propia.</para> - - <para>He creído más conveniente implementar la - tercera fase como un <filename>Makefile</filename> porque - admiten la selección de lo que quiera configurar - tecleando simplemente:</para> - - <informalexample> - <screen>&prompt.root; <userinput>make -f fase_3.mk - nombre_del_port</userinput></screen> - </informalexample> - - <para>Al igual que con <filename>fase_2.sh</filename> asegúrese - de que dispone de una copia de su <filename>fase_3.mk</filename> una - vez que arranca el sistema nuevo, bien situándolo en una - partición compartida bien copiándolo en algún - lugar dentro del nuevo sistema.</para> - -<programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="fase_3.mk" parse="text" encoding="iso-8859-1"/></programlisting> - - <para>Descargue <link xlink:href="fase_3.mk"><filename>fase_3.mk</filename></link>.</para> - </sect1> - - <sect1 xml:id="limitations"> - <title>Restricciones</title> - - <para>La instalación automatizada de un <quote>port</quote> - puede resultar difícil si es interactiva y no soporta - <command>make BATCH=YES install</command>. En algunos casos - la interacción se reduce a teclear <literal>yes</literal> - cuando se le pregunta si acepta alguna licencia. Si esa entrada de - datos ha de llegar por la entrada estándar simplemente - redirigiremos las respuestas pertinentes a la orden de - instalación (que suele ser <command>make install</command>; - ese es el modo en el que hemos procedido con <package>java/linux-sun-jdk13</package> en - <filename>fase_2.sh</filename>).</para> - - <para>No obstante ésta estrategia no funciona con <package>editors/staroffice52</package>, que exige que X11 - esté funcionando. El proceso de instalación comprende - un buen número de pulsaciones de ratón y de tecleo, - con lo que es imposible automatizarlo tal y como se hace con otros - <quote>ports</quote>. Sin embargo el siguiente atajo workaround - nos soluciona el problema: previamente he creado un <filename> - staroffice</filename> en el sistema original con</para> - - <informalexample> - <screen>&prompt.root; <userinput>cd /usr/ports/editors/staroffice52</userinput> -&prompt.root; <userinput>make package</userinput> -===> Building package for staroffice-5.2_1 -Creating package /usr/ports/editors/staroffice52/staroffice-5.2_1.tbz -Registering depends:. -Creating bzip'd tar ball in '/usr/ports/editors/staroffice52/staroffice-5.2_1.tbz'</screen> - </informalexample> - - <para>y durante la segunda fase usamos:</para> - - <informalexample> - <screen>&prompt.root; <userinput>pkg_add /usr/ports/editors/staroffice52/staroffice-5.2_1.tbz</userinput></screen> - </informalexample> - - <para>Debe usted también tener muy en cuenta posibles - problemas con los ficheros de configuración a la hora de - actualizar. En general no sabemos cuándo van a hacerse cambios - en el formato o el contenido de un fichero de configuración. - Es posible que haya que añadir un nuevo grupo a <filename> - /etc/group</filename>, o quizás <filename>/etc/passwd</filename> - necesite un nuevo campo en sus entradas. Éstas cosas han - sucedido en alguna ocasión anteriormente. Si simplemente - copiamos un fichero de configuración del sistema viejo al nuevo - será suficiente la mayoría de la veces pero ya hemos - visto dos casos en los que no lo era. Si actualiza su sistema siguiendo - el sistema ortodoxo (sobreescribiendo los ficheros antíguos) - tendrá que usar <command>mergemaster</command> para proceder - con los cambios que quiera incluír en - la configuración de su nuevo sistema, teniendo en cuenta que - entre esos cambios hay o puede haber nuevos ficheros. Por desgracia - <command>mergemaster</command> sólo es útil con ficheros - del sistema base y no para aquellos relacionados con los <quote> - ports</quote>. Además, ciertas aplicaciones parecen - especialmente diseñadas para sacarme de mis casillas por el - procedimiento de cambiar el fichero de configuración cada quince - días. Lo único que puede hacerse es estar alerta, - sobre todo cuando cambia el número de versión. - En ocasiones anteriores he tenido que modificar o reescribir - ficheros para servidores web, servidores y clientes de <quote>news</quote>. - Cualquier tipo de software cuyo mantenimiento sea muy activo es un firme - candidato a que sus ficheros de configuración merezcan nuestro - examen.</para> - - <para>He usado &scratch.ap; varias veces para actualizar un sistema - <literal>5-CURRENT</literal> a <literal>5-CURRENT</literal>, esto es, - nunca he intentado instalar <literal>5-CURRENT</literal> desde un - sistema <literal>4-STABLE</literal> o viceversa, pero dada la - cantidad de cambios existentes entre las diferentes <quote> - RELEASE</quote> no sería insensato esperar que esa tarea - sea un tanto compleja. Usar &scratch.ap; para actualizaciones - dentro del campo de <literal>4-STABLE</literal> debería - ser mucho menos penoso (aunque yo aún no lo he - intentado). Si quiere hacerlo debería tener en cuenta - lo siguiente:</para> - - <itemizedlist> - <listitem> - <para>Si no usa el sistema de ficheros de dispositivo - (<literal>devfs</literal>) puede necesitar crear los - dispositivos necesarios para su hardware con &man.MAKEDEV.8; - en la primera fase, sexto paso.</para> - </listitem> - </itemizedlist> - - </sect1> -</article> |