Siguiente: Recursos Superior: El proyecto FreeBSD Anterior: Modelo de desarrollo |
FreeBSD usa una serie de sistemas de creaci�n eficientes e inteligentes para facilitar el desarrollo. Estos sistemas compilan el kernel, compilan la totalidad de ejecutables del sistema, la documentaci�n, los contenidos del web y la generaci�n de las releases o publicaciones que luego se distribuyen en CD-ROM o en el servidor ftp.
Estos sistemas utilizan el Make de Berkeley con algunas macros y variables propias. Esto significa que todas las operaciones mencionadas anteriormente pueden realizarse con una sola �rden, siendo la mayor�a extremadamente sencillas de usar y personalizar.
``make world'' es una de las herramientas m�s potentes que tiene FreeBSD. De hecho, es una de las caracter�sticas m�s apreciadas los usuarios. Con una s�la orden, se compilan e instalan la totalidad de binarios, librer�as y utilidades del sistema.
Actualmente, mucha gente usa dos mandatos, "make buildworld" y "make installworld". Estos mandatos aceptan variables como NO_SENDMAIL permitiendo especificar y personalizar las utilidades y/o programas a compilar y/o instalar.
Se puede encontrar una descripci�n completa del uso de "make world" en el manual de FreeBSD.
El sistema de ports es otra de las caracter�sticas principales de FreeBSD (y OpenBSD y NetBSD en menor grado). Con mas de 3000 ports en la colecci�n, �stos consisten en una serie de objetos, macros y variables que se combinan con los port skeletons para compilar e instalar programas en un sistema FreeBSD. Un port skeleton es, b�sicamente, una serie m�nima de archivos necesarios para poder compilar e instalar un programa en FreeBSD.
Los ports, en primer lugar, obtienen de Internet todo el c�digo fuente original del programa, aplican los parches necesarios incluidos en el port skeleton, configuran la compilaci�n, compilan el programa y lo instalan. Despu�s de la instalaci�n, el port es registrado en la base de datos local de packages. Los packages pueden compilarse con el objeto packages. Estos packages pueden instalarse directamente en un sistema FreeBSD usando pkg_add.
La potencia del sistema de ports es dif�cil de entender sin un ejemplo:
DISTNAME= screen-3.9.5
CATEGORIES= misc
MASTER_SITES= ftp://ftp.uni-erlangen.de/pub/utilities/screen/ \\
${MASTER_SITE_GNU}
MASTER_SITE_SUBDIR= screen
MAINTAINER= [email protected]
GNU_CONFIGURE= yes
MAN1= screen.1
post-install:
@install-info ${PREFIX}/info/screen.info ${PREFIX}/info/dir
.include <bsd.port.mk>
La variable MAINTAINER indica que [email protected] es la persona responsable de este port, siendo la direcci�n de contacto en caso de que sea necesario actualizar o fijar el port.
Hay mucho mas y este es un ejemplo muy simple. El manual de FreeBSD tiene una secci�n sobre los ports que los trata en profundidad e incluso, explica como hacer tu mismo un port.
Un package es un programa ya compilado y listo para ser instalado con las herramientas de gesti�n de packages (pkg_add(1), pkg_delete(1), etc). Su equivalente m�s conocido ser�an los .rpm de Linux. Los packages son compilados a partir de los ports, por lo que existen tantos packages como ports.
La documentaci�n de FreeBSD y el contenido del servidor web, usan el mismo tipo de sistemas para crearse, convirtiendo documentos SGML/DocBook y otros formatos en HTML (para el web), postcript, TEX, rtf y otros formatos.
Los HTML se mantienen en el servidor web del proyecto FreeBSD mientras que los otros formatos est�n disponibles en el servidor ftp de FreeBSD.
http://www.freebsd.org
ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Una release en FreeBSD es crear la distribuci�n que luego aparece en los servidores FTP y en los CD-ROM para la instalaci�n del sistema. El objeto release (make release) permite generar una release completa, incluyendo toda la documentaci�n, disquetes (boot, root y fixit), kernels, CD-ROM y distribuciones para FTP.