From ede14bcbaec07878da7cedc24f441b78674951e3 Mon Sep 17 00:00:00 2001 From: "J. Vicente Carrasco" Date: Sun, 2 Nov 2008 23:38:10 +0000 Subject: - Translation deleted. Better no translation that this one. More like this coming soon. I don't believe that "bad documentation is better than no documentation" is true. - Use %SOURCE% and %SRCID% tags to store the original revisions of the translated files. In this way, we will be able to generate the list of the outdated files automatically. Obtained from: The FreeBSD Hungarian Documentation Project Inspired by: The FreeBSD Greek Documentation Project --- .../books/handbook/cutting-edge/chapter.sgml | 1193 +------------------- 1 file changed, 27 insertions(+), 1166 deletions(-) (limited to 'es_ES.ISO8859-1/books') diff --git a/es_ES.ISO8859-1/books/handbook/cutting-edge/chapter.sgml b/es_ES.ISO8859-1/books/handbook/cutting-edge/chapter.sgml index 0da661ce19..daba5eaf47 100755 --- a/es_ES.ISO8859-1/books/handbook/cutting-edge/chapter.sgml +++ b/es_ES.ISO8859-1/books/handbook/cutting-edge/chapter.sgml @@ -2,6 +2,18 @@ The FreeBSD Documentation Project $FreeBSD$ + + + + + The FreeBSD Spanish Documentation Project + %SOURCE% en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml + %SRCID% 1.228 + + + + + --> @@ -39,413 +51,40 @@ Lo último de lo último - Sinópsis - - &os; está en desarrollo continuo entre versiones. Para los - que quieran estar en lo último de lo último, hay varias - formas de sincronizar tu sistema con el último desarrollo - fácilmente. ¡Estás advertido— lo último - de lo último no es para cualquiera! - Este capítulo te ayudará a decidir si quieres seguir el - sistema de desarrollo o quedarte en algunas de las versiones publicadas. + Sinopsis - Después de leer este capítulo sabrás: + Pendiente de Traducción - - La diferencia entre las dos ramas de desarrollo; - &os.stable; y &os.current;. - - Cómo mantener tu sistema al día con - CVSup, - CVS, o - CTM. - - Cómo reconstruir y reinstalar el sistema base - entero con make world. - - - Antes de leer este capítulo, deberías: - - - Disponer correctamente tu conexión de red (). - - Saber cómo instalar programas adicionales de - terceros. (). - &os.current; vs. &os.stable; - -CURRENT - -STABLE - Hay dos ramas de desarrollo de FreeBSD; &os.current; y &os.stable;. Esta - sección explicará un poco sobre cada una y describirá - cómo mantener tu sistema al día entre cada árbol respectivo. - &os.current; será discutida primero, luego &os.stable;. - Manteniendo la versión Current. - - Al leer esto, ten en cuenta que &os.current; es el - lo más reciente del desarrollo y que si tú - eres nuevo en &os;, deberías pensartelo muy mucho antes de ejecutarlo. - - - ¿Qué es &os.current;? - Instantánea - - &os.current; es, literalmente, nada más que una instantánea - diaria sobre el trabajo en el código fuente para el &os;. Esto incluye - trabajo cambiante, cambios experimentales y mecanismos transitorios que - podrían estar o no presentes en la próxima versión del - programa. Mientras la mayoría de nosotros compilamos casi a diario el - &os.current; las fuentes, Hay períodos de tiempo en que las fuentes son - literalmente incompilables. Estos problemas son solucionados tan pronto como es - posible, pero si las fuentes del &os.current; son un desastre o una bendición - su utilidad puede ser literalmente una cuestión de en que momento del - período de 24 horas dado las grabaste. - - - - ¿Quién necesita&os.current;? - - &os.current; está disponible generalmente para tres grupos de - interés principales: - - - - Miembros del grupo &os; que están activamente trabajando en - alguna parte del código fuente del árbol y para los que - mantenerse current es un requisito absoluto. - - - - Miembros del &os; grupo que son activos probadores, con el propósito - de pasar tiempo trabajando en los problemas para asegurarse de que - &os.current; se mantiene tan cuerdo como sea posible. También - hay gente que desea hacer sugerencias típicas en cambios y en la - dirección principal del &os;. - - - - Miembros externos &os; o algún grupo que desea mantener un - ojo en las cosas y usa las fuentes del "current" por motivos de referencia - (reference) (Ej. para leer, no ejecutar). Estas personas - también hacen comentarios ocasionales o contribuyen al código. - - - - - - ¿Qué <emphasis>No</emphasis> es &os.current;? - - - - Un rápido sistema de seguimiento para conseguir pre-distribuciones porque has oido que hay alguna nueva funcionalidad interesante dentro y quieres ser el primero del barrio en tenerla. - - - - Un sistema rápido de tener los fallos solucionados. - - - - En ningún caso asistencia oficial por nuestra parte. - Nosotros nos esforzamos sinceramente en ayudar a la gente en alguna de las tres situaciones. - - Nosotros habilitamos &os.current; pero simplemente no tenemos tiempo para dar asistencia técnica. Esto no es porque seamos de alguna forma mala gente que no quiere ayudar a los demás (ni siquiera estaríamos haciendo &os; si lo fueramos), es simplemente porque no podemos responder 400 mensajes al día - y en realidad trabajamos en FreeBSD! Si nos dan a escoger entre mejorar el &os; y responder montones de preguntas, la mayoría de los desarrolladores y usuarios, problamente opten por lo primero. - - - - - - Usando &os.current; - - - - Unirse a &a.current; y al &a.cvsall; . No es sólo una buena idea, es esencial. Si no estás en el &a.current;, - no verás los comentarios que la gente hace sobre la situación del sistema current y por esto probablemente terminarás tropezando con un montón de problemas que otros ya han encontrado y solucionado. Casi más importante, te perderás importantes boletines que podrían ser fundamentales para la continuidad de la salud de tu sistema. - - La lista de correo&a.cvsall; te permitirá ver el apunte en el registro de "commits" - por cada cambio que se realice junto con información pertinente sobre posibles efectos secundarios. - - Para unirte a estas listas, envía un correo a &a.majordomo; and - indicando lo siguiente en el cuerpo del mensaje: - - subscribe freebsd-current -subscribe cvs-all - - majordomo - - - Opcionalmente,puedes también ponerhelp - y Majordomo te enviará ayuda completa sobre como suscribirse o desuscribirse a las varias listas de correo que asistimos. - - - Graba las fuentes desde ftp.FreeBSD.org. Puedes hacer esto de varias maneras: + Current - - - cvsup - - - cron - - - -CURRENT - Syncing with CVSup - - - - Usa el programa cvsup con este - supfile. Este es el método más recomendable, ya que te permite grabar la colección entera una vez y a partir de entonces sólo lo que cambie desde entonces.Mucha gente ejecuta cvsup from - cron y mantiene actualizadas sus fuentes automáticamente. Tienes que adaptar la muestra de supfile de arriba y configurar -cvsup a tu entorno.Si quieres ayuda para hacer esta configuración, teclea: -&prompt.root; pkg_add -f -ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/All/cvupit-3.0.tgz - - - -CURRENT - Bajarlo con FTP - - - - Usa ftp. El código fuente del árbol del - &os.current; está siempre exportado en: - ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/. - Algunos de nuestros servidores FTP también permiten grabar los árboles enteros comprimidos/tarred. ej. Mira: - - usr.bin/lex - - Puedes hacer lo siguiente para conseguir el directorio completo como un archivo tar: - - ftp> cd usr.bin -ftp> get lex.tar - - - - - - -CURRENT - Syncing with CTM - - - Usa la aplicació - CTM. Si tienes muy mala conexión (conexiones caras o sólo acceso para correo electrónico) CTMes una opción. - Sin embargo es muy complicado y puede darte archivos rotos. - Por eso se usa raramente, lo que incrementa la posibilidad de que no funcione durante largos periodos de tiempo. Te recomendamos usar - CVSup - para cualquiera con un modem de 9600bps modem o una conexión más rapida. - - - - - - - Si estás grabando las fuentes para ejecutarlas y no sólo leerlas, entonces graba todo el &os.current;, no sólo algunos trozos. La razón es que varias partes de las fuentes dependen de actualizaciones de otros sitios, y tratar de compilar sólo una proció casi te garantiza meterte en problemas. - - Antes de compilar &os.current;, lee con cuidado - Makefile en /usr/src - Deberías al menos ejecutar un make world la primera vez como parte del proceso de actualización. Leer el &a.current; - te mantendrá al día en otros procedimientos de arranque que a veces se convierten en necesarios cuando nos acercamos a la siguiente versión. - - - - ¡Participa! Si estas usando &os.current;, queremos saber lo que tienes que decir sobre él, especialmente si tienes sugerencias para mejoras o arreglos de fallos. Recibimos tus sugerencias con más entusiasmo si incluyes el código correspondiente! - - - + Pendiente de Traducción + - - - Manteniendo Stable con &os; - - - ¿Qué es &os.stable;? - -STABLE - - &os.stable; es nuestra rama de desarrollo con la que hacemos las versiones principales. Los cambios van a esta rama con un ritmo diferente, asumiendo que han ido primero a - &os.current; para probarse. Esta es aun - una rama de desarrolllo, aunque, y esto significa en cualquier momento, las fuentes de&os.stable; pueden o no ser adecuadas para un propósito determinado. Es simplemente otro camino en la ingeniería del desarrollo, no un recurso para usuarios finales. - - - - ¿Quién necesita &os.stable;? - - Si estás interesado en seguir o en contribuir al proceso de desarrollo de FreeBSD, especialmente en lo relativo a la próximapoint release de FreeBSD, entonces deberías considerar seguir &os.stable;. - - Aunque es verdad que algunos arreglos de seguridad van tambien a la rama - &os.stable; , tú no necesitas seguir &os.stable; para hacerlo. Cada notificación de seguridad de - FreeBSD explica como solucionar el problema en la versión que afecta. - Esto no es del todo cierto. No podemos continuar prestando asistencia para las viejas versiones de FreeBSD nunca más, aunque lo hayamos hecho durante años. - Para conocer la política de seguridad de las viejas versiones de FreeBSD, por favor mira http://www.FreeBSD.org/security - - seguir una rama de desarrollo sólo por razones de seguridad es seguramente también traer una gran cantidad de cambios no deseados. - - Aunque nosotros nos esforzamos para asegurar que la rama &os.stable; compila y funciona en cualquier ocasión, esto no puede garantizarse, ya que el código es desarrollado en &os.current; antes de incluirlo en &os.stable;, más gente usa &os.stable; que &os.current;, asi que es inevitable que algunos errores se encuentren alguna vez en &os.stable; que no eran evidentes en &os.current;. - - Por estas razones, nosotros no recomendamos que sigas ciegamenteme &os.stable;, y es especialmente importante que no actualices algun servidor importante a &os.stable; sin probar primero el código en tu entorno de desarrollo. - - Si no tienes los recursos para hacer esto entonces te aconsejamos que ejecutes la más reciente distribución de FreeBSD, y uses el mecanismo de actualización binaria entre distribución y distribución. - - - - Usando &os.stable; - - - -STABLE - using - - - - Únete a &a.stable;. Esto te mantendrá informado de las - dependencias de construcción que puedan aparecer en &os.stable; - o cualquier otra cuestión que requiera especial atención. Los desarrolladores harán los anuncios en esta lista de correo cuando estén contemplando algun arreglo polémico o actualización, dando a los usuarios la oportunidad de responder si tienen alguna cuestión que plantear respecto al cambio propuesto. - - La lista de correo &a.cvsall; te permitirá ver el - apunte del commit log para cada cambio tal como se hace junto con la posible información sobre los efectos secundarios. - - Para apuntarse a estas listas, envía un correo a &a.majordomo; y especifica lo siguiente en el cuerpo del mensaje: - - subscribe freebsd-stable -subscribe cvs-all - - - majordomo - - Opcionalmente, puedes indicar help - y Majordomo te enviará ayuda completa sobre como suscribirte y desuscribirte a las otras listas que mantenemos. - - - - Si estás instalando un nuevo sistema y quieres que sea lo más estable posible, puedes grabar simplemente la última rama con la instantánea más antigua de ftp://releng4.FreeBSD.org/pub/FreeBSD/ - and install it like any other release. - - Si ya estas usando una versión previa de &os; - y quieres actualizar via fuentes entonces puedes hacerlo fácilmente desde ftp.FreeBSD.org. Esto puede hacerse de tres maneras: - - - - -STABLE - syncing with CVSup - - - Usa el programa cvsup con this - supfile. Este es el sistema recomendado, ya que te permite grabar la colección entera una vez y a partir de entonces sólo lo que cambie. Algunos usan cvsup from - cron para mantener las fuentes al día autom´ticamente. -Para una interface bastante sencilla para esto, simplemente teclea: - -
&prompt.root; pkg_add -f ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CVSup/cvsupit.tgz
-
- - - -STABLE - Bajandolo con FTP - - - Usa ftp. Las fuentes de árbol para el - &os.stable; están siempre exported en: - ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-stable/ - - Algunos de nuestros servidores de FTP permiten tambien grabar los árboles completos compressed/tarred. ej. Mira: + - usr.bin/lex + Stable - Puedes hacer lo siguiente para conseguir el directorio como archivo tar: + Pendiente de Traducción - ftp> cd usr.bin -ftp> get lex.tar - - --STABLE -Sincronización mediante CTM - - -Usa -CTM. -Si no tienes una conexió rápida y barata a Internet,este es el método que debería considerar usar. - - -
-
- - Básicamente, si necesitas acceso rápido bajo demanda a la fuente y el ancho de banda no es una consideración , usa - cvsup o ftp. - De otro modo, usa CTM. - +
- - -STABLE - compiling - - - Antes de compilar&os.stable;, lee el - Makefile en /usr/src - con cuidado. Deberías al menos ejecutar un make world la primera vez como parte del proceso de instalaci´n.Leyendo el&a.stable; te mantendrá al día en los otros procedimientos de arranque que alguna vez pueden llegar a ser necesarios cuando nos acercamos a la siguiente versión. - - - -
Sincronización de su código fuente - Hay varias formas de usar una conexión de Internet (o de correo) para estar al día en cualquier area dada de las fuentes del proyecto &os;, o en todas las areas, dependiendo de lo que te interese. Los servicios primarios que ofrecemos son Anonymous - CVS, CVSup, y - CTM. - - - Aunque es posible actualizar sólo partes del código fuente del arbol, el único procedimiento de actualización que prestamos es actualizar el arbol entero y recompilarlo a la vez junto al espacio del usuario (ej., todos los programas que se ejecutan en el espacio del usuario, tales como los que están en /bin y - /sbin) y las fuentes del kernel. Actualizar sólo parte del código fuente del arbol, sólo el kernel, o sólo el area de usuario trae a menudo problemas.Estos problemas pueden ir desde errores de compilación hasta kernel panics o corrupción de datos. - - - anonymous CVS - Anonymous CVS and - CVSup usa el modelo pull - para actualizar las fuentes. En caso de - CVSup el usuario (o un - cron script) invoca el programa - cvsup, y este interactua con el servidor - cvsupd en algún lugar para traer los archivos actualizados. -Las actualizaciones que recibes lo están al minuto y tú las consigues cuando, y sólo cuando, las quieras. - Puedes fácilmente restringir tus actualizaciones a los archivos o directorios que te interesen. -Las actualizaciones se crean sobre la marcha por el servidor según lo que tienes o quieras tener. - Anonymous CVS es bastante mas simple que CVSup que es sólo una extensión de CVS que permite retirar los cambios directamente desde un repositorio (repository) CVS remoto. - CVSup puede hacer esto mucho más eficientemente, pero - Anonymous CVS es más fácil de usar. - - - CTM - - CTM, por otro lado, no compara las fuentes que tienes interactivamente con las del archivo master o de otro que retires..En vez de eso, un script que identifica los cambios en los archivos se ejecuta varias veces al día en la maquina maestra CTM, cualquier cambio detectado, sellado con una secuencia de números y codificado para transmitirlo en correo ( sólo en ASCII imprimible). -Una vez recibido, estosCTM deltas pueden ser manipulados por la utilidad - &man.ctm.rmail.1; que automáticamente decodifica, verifica y aplica los cambios a la copia de las fuentes del usuario. -Este proceso es más eficiente que CVSup, - y pone menos presión en nuestros recursos de servidor ya que es un modelo de - empujar en vez de tirar . - - Hay otros aspectos a tener en cuenta, por supuesto. Si descuidadamente barres trozos de tu archivo, CVSup - te detectará y reconstruirá las porciones dañadas. - CTM no hace esto, y si borras algún trozo de las fuentes del árbol - (y no has hecho una copia de respaldo) entonces tendrás que partir de cero - ( desde el más reciente CVS - base delta) y reconstruirlo todo con CTM o, con anoncvs, simplemente borrará los malos bits (bad bits) y resincronizarás + Pendiente de Traducción @@ -453,796 +92,18 @@ Este proceso es más eficiente que CVSup, Uso de <command>make world</command> - - make world - - Una vez que has sincronizado las fuentes de tu árbol local con alguna versión determinada de&os; (&os.stable;, &os.current;, y asi) - puedes usar las fuentes del árbol para reconstruir el sistema. - - - Haciendo una copia de respaldo - - Nunca se hace suficiente hincapié sobre lo importante que es hacer una copia de respaldo de tu sistema antes de hacer esto. - Aunque reconstruir world es (siempre que sigas estas instrucciones) una tarea fácil de hacer, habrá veces que inevitablemente cometas errores, o cuando errores hechos por otros en las fuentes del árbol inutilice tu sistema haciendolo inarrancable. - - Asegúrate de haber hecho una copia de respaldo. Y ten un diskette de reparación a mano. ¡Probablemente no tengas nunca que usarlo, pero es mejor asegurarse que lamentarlo! - - - - Suscribete a la lista de correo correcta - - lista de correo - Las ramas &os.stable; and &os.current; son , por naturaleza, en desarrollo . La gente que contribuye a &os; son humanos, y los errores ocasionalmente ocurren. - - Algunos de estos errores pueden ser poco dañinos, que sólo causan que tu sistema imprima una nueva señal de diagnostico. O el cambio puede ser catastrófico, e inutilizar tu sistema inarrancable o destruir tu sistema de archivos ( o algo peor). - - Si un problema como este ocurre, un heads up es enviado a la lista de correo apropiada, explicando la naturaleza del problema y a que sistema afecta. Y un all - clear anuncio es enviado cuando el problema ha sido resuelto. - - Si intentas seguir &os.stable; o &os.current; y no lees la &a.stable; o la - &a.current; respectivamente, entonces estás buscando problemas. - - - - Lee <filename>/usr/src/UPDATING</filename> - - Antes de hacer nada mas, lee - /usr/src/UPDATING (o el archivo equivalente dondequiera que tengas una copia del código fuente). Este archivo puede contener importante información sobre problemas que puedes encontrarte, o indicar el orden en que debes ejecutar ciertas ordenes.) - Si UPDATING contradice algo que leas aqui, - UPDATING tiene preferencia. - - - Leer UPDATING no es un sustituto aceptable a la suscripcion a la lista adecuada, como se describió antes. Los dos requisitos son complementarios no exclusivos. - - - - - Comprueba <filename>/etc/make.conf</filename> - - make.conf - - - Examina los archivos - /etc/defaults/make.conf y - /etc/make.conf. El primero contiene algunas definiciones por defecto – la mayoría de las cuales ya se han comentado. Para hacer uso de ellas cuando reconstruyas tu sistema desde las fuentes, añadelas a /etc/make.conf. Ten en cuenta que cualquier cosa que añadas a /etc/make.conf se usa cada vez que ejecutas make, así que es una buena idea colocarles algo sensato para tu sistema. - - Un usario típico querrá probablemente copiar las líneas - CFLAGS y - NOPROFILE encontradas en - /etc/defaults/make.conf a - /etc/make.conf y ponerles un comentario. - - Examina las otras definiciones (COPTFLAGS, - NOPORTDOCS y sucesivamente) y decide si son importantes para ti. - - - - Actualiza <filename>/etc/group</filename> - - Este directorio /etc contiene una gran parte de la información sobre la configuración de tu sistema ,asi como scripts que se ejecutan al iniciarse el sistema. Algunos de estos scripts cambian de versión en versión de FreeBSD. - - Algunos de estos archivos de configuración son usados en el funcionamiento del día a día del sistema. En particular, - /etc/group. - - Ha habido ocasiones durante la instalación de - make world que se ha supuesto la existencia de ciertos nombres de usuario o grupos. - Cuando se lleva a cabo una actualizacion es probable que alguno de estos grupos no existan. -Esto causa problemas cuando actualizas. para> - - El ejemplo más reciente de esto es cuando el grupo ppp fueron instaladas usando un nombre de grupo inexistente (para ellas). - - La solución es examinar - /usr/src/etc/group y comparar su lista con la tuya.Si hay algún grupo en el nuevo archivo que no están en tu archivo entonces cópialos encima. - De la misma forma, deberías renombrar cualquier grupo en /etc/group que tenga la misma GID pero un nombre diferente para aquellas en - /usr/src/etc/group. - - - Si te sientes particularmente paranoico, puedes comprobar tu sistema para ver que archivos pertenecen al grupo que estas renombrando o borrando. - - &prompt.root; find / -group GID -print - - mostrará todos los ficheros que pertenecen al grupo - GID (que puede ser o un nombre de grupo o una ID numérica de grupo). - - - - - Cambiando a modo Monousuario - single-user mode - - Puede que quieras compilar el sistema en modo monousuario.Aparte del beneficio obvio de hacer que las cosas vayan más rapido , - reinstalar el sistema tocará un montón de archivos importantes del sistema, todos los binarios standard del sistema, bibliotecas incluso archivos y demás. - -Cambiar estas cosas en un sistema en funcionamiento (especialmente si en ese momento hay usuarios activos en el sistema) es ganas de meterse en lios. - - modo multiusuario - Otro método es compilar el sistema en modo multiusuario y luego cambiar a modo monousuario para la instalación.Si te gustaría hacerlo de esta forma, simplemente retrasa los siguientes pasos hasta que hayas completado la construcción. - - Como superusuario, ejecuta - - &prompt.root; - - desde un sistema en funcionamiento, al que cambiará a modo monousuario. - - Alternativamente, reinicia el sistema, y en el boot promt, introduce la flag. El sistema se reiniciará en modo monousuario.En el promt de la shell deberías ejecutar: - - &prompt.root; fsck -p -&prompt.root; mount -u / -&prompt.root; mount -a -t ufs -&prompt.root; swapon -a - - Esto comprueba los sistemas de archivos, remounts / - lectura/escritura, mounts, todos los sistemas de archivos UFS referenciados en - /etc/fstab y entonces hace los cambios indicados. - - - - Quita <filename>/usr/obj</filename> - - Mientras algunas partes son reconstruidas ellas se colocan en directorios que (por defecto) estan bajo /usr/obj. Los directorios shadow estos bajo - /usr/src. - - Puedes acelerar el proceso make world y posiblemente ahorrarte dolores de cabeza por las dependencias quitando este directorio también. - - Algunos archivos bajo /usr/obj pueden tener colocada la señal inmutable (immutable flag set) (mira &man.chflags.1; para mas información) - que deberá ser quitada primero. - - &prompt.root; cd /usr/obj -&prompt.root; chflags -R noschg * -&prompt.root; rm -rf * - - - - Recompilar la fuente - - - Guardando la salida (Output) - - Es una buena idea guardar la salida que obtienes cuando se ejecuta - &man.make.1; en otro archivo. Si algo sale mal tendrás una copia del mensaje de error.Aunque esto puede no ayudarte en el diagnóstico de que ha salido mal, puede ser útil si mandas tu problema a una de las listas de &os; . - - La forma más fácil de hacer esto es usar la orden &man.script.1; - , con un parámetro que indique el nombre del archivo donde guardar los datos de salida.Podrías hacer esto inmediatamente antes de reconstruir world, y luego teclear exit - cuando el proceso ha terminado. - - &prompt.root; script /var/tmp/mw.out -Script started, output file is /var/tmp/mw.out -&prompt.root; make TARGET -… compile, compile, compile … -&prompt.root; exit -Script done, … - Si haces esto, no guardes el output en /tmp. Este directorio podria ser vaciado en el proximo arranque. - Un lugar mejor para almacenarlo es en - /var/tmp (como en el ejemplo anterior) o - en el directorio home de root. - +Pendiente de Traducción - - Compilar e instalar el Sistema Base (Base System) - Debes estar en /usr/src - directory... - - &prompt.root; cd /usr/src - - (a menos que, por supuesto, tu código fuente este en otra parte, en ese caso cambia a ese directorio). - make - - Para reconstruir world utiliza el &man.make.1; command. Esta orden lee las instrucciones desde el Makefile, - que describe como el programa que comprende el &os; debe ser reconstruido. - - El formato general de la línea de ordenes que teclearás es como sigue: - - &prompt.root; make - - En este ejemplo, - es una opción que pasarías a &man.make.1;. Mira la pagina del manual de - &man.make.1; para un ejemplo de las opciones que puedes pasar. - - - pasa una variable a el Makefile. El comportamiento de Makefile esta controlado por esas variables.Estas son las mismas variables como estan colocadas en - /etc/make.conf, y esto proporciona otra forma de disponerlas. - - &prompt.root; make -DNOPROFILE=true target - - es otra forma de indicar que las bibliotecas indicadas no se construyan, y corresponde con el - - NOPROFILE= true -# Avoid compiling profiled libraries - - Las líneas en /etc/make.conf. - - target dicen a &man.make.1; que quieres hacer. Cada Makefile define un número de diferentes objetivos, y la elección de esos objetivos determina lo que ocurre. - - Algunos objetivos estan listados en - Makefile, pero no significa que puedas ejecutarlos - En vez de eso, se usan por el proceso de consrucción para romper los pasos necesarios para reconstruir el sistema en un número de sub-pasos. - - La mayoría de las veces, no necesitas pasar ningun parametro a - &man.make.1;, y asi tu orden se parecerá a esto: - - &prompt.root; make target - - A partir de la versión 2.2.5 de &os; (en realidad, se creó por primera vez en la &os.current; branch, y luego posteriormente colocado en - &os.stable; a mitad de camino entre 2.2.2 y 2.2.5) el objetivo (target) - world se ha dividido en dos. - buildworld y - installworld. - - Como el nombre implica, buildworld - construye un nuevo árbol bajo /usr/obj, - y installworldinstala este árbol en una máquina con la versión current. - - Esto es muy útil por dos motivos.Primero, te permite construir de forma segura, sabiendo que ningún componente del sistema current será afectado. - La construcción es self hosted. Por esto puedes con seguridad ejecutar buildworld en una m6aacute;quina funcionado en modo multiusuario sin miedo a efectos indeseados.Aunque aun es recomendable que ejecutes - - installworld en modo monousuario. - - En segundo lugar, permite usar NFS mounts para actualizar multiples m6aacute;quinas en tu red. Si tienes tres máquinas, A, B y C que quieres actualizar, ejecuta make - buildworld y make installworld en - A. B y C deben luego mount NFS /usr/src - y /usr/obj desde A, y puedes luego ejecutar - make installworld para instalar los resultados de -la construcción en B y C. - - Aunque el world target aún exista, - se recomienda firmemente que no lo uses. - - Ejecutar - - &prompt.root; make buildworld - - Ahora es posible especificar un opción -j - make lo que provocará varios procesos simultaneos. -Esto es lo mas útil en máquinas con multiples CPU. -Sin embargo, ya que el proceso de compilación es IO bound - mas que CPU bound es también útil en máquinas con una sóla CPU. - - En una típica máquina mono-CPU ejecutarías: - - &prompt.root; make -j4 buildworld - - &man.make.1; tendrías mas de 4 procesos ejecutandose en cada momento. -La evidencia empírica comentada en las listas de correo muestran que esto da el mejor resultado. - - Si tienes una máquina multi-CPU y estas usando un kernel configurado SMP - prueba valores entre 6 y 10 y mira como se aceleran las cosas. - - Estas advertido de que esto es aún experimental y que hacer commits al código fuente del árbol puede ocasionalmente romper esta posibilidad. -Si world falla al compilar usando este parámetro intentalo de nuevo sin él, antes de informar de los problemas. - - - - Momento (Timings) - - make world - timings - - - Muchos factores influyen en el tiempo de construcción, pero generalmente un Pentium 3 500 Mhz con 128 MB de RAM tardara 2 horas en construir el árbol - &os.stable; , sin trucos o cortes durante el proceso. -Un árbol &os.current; tardará algo mas. - - - - - Compilar e instalar un nuevo Kernel - - kernel - compiling - - - Para sacar el máximo provecho de nuestro sistema debemos recompilar el kernel. -Esto es prácticamente una necesidad, ya que ciertas estructuras de memoria podrían haber cambiado y ciertos programas como &man.ps.1; y &man.top.1; fallarán hasta que el kernel y la versiones del código fuente sean la misma. - - El modo más simple y seguro de hacer esto es construir e instalar un kernel basado en GENERIC. Mientras - GENERIC puede no teer todos los dispositivos necesarios para tu sistema, debe tener todo lo necesario para arrancar tu sistema de nuevo en modo monousuario. - Esta es una buena prueba de que el nuevo sistema funciona correctamente. -Después de hacer el arranque desde - GENERIC y verificar que el sistema funciona puedes luego construir un nuevo kernel basado en el archivo de configuración de tu kernel normal. - - Si estas actualizando de &os; 4.0 a superior entonces el procedimiento standard de construcción de kernel (descrito ) - es desaconsejable.En vez de eso deberías, ejecutar estas ordenes - - &prompt.root; cd /usr/src -&prompt.root; make buildkernel -&prompt.root; make installkernel - - Si estás actualizando a una versión de &os; por debajo de 4.0 usa el procedimiento de construcción standard del kernel. - Sin embargo, se recomienda que uses una nueva versión de &man.config.8;, usando una línea de ordenes como esta. - - &prompt.root; /usr/obj/usr/src/usr.sbin/config/config KERNELNAME - - - - Arranca en Modo Usuario Único - single-user mode - - Deberías arrancar en modo usuario único para probar como funciona el nuevo kernel.Haz esto siguiendo las instrucciones en - . - - - - Instalar los Nuevos Binarios del Sistema - - Si estuvieses construyendo una version de &os; suficientemente reciente como para haber usado make buildworld entonces deberías usar ahora el - - installworldpara instalar el nuevo sistema de binarios. - - - Ejecuta - - &prompt.root; make installworld - - - Si especificaste variables en la línea de orden make - buildworld deberías poner las mismas variables en la línea de orden de - make installworld . -Esto no es necesariamente cierto para otras opciones; por ejemplo, -, nunca debe ser usada con - installworld. - - Por ejemplo, si ejecutaste: - - &prompt.root; make -DNOPROFILE=true buildworld - - debes instalar los resultados con: - - &prompt.root; make -DNOPROFILE=true installworld - - de otro modo, instalaría bibliotecas seleccionadas que no habían sido construidas durante la fase make buildworld - . - - - - - Actualización de archivos no actualizados por <command>make world</command> - - Rehacer el world no actualizará ciertos directorios (en - particular, /etc, /var y - /usr) con los archivos de configuración nuevos o cambiados. - mergemaster - - El medio más simple para actualizar estos archivos es usar - &man.mergemaster.8;, aunque es posible hacerlo manualmente si lo prefieres. Nosotros te recomendamos fervientemente usar &man.mergemaster.8;, aunque, si lo haces entonces puedes saltar a la siguiente sección , puesto que &man.mergemaster.8; es muy simple de usar. -Deberías leer la página del manual primero, y hacer una copia de respaldo de - /etc por si algo va mal. - - Si deseas hacer la actualización manualmente no basta con que copies los archivos de - /usr/src/etc a /etc y que funcione. Algunos de estos archivos deben ser instalados - primero. Esto es porque el directorio/usr/src/etc - no es una copia de lo que tu directorio - /etc debería parecer. Además, hay archivos que deberían estar en /etc que no están en /usr/src/etc. - - El medio más sencillo de hacer esto a mano es instalar los archivos en un nuevo directorio y luego trabajar con ellos buscando las diferencias. - - - Haz una copia de tu existente <filename>/etc</filename> - - Aunque en teoría nada va a tocar este directorio automáticamente, es mejor estar seguros. Así que copia tu existente /etc en lugar seguro. - Algo como: - - &prompt.root; cp -Rp /etc /etc.old - - hace una copia recursiva , - almacena los tiempos, propiedad de los archivos y cosas así. - - - Necesitas construir el grupo de directorios que hagan el papel de / para instalar el nuevo - /etc y otros archivos dentro. - /var/tmp/root es una elección razonable, y también se requiere un número de subdirectorios debajo de este. - - &prompt.root; mkdir /var/tmp/root -&prompt.root; cd /usr/src/etc -&prompt.root; make DESTDIR=/var/tmp/root distrib-dirs distribution - - Esto construirá la necesaria estructura de directorio e intalará los archivos.Un montón de directorios que habrán sido creados bajo - /var/tmp/root estan vacios y deberan ser borrados. - Una forma muy f6aacute;cil de hacerlo es: - - &prompt.root; cd /var/tmp/root -&prompt.root; find -d . -type d | xargs rmdir 2>/dev/null - - Así quitamos todos los directorios vacios. (El error standard es redirigido a /dev/null para prevenir las advertencias sobre directorios que no están vacios.) - - /var/tmp/root ahora contiene todos los archivos que deberían estar colocados en lugares adecuados bajo - /. Ahora tienes que ir a cada archivo y determinar cuánto difieren de tus archivos exiting. - - - Date centa que algunos de los archivos que se habrán instalado en - /var/tmp/root tienen un leading /var/tmp/root/ y - /var/tmp/root/root/, aunque podría haber otros - (dependiendo de cuando leas esto.Asegurate de usar - - - El sistema más fácil para hacerlo es usar &man.diff.1; para comparar los dos ficheros. - - &prompt.root; diff /etc/shells /var/tmp/root/etc/shells - - Esto te mostrará las diferencias entre tu archivo - /etc/shellsy el nuevo archivo - /etc/shells . Úsalos para decidir si fusionas con los cambios que hayas hecho o si lo copias encima de tu viejo archivo. - - - Nombra el Nuevo Directorio de Root - (<filename>/var/tmp/root</filename>) con un Sello temporal (time stamp), de esta forma puedes comparar fácilmente las diferencias entre versiones - - Reconstruir frecuentemente el world significa que actualizas - /etc tambien frecuentemente, lo que puede ser un poco pesado. - - Puedes acelerar este proceso manteniendo una copia del último grupo de archivos cambiados que hayas fusionado en /etc. - El siguiente metodo te da una idea de como hacer esto. - - - - Make the world como normal. Cuando quieras actualizar - /etcy los otros directorios, dále al directorio de destino un nombre basado en la fecha actual. Si estuvieses haciendo esto el 14 de Febrero de 1998 harías lo siguiente. - - &prompt.root; mkdir /var/tmp/root-19980214 -&prompt.root; cd /usr/src/etc -&prompt.root; make DESTDIR=/var/tmp/root-19980214 \ - distrib-dirs distribution - - - - Añade los cambios del directorio según lo explicado arriba. - - No quites el directorio - /var/tmp/root-19980214 cuando hayas acabado. - - - - Cuando hayas descargado la ultima versión de las fuentes y las hayas rehecho, sigue el paso 1.Esto te dará un nuevo directorio, que podría llamarse - /var/tmp/root-19980221 (si esperas una semana entre las actualizaciones). - - - - Tu puedes ahora ver las diferencias que se han hecho en esa semana intermedia usando &man.diff.1; puedes usar diff para buscar recursivamente las diferencias entre los dos directorios. - - &prompt.root; cd /var/tmp -&prompt.root; diff -r root-19980214 root-19980221 - - Típicamente, este conjunto de diferencias serán más pequeñas que las que hay entre - /var/tmp/root-19980221/etc y - /etc. Como las diferencias son menores, es más fácil enviar esos cambios hasta tu directorio - /etc . - - - - Ahora puedes quitar el más viejo de los dos directorios - /var/tmp/root-*. - - &prompt.root; rm -rf /var/tmp/root-19980214 - - - - Repite el proceso cada vez que necesites añadir un cambio a - /etc. - - - - Puedes usar &man.date.1; para automatizar la generación de los nombres de directorio. - - &prompt.root; mkdir /var/tmp/root-`date "+%Y%m%d"` - - - - - Actualiza <filename>/dev</filename> - - - DEVFS - DEVFS - Si estás usando DEVFS esto no sería necesario. - - - En la mayoría de los casos, la herramienta &man.mergemaster.8 se dar6aacute; cuenta cuando es necesario actualizar dispositivos y se ofrecerá a hacerlo automáticamente. -Estas instrucciones te dirán como hacerlo manualmente. - - Por motivos de seguridad, este es un proceso con varios pasos. - - - - Copia /var/tmp/root/dev/MAKEDEV en - /dev. - - &prompt.root; cp /var/tmp/root/dev/MAKEDEV /dev - - MAKEDEV - - - Si usaste &man.mergemaster.8; para actualizar /etc, entonces tu script - MAKEDEV debería haberse actualizado ya, aunque no hace daño si lo compruebas (con &man.diff.1;)y lo copias manualmente si fuese necesario. - - - - Ahora, toma una instantánea de tu actual - /dev. Esta instantánea necesita contener los permisos, propiedades, números mayores y menores de cada archivo, pero no debería contener un sello temporal (time stamp) La forma más fácil de hacerlo es usar &man.awk.1; para sacar alguna información. - - &prompt.root; cd /dev -&prompt.root; ls -l | awk '{print $1, $2, $3, $4, $5, $6, $NF}' > /var/tmp/dev.out - - - - Rehacer todos los dispositivos. - - &prompt.root; - - - - Copia otra instantánea del directorio , esta vez en - /var/tmp/dev2.out. Ahora mira entre esos dos archivos por si se te olvido crear algun dispositivo. No debería haber ninguno, pero es mejor estar seguro que lamentarlo. - - &prompt.root; diff /var/tmp/dev.out /var/tmp/dev2.out - - Podrás detectar más fácilmente discrepancias en las cuotas del disco que tienen que ver con mandatos tales como - - &prompt.root; sh MAKEDEV sd0s1 - - Para recrear las entradas a las cuotas. Tus circunstancias especificas pueden variar. - - - - - - Actualiza <filename>/stand</filename> - - - Este paso se incluye para completar. Puede omitirse sin miedo. - - - Para terminar completamente , podrías querer actualizar los archivos en - /stand tan bien. Estos archivos consisten en enlaces sostenidos (hard - links) a el binario /stand/sysinstall. Este binario - debería estar enlazado estáticamente, para que pueda funcionar cuando ningún otro sistema de archivos (y en particular /usr)haya sido montado. - - &prompt.root; cd /usr/src/release/sysinstall -&prompt.root; make all install - - - - Reinicio - - Ya esta hecho. Despues de que hayas verificado que todo parece estar en el lugar adecuado puedes reiniciar el sistema. -Un simple&man.fastboot.8; lo hará. - - &prompt.root; fastboot - - - - Finalizado - - Deberías tener ahora tu sistema operativo actualizado con exito. - Felicidades. - - Si las cosas fueron ligeramente mal, es facil reconstruir una parte del sistema. Por ejemplo, si accidentalmente borraste - /etc/magic como parte de la actualización o al añadir algo a - /etc, la orden (command) &man.file.1; dejara de funcionar. -En ese caso, el arreglo sería ejecutar: - - &prompt.root; cd /usr/src/usr.bin/file -&prompt.root; - - - - Preguntas - - - - - ¿Es necesario rehacer world en cada cambio? - - - - No hay una respuesta fácil para esto, depende de la naturaleza del cambio. - Por ejemplo, si sólo ejecutaste CVSup, y mostró las siguientes líneas mientras se actualizaba , - - src/games/cribbage/instr.c -src/games/sail/pl_main.c -src/release/sysinstall/config.c -src/release/sysinstall/media.c -src/share/mk/bsd.port.mk - - Probablemente no merezca la pena reconstruir world entero. - Puedes ir a los subdirectorios apropiados y - make all install, y ya esta. Pero si el cambio fue mayor, por ejemplo - src/lib/libc/stdlib entonces deberías o rehacer world, o al menos aquellas de sus partes que estan estáticamente unidas (asi como cualquier otra cosa que hayas añadido y que esté unida estáticamente). - - Es cuestión de que elijas. Podrías estar contento ejecutando make world digamos cada quincena , y dejar que los cambios se acumulen hasta ese día. - O quizá quieras hacerlo sólo a aquellas que hayan cambiado, y tengas confianza en haber comprobado todas las dependencias. - - Y, por supuesto, todo esto depende de cada cuánto tiempo actualices y si estas usando la versión stable o current. - - - - - - ¿Cuando compilo falla con montones de señales de error 11 (u otro número de señal). ¿Qué ha ocurrido? - - senal 11 - - - - Esto normalmente es una indicación de problemas de máquina. -Al ejecutar make world ((Re)making world) se produce una sobrecarga del ordenador, que frecuentemente desencadena problemas de memoria.Esto se manifiesta cuando el compilador agoniza recibiendo señales extrañas. - - Un indicador seguro de esto, es si puedes repetir el make y muere en un punto diferente del proceso. - - En este cambio hay poco que puedas hacer excepto comenzar a probar los compenentes de tu máquina para saber cual es el que falla. - - - - - - ¿Puedo quitar /usr/obj cuando he terminado? - - - - - La respuesta corta es si. - - /usr/obj contiene todos los archivos binarios (object files) -que se produjeron durante la fase de compilación.Normalmente, uno de los primeros pasos en el proceso /usr/obj después de haber terminado no tiene mucho sentido, y liberarás un buen montón de espacio de disco (alrededor de 340MB). - - Aunque, si sabes lo que haces puedes hacer que - - - Si quieres vivir peligrosamente entonces haz make world, pasando la definición NOCLEAN , como esto: - - &prompt.root; make -DNOCLEAN world - - - - - - ¿Puede continuarse una construcción interrumpida? - - - - Esto depende de como de lejos llegaste hasta encontar el problema. - - En general (y esto no es una regla fija) - - El proceso make world construye nuevas copias de herramientas esenciales (como &man.gcc.1;, y &man.make.1;) y el sistema de bibliotecas. -Estas herramientas y bibliotecas estan entonces instaladas.Las nuevas herramientas y bibliotecas son usadas para reconstruirse a si mismas, y son instaladas de nuevo.El sistema entero (incluyendo ahora programas normales como &man.ls.1; or &man.grep.1;)es entonces reconstruido con el nuevo sistema de archivos. - - Si estas al final del proceso, y lo sabes (porque has mirado los resultados que estuviste guardando) entonces puedes (bastante seguramente) hacer - - … fix the problem … -&prompt.root; cd /usr/src -&prompt.root; make -DNOCLEAN all - - Esto no deshará el trabajo de los previos - make world. - - Si ves el mensaje - - -------------------------------------------------------------- -Building everything.. --------------------------------------------------------------- - en la salida make world entonces es probablemente bastante seguro hacer eso. - - Si tu no ves ese mensaje, o no estas seguro, entonces es siempre mejor estar seguro que lamentarse, y comenzar otra vez desde el principio. - - - - NFS - - - ¿Puedo usar una máquina como - - - - Esto es una tarea bastante sencilla, y puede ahorrar horas de compilacion en muchas máquinas.Simplemente ejecuta - buildworld en una máquina central, y entonces NFS monta - /usr/src y - /usr/obj en la máquina remota y - installworld alli. - - - - - - ¿Cómo acelero making the world? - - - - - - Ejecuta en modo monousuario. - - - - Pon /usr/src y - /usr/obj en sistemas de archivos diferentes en discos separados. Si es posible, pon esos discos en controladoras de discos separadas. - - - - Aún mejor, pon esos sistemas de archivos a través de multiples discos usando &man.ccd.4 - - - - Desactiva el perfil (coloca NOPROFILE=true en /etc/make.conf). Casi seguro que no lo necesitas. - - - - También en /etc/make.conf, coloca - CFLAGS a algo como -O - -pipe. La optimización -O2 es mucho más lenta y la diferencia de optimización entre -O y -O2 es normalmente poco importante. - -pipe permite que el compilador utilice tuberias (pipes) antes que archivos temporales lo que ahorra accesos al disco (a expensas de memoria). - - - - Pon la opción para hacer que se ejecuten multiples procesos en paralelo.Esto ayuda se tenga un procesador o varios. - - - El sistema de archivos que contiene - /usr/src puede ser montado ( o vuelto a montar) -con la opción - . Esto evita al sistema de archivos el grabar la hora de acceso al archivo. -Probablemente no te haga falta esta información para nada. + - &prompt.root; mount -u -o noatime /usr/src - - - Este ejemplo supone que /usr/src esta en su propio sistema de archivo.Si no está (Por ejemplo, si es parte de /usr ) Entonces necesitarás el punto de montaje de ese sistema de archivos, y no - /usr/src. - - - - - - El sistema de archivos que contiene/usr/obj puede montarse (o volverse a montar) con la opción - async. -Esto hace que el disco escriba de modo asíncrono. + + Redes pequeñas - En otras palabras, el grabar se completa inmediatamente, y el dato es escrito en el disco unos pocos segundos después.Esto hace que las grabaciones se agrupen juntas y puede ser una gran aceleración del funcionamiento. + Pendiente de Traducción - - Ten en cuenta que esta opción hace el sistema de archivos más fragil.Con esta opción hay un incremento de posibilidades, si la corriente falla, de que el sistemas de archivos sea irrecuperable cuando la m6aacute;quina se reinicie. - - Si /usr/obj es lo único en este sistema de archivos entonces no hay problema.Si tienes otros datos valiosos entonces asegúrate de tener copias recientes antes de habilitar esta opción. - - - &prompt.root; mount -u -o async /usr/obj - - - Como arriba, si/usr/objno está en su propio sistema de archivos, reemplazalo en el ejemplo con el nombre del apropiado punto de montaje. - - - - - - - -¿Queé hago si algo sale mal? - - -Asegurate de que tu entorno no tiene extrañas cruft de construcciones anteriores.Esto es suficiente. - -&prompt.root; chflags -R noschg /usr/obj/usr -&prompt.root;rm -rf /usr/obj/usr -&prompt.root;cd /usr/src -&prompt.root; make cleandir -&prompt.root;make cleandir -Sí , make cleandir realmente debería ejecutarse dos veces. -Entonces comienza el proceso de nuevo, empezando con make buildworld. -Si aún tienes problemas, envía el error y la salida de uname -aa &a.questions;. -¡Prepárate para contestar preguntas sobre tu setup - - - - -