next up previous contents
Siguiente: Recursos Superior: El proyecto FreeBSD Anterior: Modelo de desarrollo

Subsecciones

Sistemas de creación

Sinopsis

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.

Compilación world

``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.

Sistema de ports

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.

Compilación Ports

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=    ache@FreeBSD.org

 

GNU_CONFIGURE= yes

MAN1=          screen.1

 

post-install:

   @install-info ${PREFIX}/info/screen.info ${PREFIX}/info/dir

 

.include <bsd.port.mk>

Éste Makefile indica que se debe obtener el programa screen-3.9.5.tar.gz de uno de los MASTER_SITES (lo que incluye, en este caso, un número importante de mirrors gnu), y lo configura usando el configure de GNU.

La variable MAINTAINER indica que ache@FreeBSD.org 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.

Packages

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.

Creando www y doc

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, , 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/

Creando una Release

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.


next up previous contents
Siguiente: Recursos Superior: El proyecto FreeBSD Anterior: Modelo de desarrollo

Download this document: [src.tar.gz][ps.gz][html.tar.gz][dvi.gz]

Congreso HispaLinux 2000