diff --git a/es_ES.ISO8859-1/books/handbook/introduction/chapter.sgml b/es_ES.ISO8859-1/books/handbook/introduction/chapter.sgml index 53ac408f3a..33031e2d2b 100755 --- a/es_ES.ISO8859-1/books/handbook/introduction/chapter.sgml +++ b/es_ES.ISO8859-1/books/handbook/introduction/chapter.sgml @@ -1,938 +1,951 @@ Jim Mock Restructured, reorganized, and parts rewritten by Introducción - + Sinopsis ¡Gracias por tu interés en FreeBSD! El siguiente capítulo trata varios temas relativos al Proyecto FreeBSD, como su historia, objetivos, modelo de desarrollo, etc. Después de leer este capítulo sabrás: Qué relación guarda FreeBSD con otros sistemas operativos. La historia del Proyecto FreeBSD. Los objetivos del Proyecto FreeBSD. Los fundamentos del modelo de desarrollo de código abierto de FreeBSD. Y por supuesto: de dónde procede el nombre "FreeBSD". ¡Bienvenido a FreeBSD! 4.4BSD-Lite FreeBSD es un sistema operativo basado en 4.4BSD-Lite para la arquitectura Intel (x86) y sistemas basados en DEC Alpha. Se está trabajando también en versiones para otras arquitecturas. Para una breve perspectiva general de FreeBSD consulta la siguiente sección. Puedes también leer sobre la historia de FreeBSD, o sobre la distribución actual. Si estás interesado en contribuir de algún modo al proyecto (código, hardware, billetes sin marcar), mírate el artículo Contribuir a FreeBSD. - + ¿Qué puede hacer FreeBSD? FreeBSD tiene muchas características notables. Algunas de ellas son: multitarea expropiativa Multitarea expropiativa con prioridades dinámicamente ajustadas para asegurar que distintas aplicaciones y usuarios compartan el ordenador de un modo equitativo, incluso bajo la mayor de las cargas. servicios multiusuario Servicios multiusuario que permiten a mucha gente usar un sistema FreeBSD simultáneamente para distintas cosas. Esto significa, por ejemplo, que los periféricos del sistema como impresoras y dispositivos de cinta son compartidos adecuadamente por varios usuarios del sistema o la red, y que pueden establecerse límites sobre recursos concretos para usuarios o grupos de usuarios, protegiendo de este modo al sistema de posibles abusos. redes TCP/IP Conexión de redes TCP/IP muy robusta, con soporte para estándares industriales como SLIP, PPP, NFS, DHCP, y NIS. Esto quiere decir que tu máquina FreeBSD puede interoperar fácilmente con otros sistemas y hacer de servidor en una empresa, proporcionando importantes funciones como NFS (acceso a ficheros remotos) y servicios de correo electrónico, o poniendo a tu organización en Internet con WWW, FTP, servicios de enrutado y cortafuegos. protección de memoria La protección de memoria garantiza que las aplicaciones (o los usuarios) no pueden interferirse. Un error fatal en una aplicación no afecta al resto. FreeBSD es un sistema operativo de 32-bits (de 64-bits sobre Alpha) y fue diseñado como tal desde el comienzo. X Window System XFree86 X Window System (X11R6), estándar de la industria, provee a los usuarios de una interfaz gráfica (GUI) por el coste de una tarjeta VGA y un monitor comunes, y viene con los fuentes completos. compatibilidad binaria Linux compatibilidad binaria SCO compatibilidad binaria SVR4 compatibilidad binaria BSD/OS compatibilidad binaria NetBSD Compatibilidad binaria con muchos programas nativos de Linux, SCO, SVR4, BSDI y NetBSD. Miles de aplicaciones listas para ser usadas se hallan disponibles en la colección de ports y paquetes. ¿Para qué buscar en la red si puedes encontrarlo todo aquí mismo? Miles de aplicaciones fáciles de portar se encuentran disponibles en Internet. FreeBSD tiene un código fuente compatible con el de los más populares sistemas Unix comerciales y por ello la mayoría de las aplicaciones tan sólo necesitan unos pocos cambios, si alguno, para compilar. memoria virtual El diseño de la memoria virtual con paginación bajo demanda y de la caché unificada de VM/buffer satisface a aplicaciones que requieren grandes cantidades de memoria de forma eficiente aun dando respuestas interactivas a otros usuarios. Multiprocesamiento simétrico (SMP) Soporte para SMP en máquinas con múltiples CPUs. compiladores C compiladores C++ compiladores Fortran Una colección completa de herramientas de desarrollo en C, C++, Fortran, y Perl. Muchos más lenguajes adicionales para investigación y desarrollo avanzados se encuentran también disponibles en la colección de ports y paquetes. código fuente Disponer del código fuente del sistema entero significa contar con el mayor nivel de control posible sobre tu entorno. ¿Para qué ligarte a una solución propietaria a la merced de un fabricante cuando puedes tener un verdadero sistema abierto? Extensa documentación en línea. ¡Y mucho más! 4.4BSD-Lite Computer Systems Research Group (CSRG) U.C. Berkeley FreeBSD está basado en la versión 4.4BSD-Lite del Computer Systems Research Group (CSRG) de la Universidad de California en Berkeley, y continúa la distinguida tradición de desarrollo de sistemas BSD. Además del excelente trabajo del CSRG, el Proyecto FreeBSD ha invertido miles de horas en ajustar el sistema para conseguir un rendimiento y una fiabilidad máximos en situaciones de carga reales. Mientras que muchos de los gigantes comerciales se esfuerzan en dotar a los sistemas operativos para PCs de esas características, rendimiento y fiabilidad, FreeBSD puede ofrecerlas ¡ya! Las posibles aplicaciones en las que puede usarse FreeBSD están en verdad limitadas tan sólo por tu imaginación. Desde desarrollo de programas hasta automatización de fábricas, desde control de inventarios hasta corrección de azimut de antenas de satélites remotos; si puede realizarse con un Unix comercial lo más seguro es que también pueda llevarse a cabo con FreeBSD. FreeBSD también se beneficia de las literalmente miles de aplicaciones de alta calidad desarrolladas en centros de investigación y universidades de todo el mundo, frecuentemente disponibles por poco o ningún coste. También se dispone de aplicaciones comerciales, cuyo número aumenta cada día. Dado que el código fuente de FreeBSD está disponible, el sistema puede ser también personalizado en un grado nunca visto para aplicaciones o proyectos especiales, y de maneras generalmente no posibles con los sistemas operativos de la mayoría de los fabricantes comerciales. Aquí damos tan sólo una muestra de aplicaciones en las que se está actualmente usando FreeBSD: Servicios de Internet: La robusta conectividad TCP/IP integrada en FreeBSD hace de este sistema una plataforma ideal para servicios Internet como: servidores FTP servidores FTP servidores web Servidores web (estándares o seguros [SSL]) cortafuegos enmascaramiento IP Cortafuegos y pasarelas NAT (enmascaramiento IP). correo electrónico Servidores de correo electrónico USENET USENET y BBSs Y más... Con FreeBSD puedes empezar fácilmente con un económico 386 e ir actualizando tu equipo hasta un tetraprocesador Xeon con almacenamiento RAID a medida que tu proyecto crezca. Educación: ¿Eres estudiante de informática o de algún campo de la ingeniería relacionado? No hay mejor modo de estudiar sistemas operativos, arquitectura de computadores y redes que la experiencia a bajo nivel que FreeBSD puede aportar. Para aquéllos cuyo principal interés en los ordenadores no es otro que el de poder realizar su trabajo existe una serie de paquetes gratuitos de CAD, matemáticas, diseño gráfico, etc., que hacen de FreeBSD un sistema verdaderamente útil. Investigación: Encontrándose disponible el código fuente del sistema entero, FreeBSD es una excelente plataforma para la investigación en sistemas operativos y otras ramas de la informática. El hecho de que FreeBSD esté disponible gratuitamente hace posible que grupos remotos puedan colaborar con ideas o compartan desarrollos sin tener que preocuparse de acuerdos en licencias especiales o de limitaciones acerca de lo que puede discutirse en foros públicos. enrutado servidor DNS Redes: ¿Necesitas un nuevo enrutador? ¿Un servidor de nombres (DNS)? ¿Un cortafuegos para mantener a la gente fuera de tu red interna? FreeBSD puede convertir aquel 386 o 486 arrinconado en un enrutador avanzado con sofisticadas capacidades de filtrado de paquetes fácilmente. X Window System XFree86 X Window System X acelerada Estación de trabajo X: FreeBSD es una magnífica elección como terminal X de bajo coste, ya sea usando el libremente disponible servidor XFree86 o uno de los excelentes servidores comerciales de X Inside. A diferencia de las terminales X, FreeBSD permite ejecutar muchas aplicaciones localmente, si así se quiere, aligerando de este modo la carga soportada por un servidor central. FreeBSD puede incluso arrancar sin disco, permitiendo que las estaciones sean aún más económicas y fáciles de administrar. colección de compiladores GNU Desarrollo de software: El sistema base de FreeBSD viene con una completa colección de herramientas de desarrollo que incluyen el famoso compilador y depurador de C/C++ de GNU. Los fuentes y binarios de FreeBSD se hallan disponibles en CDROM y por FTP anómimo. Por favor, consulta para más información sobre cómo conseguir FreeBSD. ¿Quién usa FreeBSD? Usuarios Grandes sitios corriendo FreeBSD Sobre FreeBSD corren algunos de los más grandes sitios web incluyendo: Yahoo! Yahoo! Apache Apache - Be, Inc. - - Be, Inc. - - Blue Mountain Arts Blue Mountain - Arts + Arts Pair Networks Pair Networks - Whistle Communications + Sony Japón - Whistle - Communications + Sony + Japón - Microsoft + Netcraft - Microsoft + Netcraft + - Hotmail + Weathernews - Hotmail + Weathernews - Sony Japón + Supervalu - Sony Japón + Supervalu + + TELEHOUSE America + + TELEHOUSE America + + + Sophos Anti-Virus + + Sophos + Anti-Virus + + + JMA Wired + + JMA Wired + y muchos más. Acerca del proyecto FreeBSD En la siguiente sección se explican ciertos aspectos del proyecto, una breve historia, objetivos, y modelo de desarrollo. Jordan Hubbard Contributed by Breve historia de FreeBSD 386BSD Patchkit Hubbard, Jordan Williams, Nate Grimes, Rod Proyecto FreeBSD Historia La génesis del proyecto FreeBSD se remonta a comienzos de 1993, en parte como una extensión del Unofficial 386BSD Patchkit debida a los tres últimos coordinadores del patchkit: Nate Williams, Rod Grimes y yo mismo. 386BSD Nuestro objetivo original era producir una instantánea de 386BSD intermedia para arreglar una serie de problemas que no se podían solventar vía patchkits. Algunos quizá recordéis que el primer nombre del proyecto fue 386BSD 0.5 o 386BSD Interim en referencia a ese hecho. Jolitz, Bill 386BSD era el sistema operativo de Bill Jolitz, que hasta ese punto había estado sufriendo severamente las consecuencias de prácticamente un año que más vale olvidar. A medida que el patchkit se iba haciendo más incómodo día a día, nosotros estuvimos unánimente de acuerdo en que algo se tenía que hacer y decidimos ayudar a Bill ofreciendo esta instantánea limpia como ínterin. Aquellos planes fueron bruscamente interrumpidos cuando Bill Jolitz de repente decidió retirar su aprobación al proyecto sin ninguna indicación clara de lo que en su lugar debería hacerse. Greenman, David CDROM de Walnut Creek No tardamos mucho en decidir que el objetivo seguía valiendo la pena, aun sin el soporte de Bill, y fue así que adoptamos el nombre FreeBSD, debido a David Greenman. Nuestros objetivos iniciales se fijaron una vez consultamos a los usuarios del sistema, y cuando quedó claro que el proyecto estaba en marcha y que podía llegar a ser una realidad contacté con Walnut Creek CDROM con la idea de mejorar los canales de distribución de FreeBSD en CD, pero hasta llegamos a disponer de una máquina con la que trabajar y una conexión a Internet rápida. Sin la fe casi sin precedentes que tuvo Walnut Creek CDROM en lo que era por aquel tiempo un proyecto completamente desconocido, es bastante improbable que FreeBSD hubiera logrado tanto y tan rápido como ha logrado hoy por hoy. 4.3BSD-Lite Net/2 U.C. Berkeley 386BSD Free Software Foundation La primera distribución en CDROM (y disponible por la red) fue FreeBSD 1.0, publicado en diciembre de 1993. Estaba basado en la cinta de U.C. Berkeley del 4.3BSD-Lite (Net/2), con bastantes componentes de 386BSD y la Free Software Foundation. Fue un logro bastante razonable para una primera versión, y le siguió FreeBSD 1.1 en mayo de 1994, que tuvo un gran éxito. Novell U.C. Berkeley Net/2 AT&amp;T Por entonces se formaron unos inesperados nubarrones en el horizonte ya que Novell y U.C. Berkeley resolvieron el largo juicio acerca del estatus legal de la cinta de Berkeley Net/2. Una condición del acuerdo fue la concesión por parte de U.C. Berkeley de que una gran parte de Net/2 era código gravado y propiedad de Novell, quien a su vez lo había adquirido de AT&T anteriormente. Berkeley obtuvo a cambio de Novell el beneplácito para que 4.4BSD-Lite, cuando saliera, fuera declarado como no-gravado y se instara a los usuarios de Net/2 a cambiar. Esto incluía a FreeBSD, y se dio hasta julio de 1994 para dejar de sacar su propio producto basado en Net/2. Bajo los términos de aquel acuerdo, se le permitía al proyecto sacar una última versión antes de la fecha límite, esa versión fue FreeBSD 1.1.5.1. FreeBSD tuvo entonces que acometer la árdua tarea de literalmente reinventarse a sí mismo a partir de trozos nuevos y bastante incompletos de 4.4BSD-Lite. Las versiones Lite eran ligeras en parte porque el CSRG de Berkeley quitó grandes partes del código necesario para construir un sistema que pudiera arrancar (debido a diversos requisitos legales) y porque la versión del 4.4 para Intel era muy incompleta. No fue hasta noviembre de 1994 que el proyecto realizó esa transición, en ese punto sacó FreeBSD 2.0 en la red y en CDROM (a finales de diciembre). A pesar de no estar suficientemente pulida, esta distribución fue un éxito significativo y le siguió el más robusto y fácil de instalar FreeBSD 2.0.5 en junio de 1995. Sacamos FreeBSD 2.1.5 en agosto de 1996, y pareció ser suficientemente popular entre ISPs y otras comunidades comerciales como para que mereciera otra versión de la rama 2.1-STABLE. Ésa fue FreeBSD 2.1.7.1, publicada en febrero de 1997, que marcó el final de la línea principal de desarrollo en 2.1-STABLE. Una vez en modo mantenimiento, en esa rama (RELENG_2_1_0) sólo se harían ya mejoras en seguridad y correcciones de errores críticos. FreeBSD se ramificó desde la línea principal de desarrollo (-CURRENT) en noviembre de 1996 como la rama RELENG_2_2, y la primera versión completa (2.2.1) salió en abril de 1997. Se hicieron más versiones de la rama 2.2 en verano y otoño de 1997, la última de las cuales (2.2.8) apareció en noviembre de 1998. La primera versión 3.0 oficial salió en octubre de 1998 y marcó el inicio del fin de la rama 2.2. El árbol se ramificó de nuevo el 20 de enero de 1999, dando lugar a las ramas 4.0-CURRENT y 3.X-STABLE. De la 3.X-STABLE, 3.1 salió el 15 de febrero de 1999, 3.2 el 15 de mayo de 1999, 3.3 el 16 de septiembre de 1999, 3.4 el 20 de diciembre de 1999, y 3.5 el 24 de junio de 2000, a la que siguió pocos días después una actualización menor, la 3.5.1, que incorporaba mejoras de seguridad de última hora para Kerberos. Ésa fue la última versión de la rama 3.X. Hubo otra ramificación el 13 de marzo de 2000, que dió lugar a la rama 4.X-STABLE, considerada ahora la "actual rama -stable". Han habido varias versiones de la misma desde entonces: 4.0-RELEASE salió en marzo de 2000, 4.3 en abril de 2001, y 4.4 en septiembre de 2001. Habrá más versiones de la rama 4.X-STABLE (RELENG_4) entrado 2002. Proyectos a largo plazo siguen teniendo lugar en la rama (principal) 5.0-CURRENT, e instantáneas de la 5.0 en CDROM (y, naturalmente, en la red) se hallan contínuamente disponibles desde el servidor de instantáneas a medida que el trabajo progresa. Jordan Hubbard Contributed by Objetivos del Proyecto FreeBSD Proyecto FreeBSD Objetivos Los objetivos del Proyecto FreeBSD son proveer software que pueda ser usado con cualquier propósito y sin compromiso alguno. Muchos de nosotros participamos significativamente en el código (y en el proyecto) y ciertamente no nos importaría recibir una pequeña compensación económica de vez en cuando, pero decididamente no estamos dispuestos a insitir en ello. Creemos que nuestra más importante y primordial misión es dar código a todo el que venga, y para lo que quiera, de manera que el código sea tan usado y dé tanto provecho como sea posible. Creo que éste es uno de los objetivos más fundamentales del software libre y uno que nosotros apoyamos con entusiasmo. GNU General Public License (GPL) GNU Lesser General Public License (LGPL) Copyright BSD El código fuente de nuestro árbol que se halla bajo la GNU General Public License (GPL) o la Library General Public License (LGPL) viene con algunas restricciones más, si bien de cara a garantizar acceso al mismo, no al contrario que es lo habitual. Debido a las complicaciones adicionales que pueden surgir en el uso comercial de software con licencia GPL, preferimos que el software contribuido lo sea bajo la licencia BSD, menos estricta, cuando ésa sea una opción razonable. Satoshi Asami Contributed by El modelo de desarrollo de FreeBSD Proyecto FreeBSD Modelo de desarrollo El desarrollo de FreeBSD es un proceso muy abierto y flexible, estando FreeBSD construido literalmente a partir de las contribuciones de centenares de personas de todo el mundo, como puede verse en nuestra lista de contribuidores. Estamos constantemente a la búsqueda de nuevos desarrolladores e ideas, y aquéllos interesados en vincularse más al proyecto tan sólo tienen que ponerse en contacto con nostros en &a.hackers;. La lista &a.announce; también se halla disponible para quienes deseen dar a conocer a otros usuarios de FreeBSD grandes áreas de trabajo. Cosas útiles de saber sobre el Proyecto FreeBSD y su proceso de desarrollo, ya sea trabajando de forma independiente on en estrecha cooperación: El repositorio CVS CVS repositorio Concurrent Versions System CVS El árbol de código fuente central de FreeBSD se mantiene con CVS (Concurrent Versions System), una herramienta de control de versiones de código fuente que se halla libremente disponible y viene con FreeBSD. El repositorio CVS principal reside en una máquina en Santa Clara CA, USA desde la que es replicado a numerosos mirrors distribuidos por todo el mundo. El árbol del CVS, así como los árboles -CURRENT y -STABLE que se extraen del mismo, pueden ser replicados fácilmente en tu máquina también. Por favor, consulta la sección Sincronizando el árbol de código fuente para más información sobre cómo hacerlo. La lista de committers committers Los committers son gente que tienen permisos de escritura en el árbol del CVS, y están por tanto autorizados a realizar modificaciones en los fuentes de FreeBSD (el término committer viene del comando commit de &man.cvs.1;, que sirve para subir nuevos cambios al repositorio del CVS). La mejor manera de enviar aportaciones para que sean revisadas por los committers es usar el comando &man.send-pr.1;, aunque si pareciera que algo va mal en el sistema también puedes contactarlos por mail en &a.committers;. El equipo core de FreeBSD equipo core El equipo core de FreeBSD sería lo equivalente a una junta directiva si el Proyecto FreeBSD fuese una compañía. La principal tarea de este equipo es la de garantizar que el proyecto, como un todo, tiene salud y sigue las direcciones correctas. Invitar a desarrolladores comprometidos y responsables a unirse a nuestro grupo de committers es una de las funciones del equipo core, así como el reclutamiento de nuevos miembros del equipo cuando otros se van. El equipo core fue elegido de un conjunto de committers candidatos en octubre de 2000. Se celebran elecciones cada 2 años. Algunos miembros del equipo core tienen también áreas de responsabilidad específicas, en cuanto a que se encargan de garantizar que cierta parte extensa del sistema funciona según lo previsto. Hay una lista completa de desarrolladores de FreeBSD con sus áreas de responsabilidad respectivas, consulta la Lista de contribuidores. La mayoría de los miembros del equipo core son voluntarios a la hora de desarrollar FreeBSD y no se benefician económicamente del proyecto, por ello compromiso no debería confundirse con soporte garantizado. La anterior analogía de la junta directiva en realidad no es del todo exacta, quizá fuera más acertado decir que ésa es la gente que dedica su vida a FreeBSD ¡en contra de lo que les aconseja su propio juicio! Contribuidores externos contribuidores Por último, y no por ello menos importante, el mayor grupo de desarrolladores está formado por los mismos usuarios, quienes constantemente aportan feedback y correcciones de errores. La principal manera de estar en contacto con el más descentralizado desarrollo de FreeBSD es suscribirse a &a.hackers; (ver información sobre listas de distribución) donde se discuten ese tipo de cosas. La lista de contribuidores es larga y no cesa de crecer, así que ¿por qué no te apuntas y contribuyes a FreeBSD hoy mismo? Aportar código no es la única manera de contribuir al proyecto; tienes un lista más completa de cosas que hay que hacer en el sitio web del Proyecto FreeBSD. En resumen, nuestro modelo de desarrollo está organizado como un conjunto de círculos concéntricos. El modelo centralizado está diseñado para conveniencia de los usuarios de FreeBSD, que así tienen un modo sencillo de estar al día con una base de código central, ¡no para excluir a contribuidores potenciales! Nuestro deseo es presentar un sistema operativo estable con un gran conjunto de aplicaciones coherentes que los usuarios puedan instalar y usar fácilmente, y este modelo funciona bien para lograrlo. Lo único que pedimos a quienes quisieran unirse a nosotros como desarrolladores de FreeBSD es la misma dedicación que los integrantes actuales tienen para mantener su éxito. La actual distribución FreeBSD NetBSD OpenBSD 386BSD Free Software Foundation U.C. Berkeley Computer Systems Research Group (CSRG) FreeBSD está libremente disponible, todo el código fuente de la distribución basada en 4.4BSD-Lite para sistemas bajo Intel i386, i486, Pentium Pro, Celeron, Pentium II, Pentium III (o compatible) y DEC Alpha. Está principalmente basado en software &i386;, &i486;, &pentium;, &pentium; Pro, &celeron;, &pentium; II, &pentium; III, &pentium; 4 (o compatible), &xeon;, DEC Alpha y sistemas basados en Sun &ultrasparc;. Está principalmente basado en software del grupo CSRG de U.C. Berkeley, con algunas mejoras provenientes de NetBSD, OpenBSD, 386BSD, y la Free Software Foundation. Desde la versión 2.0 de FreeBSD de finales del 94, el rendimiento, conjunto de funcionalidades, y estabilidad del sistema han mejorado drásticamente. El último cambio consiste en un rediseño del sistema de memoria virtual con una caché unificada de VM/buffer que no sólo aumenta el rendimiento, sino que también reduce el consumo de memoria de FreeBSD, haciendo que una configuración de 5MB sea un mínimo más aceptable. Otras mejoras incluyen soporte completo para clientes y servidores NIS, soporte para transacciones TCP, llamada bajo demanda PPP, soporte para DHCP integrado, un subsistema SCSI mejorado, soporte para ISDN, soporte para ATM, FDDI, adaptadores Fast y Gigabit Ethernet (1000Mbit), soporte mejorado para los últimos controladores Adaptec, y cientos de correcciones de errores. También hemos considerado los comentarios y sugerencias de muchos de nuestros usuarios y hemos intentado ofrecer lo que esperamos sea un proceso de instalación más sensato y fácil de entender. ¡Tu feedback sobre este proceso (en constante evolución) es especialmente bienvenido! Además de las distribuciones base, FreeBSD ofrece una colección de software con miles de programas comúnmente solicitados. ¡En el momento de escribir esto hay unos &os.numports; ports! La lista de ports comprende desde servidores HTTP (WWW), hasta juegos, lenguages, editores, y prácticamente cualquier cosa intermedia. La colección de ports completa requiere un espacio de aproximadamente 100MB, todos ellos expresados como deltas de sus fuentes originales. Esto hace que nos sea mucho más fácil actualizar ports, y reduce de un modo importante el espacio en disco que necesitaba la anterior colección de ports 1.0. Para compilar un port uno simplemente se sitúa bajo el directorio del programa que desea instalar, escribe make install, y deja que el sistema se encargue del resto. La distribución original completa de cada port que construyes se recupera dinámicamente de un CDROM o un sitio FTP, de modo que sólo necesitas el espacio usado para construir los ports que tu quieras. La mayoría de los ports también están disponibles precompilados en paquetes, que pueden instalarse con un simple comando (pkg_add) para aquéllos que no quieran compilar sus propios ports a partir de los fuentes. Algunos documentos que pueden ser de ayuda en el proceso de instalación y al utilizar FreeBSD pueden también encontrarse en el directorio /usr/share/doc de cualquier máquina bajo FreeBSD 2.1 o posterior. Puedes ver los manuales que están instalados en local con cualquier navegador que pueda mostrar HTML vía las siguientes URLs: El manual de FreeBSD /usr/share/doc/handbook/index.html El FAQ de FreeBSD /usr/share/doc/faq/index.html También puedes ver la copia original (y más frecuentemente actualizada) en http://www.FreeBSD.org/. diff --git a/es_ES.ISO8859-1/books/handbook/ports/chapter.sgml b/es_ES.ISO8859-1/books/handbook/ports/chapter.sgml index 56f50a0b3f..2769314849 100755 --- a/es_ES.ISO8859-1/books/handbook/ports/chapter.sgml +++ b/es_ES.ISO8859-1/books/handbook/ports/chapter.sgml @@ -1,1575 +1,1650 @@ Instalando Aplicaciones: Paquetes y Ports - + Sinópsis ports paquetes FreeBSD esta colmado de una excelente colección de herramientas de sistema, como parte del sistema base. A pesar de esto, existe gran cantidad de cosas que uno requiere hacer para poner las cosas realmente en marcha, para lo cual se necesita instalar software adicional de terceros. FreeBSD ofrece dos tecnologías complementarias para instalar software de terceros en nuestro sistema: la Colección de Ports de FreeBSD y Paquetes binarios. Cualquiera de los dos sistemas puede ser usado para instalar las versiones más recientes, de forma local o directamente desde la red. Después de leer este capítulo, usted sabrá: Como instalar paquetes binarios de software de terceros. Como compilar software de terceros desde la Colección de Ports. Como remover paquetes o ports instalados previamente. - + Generales sobre la Instalación de Software - Si usted ha usado un sistema Unix con anterioridad, sabrá que el + Si usted ha usado un sistema &unix; con anterioridad, sabrá que el procedimiento típico para instalar software de terceros es algo similar a esto: Descargar el software, que puede distribuirse en formato de código fuente, o binario. Desempacar el software de su formato de distribución - (normalmente en un tarball comprimido ya sea con &man.compress.1; o - &man.gzip.1;). + (normalmente en un tarball comprimido ya sea con &man.compress.1;, &man.gzip.1; + o &man.bzip2.1;). - Ver la documentación (quizás un fichero + Ver la documentación (quizás un fichero INSTALL o README, o los ficheros del subdirectorio doc/) para ver como instalar el software. - Si el software es distribuido como fuentes, compilarlo. Esto puede + Si el software es distribuido como fuente, compilarlo. Esto puede requerir que editemos el fichero Makefile o que ejecutemos el script configure, entre otras. Instalar y probar el software. Y esto solamente si todo marcha bien. Si usted esta instalando un software que no ha sido creado específicamente para FreeBSD, puede que sea necesario editar el código para que trabaje correctamente. Si usted lo desea, puede continuar instalando software de la forma tradicional bajo FreeBSD. Aunque FreeBSD le provee de dos tecnologís que le pueden ahorrar gran cantidad de tiempo y - esfuerzo: los paquetes y ports. AL momento de escribir esto, existen + esfuerzo: los paquetes y ports. Al momento de escribir esto, existen más de &os.numports; aplicaciones de terceros, que estan disponibles de esta manera. Los paquetes de FreeBSD, para cualquier aplicación, son un simple fichero que debe descargar. Los paquetes contienen copia de binarios pre-compilados de la aplicación, así como cualquier fichero de configuración necesario o documentación. Los paquetes descargados, pueden ser manipulados con los comandos de manejo de paquetes de FreeBSD, tales como: &man.pkg.add.1;, &man.pkg.delete.1;, - &man.pkg.info.1;, etc. - - EL instalar una aplicación nueva puede realizarse con un - simple comando. + &man.pkg.info.1;, etc. El instalar una aplicación nueva puede + realizarse con un simple comando. Por otro lado un Port de FreeBSD, es una colección de ficheros diseñados para automatizar el proceso de compilación del software, desde el código fuente. Recuerde que existen ciertos pasos que deberá llevar a cabo para efecto de compilar un programa por usted mismo (desempacar, parchar, compilar e instalar). Los ficheros que conforman un port, permiten automatizar esto por usted. Usted ejecuta un conjunto de comandos simples y el código fuente es descargado, desempacado, parchado, compilado e instalado. De hecho, el sistema de ports también se puede usar para crear paquetes que posteriormente manipule con pkg_add y las otras utilidades del manejo de paquetes que veremos en breve. Tanto el sistema de ports como el de paquetes entienden las dependencias. Suponga que desea instalar una aplicación que depende de que una librería específica este instalada. Tanto la librería como la aplicación existen en FreeBSD como paquete o port. Si utiliza el comando pkg_add o el sistema de ports para instalar la aplicación, ambos notaran que la librería no esta instalada, y procederán a instalar la librería en primer término. Dado que ambas tecnologís son similares, quizás se pregunte por que FreeBSD se toma la molestía de contar con ambas. Los Paquetes y los Ports cuentan con sus propias fortalezas, y cual utlizar dependerá de sus preferencias. Beneficios de los Paquetes El típico fichero tarball de un paquete, es normalmente más pequeño que el tarball comprimido que cuenta con el código fuente del software. Los paquetes no requiere de compilación adicional. Este punto puede ser de gran importancia, principalmente en equipos lentos, cuando compila grandes aplicaciones tales como Mozilla, KDE, o GNOME. Los paquetes no requieren que usted comprenda el proceso que envuelve el compilar software bajo FreeBSD. Beneficios del Sistema de Ports Normalmente los paquetes son compilados con opciones conservadoras, en virtud del gran numero de equipos donde serán instalados. Al instalar desde el port, usted puede editar las preferencias para (por - ejemplo) ejecutarse bajo un procesador Athlon o Pentium III. + ejemplo) ejecutarse bajo un procesador Pentium IV o Athlon. Algunas aplicaciones opciones relacionadas con lo que pueden y lo que no pueden hacer. Por ejemplo Apache puede ser configurado con una gran variedad de opciones. Al compilarlo desde los ports usted no tiene por que aceptar todas, puede seleccionar cuales opciones desea. En algunos casos, existen varios paquetes para la misma aplicación con diferentes opciones. Por ejemplo, Ghostscript esta disponible como paquete ghostscript o bien como paquete ghostscript-nox11, dependiendo si usted cuenta o no con el servidor X11. En este caso decidir puede ser sencillo, pero esto se puede volver un problema si cuenta con más de una o dos opciones al momento de la compilación. Las condiciones de licenciamiento de algunas aplicaciones, prohiben la distribución de binarios. Solo permiten la distribución del código fuente. Existe gente que no confia en los binarios. Al menos con el código fuente, usted puede (en teoría) revisarlo y localizar problemas potenciales. Si cuenta con parches locales, necesitará el código fuente para poder aplicarlos. Existe gente que le gusta contar con el código fuente, para poder leerlo en ratos de ocio, modificarlo, tomar partes prestadas (si la licencia lo permite, claro esta), y tal. Para poder estar actualizado en sus ports, suscribase a &a.ports;. El resto de este capítulo le explicará como usar los ports y paquetes para instalar software de terceros en FreeBSD. - + Localizando su Aplicación Antes de poder instalar cualquier software, usted debe saber que desea instalar y como se llama dicha aplicación. La lista de software disponible para FreeBSD crece constantemente. Afortunadamente existen varias formas de localizar lo que busca: El sitio web de FreeBSD mantiene una base actualizada de todas las aplicaciones disponibles para FreeBSD, en la dirección http://www.FreeBSD.org/ports/ . Esta base esta segmentadas por categorías, y usted puede buscar por nombre (si lo sabe) o bien listas las aplicaciones disponibles en cierta categoría. FreshPorts Dan Langille mantiene FreshPorts, en http://www.FreshPorts.org/. FreshPorts verifica los cambios en las aplicaciones del árbol de ports, y le permite observar uno o más ports, y le enviará un correo cada vez que se actualicen. FreshMeat Si no conoce el nombre de la aplicación que desea, pruebe usar un sitio como FreshMeat (http://www.freshmeat.net/) para encontrar una aplicación, posteriormente verifique en el sitio de FreeBSD, para ver si la aplicación ha sido portada a FreeBSD. Chern Lee Contribuido por Usando el Sistema de Paquetes Instalando un Paquete paquetes instalando pkg_add Puede usar la utilidad &man.pkg.add.1; para instalar software de un paquete bajo FreeBSD, desde un fichero local o desde un servidor remoto que esta en red. Descargando un Paquete e Instalandolo Localmente &prompt.root; ftp -a ftp2.FreeBSD.org Connected to ftp2.FreeBSD.org. 220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready. 331 Guest login ok, send your email address as password. 230- 230- This machine is in Vienna, VA, USA, hosted by Verio. 230- Questions? E-mail freebsd@vienna.verio.net. 230- 230- 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /pub/FreeBSD/ports/packages/sysutils/ 250 CWD command successful. ftp> get lsof-4.56.4.tgz local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz 200 PORT command successful. 150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes). 100% |**************************************************| 92375 00:00 ETA 226 Transfer complete. 92375 bytes received in 5.60 seconds (16.11 KB/s) ftp> exit &prompt.root; pkg_add lsof-4.56.4.tgz Si usted no cuenta con una fuente local de paquetes (como pudiese ser un CDROM de FreeBSD), pudiese ser que su mejor alternativa sea usar &man.pkg.add.1;. Esto provocará que la utilidad determine automáticamente el formato del objeto correcto, para que posteriormente lo descargue y lo instale desde un sitio FTP. pkg_add &prompt.root; pkg_add -r lsof En el ejemplo anterior, el paquete correspondiente será descargado e instalado sin mayor intervención del usuario. &man.pkg.add.1; utiliza &man.fetch.1; para descargar los ficheros, que toma como referencia varias variables de entorno, que incluyen FTP_PASSIVE_MODE, FTP_PROXY y FTP_PASSWORD. Quizás deba modificar alguna de estas, si se encuentra detrás de un firewall, o bien usar un proxy FTP/HTTP. Vea la página de ayuda &man.fetch.3; para una lista completa. También puede notar que en el ejemplo anterior usamos lsof en vez de lsof-4.56.4. Cuando hacemos uso de fetch de forma remota, la versión del paquete debe ser removida. El programa &man.pkg.add.1; obtendrá automáticamente la versión más reciente. - Los paquetes son distribuidos en formato .tgz. - puede encontrarlos en Los paquetes son distribuidos en formato .tgz + y .tbz. Puede encontrarlos en ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/, o bien, en el CDROM de FreeBSD. Cada CD de la distribución de 4 CDs (y del PowerPak, etc) contiene los paquetes en el directorio /packages. El orden de dicho directorio, es similar al árbol de /usr/ports. Cada categoría cuenta con su subdirectorio, y todos los paquetes estan disponibles en el directorio All. La estructura del directorio de paquetes es identica a la de ports; estos trabajan en conjunto para formar el sistema de paquetes/ports. Eliminando un Paquete pkg_delete paquetes eliminando Para eliminar un paquete previemante instalado, utilice la utilidad &man.pkg.delete.1;. &prompt.root; pkg_delete xchat-1.7.1 Manejo de Paquetes paquetes manejo &man.pkg.info.1; es una utilidad que muestra y describe todos los paquetes que tenemos instalados. pkg_info &prompt.root; pkg_info cvsup-16.1 A general network file distribution system optimized for CV docbook-1.2 Meta-port for the different versions of the DocBook DTD ... &man.pkg.version.1; es una utilidad que resume las versiones de los paquetes instalados. Estas son comparadas con las versiones actuales del árbol de ports. pkg_version &prompt.root; pkg_version cvsup = docbook = ... Los símbolos de la segunda columna, nos indican la edad relativa de la versión instalada, comparada con la versión disponible en el árbol local de ports. Símbolo Significado = La versión del paquete instalado es igual a la versión del árbol local de ports. < La versión instalada es más antigua a la versión del árbol local de ports. >La versión instalada es más reciente que la que se encuentra en el árbol local de ports (probablemente el árbol de ports esta desactualizado). ?El paquete instalado no se ha localizado en el índice (index) de los ports. *Existen multiples versiones del paquete. Miscelaneos Toda la información relacionada con los paquetes, se guarda en el directorio /var/db/pkg. Los paquetes instalados, así como una descripción de los mismos, puede encontrarse en este subdirectorio. Usando la Colección de Ports La siguiente sección le provee de las instrucciones básicas para instalar o remover programas de su sistema, usando la Colección de Ports. Obteniendo la Colección de Ports Antes de poder instalar ports, primero debe de hacerse de la Colección de Ports— que escencialmente esta compuesta de ficheros Makefiles, parches y ficheros con la descripción de los ports, ubicados en /usr/ports. Cuando instaló su sistema FreeBSD, el programa Sysinstall le pregunto si deseaba instalar la Colección de Ports. Si contesto que no, puede seguir estas instrucciones para obtener dicha colección: Metodo por Sysinstall Este metodo implica el uso del programa sysinstall nuevamente, para instalar Colección de Ports. Siendo usuario root, ejecute el programa /stand/sysinstall como se muestra: &prompt.root; /stand/sysinstall Posicionese en la opción Configure, y presione Enter. Seleccione la opción Distributions, y presione Enter. Seleccione la opción ports, y presione la Barra Espaciadora. Dirijase a la opción Exit, y presione Enter. Seleccione el medio de instalación deseado, tal como CDROM, FTP y tal. Siga los menus para salir de sysinstall. El metodo alternativo para obtener y mantener actualizada la Colección de Ports, es usando CVSup. Lea el fichero de ports para CVSup, en /usr/share/examples/cvsup/ports-supfile. Vea el capítulo Usando CVSup para ver más información en el uso de CVSup y del fichero mencionado. Metodo por CVSup Este es un metodo rápido de obtener la Colección de Ports usando CVSup. Si desea mantener su árbol de ports actualizado, o bien, aprender más acerca de CVSup, lea los documentos comentados anteriormente. Instale el port net/cvsup. Vea Instalación de CVSup para mádetalles. Como usuario root, copie el fichero /usr/share/examples/cvsup/ports-supfile a una nueva ubicación, como puede ser el directorio /root o bien su propio directorio home. Edite el fichero ports-supfile. Cambie CHANGE_THIS.FreeBSD.org a un servidor CVSup cercano. Vea Mirrors de CVSup para ver una lista completa de los servidores CVSup. Ejecute cvsup: &prompt.root; cvsup -g -L 2 /root/ports-supfile Al ejecutar esto posteriormente, se descargaran las actualizaciones de la Colección de Ports. Instalando Ports ports instalando Al hablar de la Colección de Ports, lo primero que debemos comentar es; a que nos referimos cuando hablamos de un esqueleto (skeleton). En sí mismo, un esqueleto de port, es una serie mínima de ficheros, que le indican a FreeBSD como compilar e instalar un programa. Cada esqueleto incluye: Un fichero Makefile. Este fichero contiene varias sentencias, que le indican al sistema como compilarlo y donde deberá instalarlo en su sistema. Un fichero distinfo. Este fichero contiene información de los ficheros que debe ser descargados para efecto de compilar el programa, así como el identificador checksum, para - asegurarse se han descargado correctamente, sin corrupciones. + asegurarse se han descargado correctamente, sin corrupciones + usando &man.md5.1;. Un directorio files. Este directorio contiene los parches necesarios para compilar e instalar en su sistema FreeBSD. Básicamente, los parches son pequeños ficheros, que incluyen algunos cambios. Estos son en formato de texto plano, y básicamente dicen cosas como Remove line 10 (Remover la línea 10) o Change line 26 to this... (Cambiar la línea 26 por esto...). Los parches también son conocidos como diffs, ya que son generados por el programa del mismo nombre; &man.diff.1;. Es posible que este directorio tambié contenga algun otro fichero necesario para compilar e instalar el port. Un fichero pkg-comment. Este es una descripcion del programa en una sola línea. Un fichero pkg-descr. Esta es una descripcion más detallada del programa. En ocasiones multi-línea. Un fichero pkg-plist. Esta es una lista de todos los ficheros que serán instalados por el port. También le indica al sistema de ports, que ficheros remover, en caso de una desinstalación. Algunos ports cuentan con otros ficheros, tal como pkg-message. El sistema de ports usa estos, para manejar situaciones especiales. Si desea saber más detalles al respecto, o bien de ports en general, vea el libro FreeBSD Porter's Handbook. Ahora que tiene suficientes antecedentes sobre que hacer con la Colección de Ports, esta listo para instalar su primer port. Existen dos formas de lllevar esto a cabo, y cada una de ellas se explican a continuación. Pero, antes de que podamos proceder con la instalación, usted necesita seleccionar un port para instalar. Existen varias formas de hacer esto, siendo el metodo más sencillo los ports listados en el sitio web de FreeBSD. Puede navegar entre los ports listados ahí o bien, usar la función de buscar en el sitio. Cada port incluye una descripción, para que pueda leer un poco acerca de cada port antes de decidirse a instalarlo. Otro metodo es por medio del comando &man.whereis.1;. Simplemente teclee whereis fichero, donde fichero es el programa que desea instalar. Si se encuentra en su sistema, se le indicara donde se localiza, tal como: &prompt.root; whereis lsof lsof: /usr/ports/sysutils/lsof Esto nos indica que lsof (una utilidad de sistema) puede encontrarse en /usr/ports/sysutils/lsof. Incluso otra forma de encontrar un port en particular, es usando el mecanismo de búsqueda incluido en el sistema de ports. Para efecto de usar esta habilidad, debe estar situado en el directorio /usr/ports. Una vez que este ahí, ejecute make search name=nombre-del-programa donde nombre-del-programa es el nombre del programa que desea encontrar. Por ejemplo, si busca lsof: &prompt.root; cd /usr/ports &prompt.root; make search name=lsof Port: lsof-4.56.4 Path: /usr/ports/sysutils/lsof Info: Lists information about open files (similar to fstat(1)) Maint: obrien@FreeBSD.org Index: sysutils B-deps: R-deps: De esta información, la parte que debe prestar atención es la que se refiere a la ruta, esto es; la línea Path:, en virtud de que esta le indica la ubicación del programa. El resto de la información no es necesaria para la instalación, por lo que no se verá aqui. Para una búsqueda más profunda, puede usar el comando make search key=cadena donde cadena es algun texto a buscar. Esto busca nombres de ports, descripciones y dependencia y puede usarse para buscar ports que se relacionan a un determinado texto, si no sabe el nombre del port que esta buscando. En ambos casos, la búsqueda es indistinto el uso de mayúsculas o minusculas. El buscar LSOF y lsof arrojaran los mismos resultados. Usted debe ser usuario root , para instalar ports. Ahora que hemos encontrado un port que deseamos instalar, estamos listos para llevar a cabo la instalación. El port incluye las instrucciones necesarias para compilar el código fuente, pero no contiene el código. Puede obtener el código de un CDROM o desde Internet. El código fuente es distribuido de cualquier manera que el autor del software lo desee. Frecuentemente esto es en un fichero tar.gz, pero puede estar comprimido con algun otro programa o de hecho sin estar comprimido. De cualquier forma que se presente, el código fuente del programa, le llamamos distfile. Puede obtener los distfiles desde Internet o bien desde un CDROM. Instalando Ports desde un CDROM ports instalando desde CDROM Los CDROMs oficiales del Proyecto de FreeBSD, ya no incluyen distfiles. Estos ocupan gran espacio, que en su lugar se ha usado para incluir paquetes precompilados. CDROMs como el PowerPak de FreeBSD, si inlcuyen distfiles, y puede ordenar estos de distribuidores como FreeBSD Mall. Esta sección asume que usted cuenta con un juego de CDROMs de FreeBSD. Coloque su CDROM en la unidad correspondiente. Montelo en /cdrom. (Si utiliza un punto de montaje diferente la instalación no será exitosa). Para comenzar dirijase al directorio donde se localiza el port que desea instalar: &prompt.root; cd /usr/ports/sysutils/lsof Una vez que este en el directorio lsof, verá el esqueleto del port. El próximo paso es la compilación del port. Esto lo hacemos, simplemente tecleando make en la línea de comandos. Una vez que ha hecho esto, verá algo similar a lo siguiente: &prompt.root; make >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from file:/cdrom/ports/distfiles/. ===> Extracting for lsof-4.57 ... [extraction output snipped] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [configure output snipped] ... ===> Building for lsof-4.57 ... [compilation output snipped] ... &prompt.root; Note que una vez que ha terminado la compilación, regresara a la línea de comandos. El siguiente paso es instalar el port. Para efecto de instalarlo, simplemente debemos añadir una palabra al comando make, y esa palabra es install: &prompt.root; make install ===> Installing for lsof-4.57 ... [installation output snipped] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: This port has installed the following binaries which execute with increased privileges. &prompt.root; Una vez que regrese a la línea de comandos, le será posible ejecutar la aplicación que recien instalo. Dado que el programa lsof se ejecuta con privilegios, nos aparece una advertencia de seguridad. Debe tomar nota de cualquier otra advertencia que aparezca durante la compilación e instalación. Puede ahorrarse algo de tiempo al ejecutar make install en un solo comando, en lugar de ejecutar make y make install en dos pasos diferentes. Algunos shells cuentan con un cache de los comandos disponibles bajo los directorios incluidos en la variable de entorno PATH, para agilizar las operaciones de búsqueda de los ejecutables de estos ficheros. Si usted esta haciendo uso de alguno de estos shells, puede usar el comando rehash una vez que ha terminado de instalar el port, para poder hacer uso de su nuevo programa. Esto es válido para ambos shells que forman parte del sistema base (tal como tcsh) y shells que estan disponibles como ports (por ejemplo shells/zsh). Por favor, tenga en cuenta que algunos ports cuentan con una licencia que no permite su inclusión en el CDROM. Probablemente esto es a consecuencia de un registro que se debe hacer previo a la descarga, así mismo algunos no permiten su re-distribución, y tal. Si desea instalar un port que no se encuentra en el CDROM, deberá encontrarse conectado a Internet, para poder hacerlo (vea la siguiente sección). Instalando Ports desde Internet Como en la sección anterior, en este sección se asume que usted cuenta con una conexión activa a Internet. Si no es así, deberá de llevar a cabo la instalación por - medio de CDROM, como se menciono - anteriormente. + medio de CDROM, o ponga una copia del + distfile en /usr/ports/distfiles manualmente. El instalar un port desde Internet, se hace exactamente de la misma forma que se hace desde un CDROM. La única diferencia entre estos dos metodos, es que el fichero distfile es descargado de Internet, en lugar de tomarlo del CDROM. Los pasos que implica son identicos: &prompt.root; make install >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/. Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100% 439860 bytes transferred in 18.0 seconds (23.90 kBps) ===> Extracting for lsof-4.57 ... [extraction output snipped] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [configure output snipped] ... ===> Building for lsof-4.57 ... [compilation output snipped] ... ===> Installing for lsof-4.57 ... [installation output snipped] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: This port has installed the following binaries which execute with increased privileges. &prompt.root; Como puede ver, la única diferencia es la línea que indica de donde esta descargando el sistema el código. El sistema de ports utiliza &man.fetch.1; para descargar los ficheros, que hace uso de varias variables de entorno, como son FTP_PASSIVE_MODE, FTP_PROXY, y FTP_PASSWORD. Puede ser necesario que modifique una o más de estas, si se encuentra detrás de un cortafuegos (firewall), o si requiere usar de un proxy FTP/HTTP. Vea la página de ayuda &man.fetch.3; para una lista completa de las opciones. + + La opción make fetch + se provee para usuarios que no pueden estar conectados constantemente. + Solo se tiene que ejecutar el comando en /usr/ports + y los ficheros requeridos serán descargados. Este comando funciona + también en subdirectorios, por ejemplo: /usr/ports/net. + Si el port tiene dependencias en librerias u otros ports, esta orden + no descargará los distfiles de estos ports. + Remplace fetch por fetch-recursive + si se quiere descargar las dependencias de otro port. + + Es posible compilar los ports por categoria, o todos si se desea, + ejecutando la orden make en /usr/ports + usando el ya descrito método de makefetch + . Esto puede resultar peligroso ya que algunos ports no pueden + coexistir. En otros casos, algunos ports pueden instalar dos diferentes + ficheros bajo el mismo nombre. + + Puede darse el caso que se necesite descargar los tarballs de otro sitio + diferente a MASTER_SITES (de donde se descargan los + ficheros). Es posible renombrar la opción MASTER_SITES + de la siguiente manera: + + &prompt.root; cd /usr/ports/directory + &prompt.root; make MASTER_SITE_OVERRIDE= \ + ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch + + En este ejemplo cambiamos la opción MASTER_SITES + a ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/. + + Algunos ports permiten (o requieren) que se provea opciones de + compilación que pueden habilitar/deshabilitar partes de la + aplicación que no son necesarias, algunas opciones de seguridad + y otros arreglos. Algunos ejemplos de estos son + www/mozilla, security/gpgme y + mail/sylpheed-claws. Se notificará + con un mensaje cuando opciones como estas estan disponibles. + + + + Rehubicando el directorio de Ports + + Algunas veces es útil (o necesario) usar diferentes distfiles y + directorio de ports. Las variables PORTSDIR y + PREFIX pueden sustituir los recursos por defecto. Por ejemplo: + + &prompt.root; make PORTSDIR=/usr/home/example/ports install + Esto compilará el port en + /usr/home/example/ports y lo + instalará en /usr/local. + + &prompt.root; make PREFIX=/usr/home/example/local install + Esto compilará el port en /usr/ports y lo + instalará en /usr/home/example/local. + + Y claro, + + &prompt.root; make PORTSDIR=../ports PREFIX=../local install + + Combinará los dos (demasiado largo para escribirlo completamente, + pere debe darle una idea general). + + Es posible también cambiar estas variables como parte su su entorno. + Lea el manual de su consola (shell) para hacerlo. + + + + Usando <command>imake</command> + + Algunos ports que usan imake (como parte del Sistema + X Windows) no funcionan correctamente con PREFIX, e + insistirá en instalar en /usr/X11R6. Al igual, + algunos ports de Perl ignoran PREFIX e instalan en el + árbol de Perl. Hacer que estos ports respeten PREFIX + es una tarea difícil y hasta imposible. + Eliminando Ports Instalados ports eliminando Ahora que sabe instalar ports, probablemente se este preguntando como eliminarlos, sólo en caso de que haya instalado alguno y posteriormente se de cuenta que ha instalado el port incorrecto. Vamos a eliminar el port instalado (que era lsof, para todos aquellos que no prestaron atención). Como cuando instalamos ports, lo primero que debemos hacer es ubicarnos en el directorio del port que deseamos eliminar, que en este caso es /usr/ports/sysutils/lsof. Una vez que se ha ubicado en este directorio, estamos listos para eliminar lsof. Esto se hace con el comando make deinstall: &prompt.root; cd /usr/ports/sysutils/lsof &prompt.root; make deinstall ===> Deinstalling for lsof-4.57 Esto fué sencillo. Ha eliminado lsof de su sistema. Si desea reinstalarlo, lo puede hacer al ejecutar make reinstall estando en el directorio /usr/ports/sysutils/lsof. Los comandos make deinstall y make reinstall no funcionan una vez que ha ejecutado el comando make clean. Si desea desintalar un port, una vez que ha ejecutado make clean, deberá hacer uso del comando &man.pkg.delete.1; como se describe en la sección de Paquetes del Handbook. Actividades Post-Instalación Una vez que ha instalado una nueva aplicación, normalmente deberá leer la documentación incluida, editar los ficheros de configuración necesarios, asegurarse de que la aplicación se ejecute al arrancar el sistema (si es un daemonio), etc. Obviamente los pasos exactos para configurar cada aplicación varian de una a otra. De cualquier forma, si recien ha instalado una nueva aplicación y se pregunta ¿Y ahora qué?, estos consejos puede que le sean de ayuda: Use &man.pkg.info.1; para ver que ficheros se instalaron y donde. Por ejemplo, si recien instaló el paquete FooPackage 1.0.0, el siguiente comando: &prompt.root; pkg_info -L foopackage-1.0.0 | less le mostrará los ficheros instalados por el paquete. Preste especial atención a los ficheros en el directorio man/ que son las páginas de ayuda y los del directorio etc/, que contiene los ficheros de configuración, y bajo el directorio doc/ podrá encontrar información más detallada. Si no esta seguro de cual es la versión del paquete instalado, simplemente teclee algo así &prompt.root; pkg_info | grep foopackage y le mostrara todos los paquetes que tienen como nombre foopackage. Reemplace foopackage de acuerdo a sus necesidades en la línea de comandos. Una vez que ha identificado donde se localizan las paginas de ayuda de la aplicación, reviselas usando &man.man.1;. De forma similar revise los ficheros de configuración de ejemplo (N. de T. Generalmente estos ficheros son aquellos que tienen la terminación .sample), así como cualquier documentación adicional que se incluya. Si la aplicación cuenta con un sitio web, visitelo en busca de documentación adicional, ficheros de preguntas frecuentes (FAQ), etc. Si no esta seguro del sitio web, vea la salida del comando &prompt.root; pkg_info foopackage-1.0.0 este incluye en ocasiones una línea WWW:, que describe el sitio web de la aplicación. Resolución de Problemas La siguiente sección cubre algunas de las preguntas más frecuentes relacionadas a la colección de ports, y algunas técnicas básicas para la resolución de problemas, así como que hacer si encontramos un port roto. Algunas Preguntas y Respuestas ¿Qué no es una discusión acerca de módems? Ah, usted debe estar pensando en puertos (ports) seriales, que se encuentran en la parte trasera de su computadora. Aqui nos referimos al término port como resultado de aquellas aplicaciones que han sido portadas de una versión de Unix a otra. ¿Qué es un parche (patch)? Una parche (patch), es un pequeño fichero que especifíca como ir de una versión a otra. Contiene texto plano y cuenta con indicaciones similares a delete line 23 (borrar la línea 23), add these two lines after line 468 (añadir estas dos líneas después de la línea 468), o change line 197 to this (cambiar la línea 197 por esto). Tambié son conocidos como ficheros diff, ya que son generados por el programa &man.diff.1;. tarball ¿Qué es eso de tarballs? Es un fichero con extensión .tar o con alguna variación tal como .tar.gz, .tar.Z, .tar.bz2, o incluso .tgz. Básicamente, es un árbol de directorio, que ha sido archivado en un solo fichero (.tar) y en ocasiones comprimido (.gz). Esta técnica se uso originalmente para archivar en cintas (que es de donde proviene su nombre; Tape ARchives), pero es ampliamente usado para distribuir código fuente por todo Internet. Usted puede ver que ficheros se encuentran archivados, o incluso extraerlos usando el programa estandar de Unix &man.tar.1;, que se incluye con el sistema base de FreeBSD, de la siguiente manera: &prompt.user; tar tvzf foobar.tar.gz &prompt.user; tar xzvf foobar.tar.gz &prompt.user; tar tvf foobar.tar &prompt.user; tar xvf foobar.tar checksum ¿Y un checksum? Es un numero generado por la suma de los datos en el fichero que desea consultar. Si alguno de los caracteres cambia, el checksum ya no será igual al total, de tal suerte que esta simple comparación le permite detectar una diferencia. He hecho lo que se indica para compilar ports desde un CDROM y funciona de maravilla hasta que he intentado instalar el port de Kermit. &prompt.root; make install >> cku190.tar.gz doesn't seem to exist on this system. >> Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/. ¿Por qué no lo puede encontrar? ¿Acaso tengo un CDROM defectuoso? Como se explico en la sección Instalando Ports desde un CDROM, algunos ports no se pueden incluir en CDROM, debido a restricciones de licenciamiento. Kermit es un ejemplo de esto. Los términos de la licencia de Kermit, no permiten su inclusión en el CDROM, así que tendrá descargarlo a mano, una disculpa!. La razón por la cual obtiene esos mensajes de error, es por que no cuenta con una conexión a Internet en ese momento. Una vez que lo haya descargado de alguno de los sitios disponibles (MASTER_SITES listados en el fichero Makefile), puede continuar con el proceso de instalación. Ya hice esto, pero cuando intento guardarlo en el subdirectorio /usr/ports/distfiles obtengo un error diciendo algo acerca de que no cuento por los permisos. El sistema de ports, descarga los ficheros tarball, en el subdirectorio /usr/ports/distfiles, pero muchos administradores de sistema crean un enlace de este directorio a un servidor remoto o a una unidad local de CDROM de solo lectura. Si esta es su situación, entonces deberá especificar un directorio diferente para guardar sus ficheros distfiles, con el siguiente comando: &prompt.root; make DISTDIR=/directorio/local/con/permisos/de/escritura install ¿El esquema de ports trabaja solamente si se tiene todo en /usr/ports? Mi administrador de sistema dice que todo lo debo tener en /u/people/guests/wurzburger, pero parece que no funciona de esta manera. Puede usar las variables PORTSDIR y PREFIX, para indicarle al mecanismo de ports que directorios utilizar. Por ejemplo; &prompt.root; make PORTSDIR=/u/people/guests/wurzburger/ports install compilará el port en /u/people/guests/wurzburger/ports e instalará todo bajo el directorio /usr/local. &prompt.root; make PREFIX=/u/people/guests/wurzburger/local install compilará todo en /usr/ports e instalará todo bajo el directorio /u/people/guests/wurzburger/local. Y claro esta que, &prompt.root; make PORTSDIR=../ports PREFIX=../local install combinará ambos (lo cual es muy largo para escribir aqui, pero debe darnos una buena idea). imake Algunos ports que usan &man.imake.1; (una parte del Sistema de Ventanas X) no trabajan bien con PREFIX, e insistiran en instalar todo bajo /usr/X11R6. De forma similar, algunos ports de Perl ignoran la variable PREFIX y proceden a instalar bajo el árbol de Perl. Hacer que estos ports respeten la variable PREFIX es una tarea difícil si no imposible. Si no le agrada estar tecleando todo esto cada vez que desea instalar un port, es una buena idea incluir estas variables en sus variables de entorno. Lea la documentación de su shell para ver las instrucciones para hacer esto. No cuento con un CDROM de FreeBSD, pero me gustaría contar con todos los ficheros tar a la mano en mi sistema, para no tener que descargarlos cada vez que deseo instalar un port. ¿Hay alguna forma de obtener todos de una sola vez? Para obtener todos y cada uno de los ficheros tar de la Colección de Ports, haga lo siguiente: &prompt.root; cd /usr/ports &prompt.root; make fetch Para todos los tarball de un directorio concreto haga: &prompt.root; cd /usr/ports/directorio &prompt.root; make fetch y para un solo port—bueno, quizás ya lo adivinó. Tengo conocimiento de que probablemente es más rápido descargar los ficheros tarball desde un servidor réplica (mirror) de FreeBSD, más cercano. ¿Existe alguna forma de indicarle al port que descargue los ficheros de un servidor diferente a los listados en MASTER_SITES?. Claro. Por ejemplo, si usted sabe que ftp.FreeBSD.org esta más próximo que los servidores listados en MASTER_SITES, haga lo siguiente: &prompt.root; cd /usr/ports/directorio &prompt.root; make MASTER_SITE_OVERRIDE= \ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch Quisiera saber cuales son los ficheros que make va a necesitar antes de los descargue. make fetch-list desplegara una lista de los ficheros necesarios para la compilación del port. ¿Existe alguna forma de detener la compilación del port? Deseo editar un poco el código, antes de instalarlo, pero es un poco cansado tener que verlo y pulsar Ctrl C a cada momento. Puede usar el comando make extract, con el cual se detendra el proceso, una vez que se han descargado y extraido los ficheros necesarios. Estoy tratando de hacer mi propio port, y quiero poder detener el proceso, hasta que verifique que mis parches funcionan correctamente. ¿Existe algo similar a make extract, pero para parches? Si, make patch es lo que usted busca. Quizás la opción PATCH_DEBUG le sea de gran utilidad. Y por cierto, gracias por su esfuerzo! He escuchado que algunas opciones del compilador pueden causar errores. ¿Es cierto? ¿Cómo puedo asegurarme de compilar los ports con las opciones correctas? Si, con la versión 2.6.3 de gcc (que es la versión distribuida con FreeBSD 2.1.0 y 2.1.5), la opción puede ocasionar un código con errores, a menos que utilice también la opción (la mayoría de los ports no hacen uso de la opción ). Usted debe poder indicarle al compilador las opciones, con algo similar a: &prompt.root; make CFLAGS='-O2 -fno-strength-reduce' install o bien, editando el fichero /etc/make.conf, pero desafortunadamente no todos los ports respetan esto. La mejor forma es ejecutar make configure, y después dirijirse al directorio con el código fuente e inspeccionar y editar el fichero Makefile, pero esto puede ser tedioso si se cuenta con muchos subdirectorios, y en cada uno su propio fichero Makefile. Lac opciones que por default utiliza el compilador de FreeBSD son muy conservadoras, por lo que si no las ha modificado, no debe tener problemas. Existen muchos ports y es difícil encontrar el que quiero. ¿Existe en algún lado una lista de los ports disponibles? Vea el fichero INDEX, localizado en /usr/ports. Si desea, también puede buscar en la Colección de Ports por medio de una palabra clave. Por ejemplo, puede encontrar ports relevantes al lenguaje de programación LISP usando: &prompt.user; cd /usr/ports &prompt.user; make search key=lisp Deseo instalar el port foo pero de repente el sistema se detuvo y comenzo a compilar el port bar. ¿Qué esta pasando? El port foo necesita algo del port bar — por ejemplo, si foo utiliza gráficos, es posible que bar cuente con librerías con rutinas para procesar gráficos. O bien bar puede ser una herramienta necesaria para compilar el port foo. He instalado el programa grizzle desde los ports y francamente es un desperdicio de espacio en disco. Quiero eliminarlo, pero no se donde se instalaron sus ficheros. ¿Alguna pista? No hay problema, simplemente teclee: &prompt.root; pkg_delete grizzle-6.5 Otra alternativa es teclear: &prompt.root; cd /usr/ports/cualquierlugar/grizzle &prompt.root; make deinstall Aguarda un momento, ¿Se supone que uno debe saber el numero de versión para usar este comando? Hablando en serio, no esperas que recuerde todo esto, ¿o si? No del todo, lo puede saber haciendo: &prompt.root; pkg_info -I 'grizzle*' Information for grizzle-6.5: grizzle-6.5 - the combined piano tutorial, LOGO interpreter and shoot 'em up arcade game. El numero de versión se puede saber usando el comando pkg_info o bien al teclear: ls /var/db/pkg Hablando de espacio en disco, el directorio de ports parece que ocupa mucho espacio. ¿Es seguro eliminar algo de este directorio? Asi es, si ha instalado un programa y esta seguro de que ya no necesita el código fuente, no hay una razón para contar con él. La forma más segura de hacer esto es: &prompt.root; cd /usr/ports &prompt.root; make clean este comando revisará todos los subdirectorios, y procederá a eliminar todo lo que encuentre, salvo los esqueletos del port. Es posible que obtengamos el mismo efecto, pero sin que necesariamente se llame de forma recursiva a cada Makefile. Por ejemplo, puede eliminar directamente todos los subdirectorios work/ con el comando: &prompt.root; find /usr/ports -depth -name work -exec rm -rf {} \; He intentado eso y aun cuento con los tarballs o como se llamen, en el directorio distfiles. ¿Puedo eliminarlos también? Si, si esta totalmente seguro de que ha terminado con ellos, también los puede eliminar. Estos se pueden eliminar manualmente, o bien usando el comando make distclean. Me gusta contar con muchos, muchos programas para jugar con ellos. ¿Existe una forma de instalar todos los ports en un solo paso? Simplemente haga: &prompt.root; cd /usr/ports &prompt.root; make install Tenga cuidado, ya que algunos ports pueden instalar ficheros con el mismo nombre. En el caso de que instale dos programas de gráficos y que ambos instalen /usr/local/bin/plot obviamente le va ocasionar problemas. OK, he intentado esto, pero como supuse que tomaria mucho tiempo, lo deje corriendo y me fui a dormir. En la mañana al ver mi computadora, solo había terminado tres ports y medio. ¿He hecho algo incorrectamente?. No, el problema es que algunos ports requieren preguntarle cosas que no podemos contestar por usted (por ejemplo; ¿En qué tipo de papel desea imprimir, en A4 o en Carta?), y requieren de alguien que les dé respuesta. Realmente no me interesa pasar todo el dí frente al monitor. ¿Alguna mejor idea? OK, haga lo siguiente antes de irse a la cama/trabajo/el parque local: &prompt.root; cd /usr/ports &prompt.root; make -DBATCH install Con esta opción se instalarán todos los ports que no requieren intervención del usuario. Una vez que regrese, haga: &prompt.root; cd /usr/ports &prompt.root; make -DINTERACTIVE install para terminar el trabajo. En mi trabajo usamos frobble, que se encuentra la Colección de Ports, pero lo hemos editado un poco, para que se ajuste a nuestras necesidades. ¿Existe alguna forma de hacer nuestro paquete, para poder distribuirlo más facilmente en nuestros sitios?. No hay problema, asumiendo que usted sabe como crear los parches de sus cambios, puede hacer lo siguiente: &prompt.root; cd /usr/ports/algunlugar/frobble &prompt.root; make extract &prompt.root; cd work/frobble-2.8 [Aplicar sus parches] &prompt.root; cd ../.. &prompt.root; make package Esto de los ports es muy inteligente. Estoy deseperado por saber ¿Cúal es el secreto? No hay secreto, simplemente vea los ficheros bsd.port.mk y bsd.port.subdir.mk que se localizan en /usr/ports/Mk/. (Los lectores que tiene aversión a los scripts de shell, se les aconseja abstenerse de ver los ficheros de este directorio.) Ayuda! Este Port Esta Roto! (Broken) Si se encuentra con port que no trabaj como lo esperaba, existen varias alternativas, que incluyen: Arreglelo!! El libro Porter's Handbook incluye información detallada de la infraestructura de los "Ports", de tal forma que pueda arreglar los ports que ocasionalmente estan defectuosos o inclusive para crear y enviar su propio port! Notifiquelo—por correo solamente! Envie un correo a la persona que da mantenimiento al port. Teclee make maintainer o lea el Makefile para ver el correo de esta persona. Recuerde incluir el nombre y la versión del port (puede enviar la línea $FreeBSD: del Makefile) así como la salida del error que da el port. Si no obtiene respuesta de la persona que da mantenimiento al port, puede usar &man.send-pr.1; para enviar un reporte de error. Descargue el paquete de un servidor FTP cercano. La colección maestra de paquetes se localiza en ftp.FreeBSD.org en el directorio de paquetes, pero asegurese primero de verificar en un servidor réplica (mirror)!. Es mas seguro que estos trabajen, a que tener que compilar las fuentes, también es más rápido. Use el programa &man.pkg.add.1; para instalar paquetes en su sistema.