Renuncia de responsabilidad:
Este documento ya no es válido y carece de soporte.
|
Guía concisa de Gentoo/FreeBSD
1.
Introducción a FreeBSD
¿Qué es FreeBSD?
Importante:
Asegúrese de leer la página wiki page
de Gentoo/FreeBSD (en inglés) en la que se indican instrucciones
de instalación actualizadas.
|
FreeBSD es un Sistema
Operativo libre estilo Unix (vea la licencia).
De regreso a 1993 cuando el desarrollo de 386BSD se detuvo, nacieron dos
proyectos: NetBSD,
normalmente conocido por correr en un gran número de arquitecturas y
FreeBSD que soporta las arquitecturas x86, amd64, ia64, sparc64 y
alpha. FreeBSD tiene fama por su estabilidad, rendimiento y seguridad,
por lo tanto es usado en pequeñas y hasta en las más grandes compañías
de todo el mundo.
La versión actual de producción de FreeBSD es la 7.1. Gentoo/FreeBSD
está basado en la versión 6.2 y las versiones anteriores de
Gentoo/FreeBSD están descontinuadas y ya no tienen soporte.
¿Qué es Gentoo/FreeBSD?
Gentoo/FreeBSD es un
subproyecto del Proyecto
Gentoo/Alt (Gentoo en plataformas alternativas), cuyo objetivo
es proporcionar un sistema operativo FreeBSD completo con
características propias del diseño de Gentoo Linux, tales como el
sistema de inicio (init) y el sistema de gestión de paquetes Portage.
FreeBSD y Linux
Los usuarios que migran desde Linux a FreeBSD normalmente consideran a
los dos sistemas operativos "casi lo mismo". De hecho, FreeBSD
realmente comparte muchas similitudes con las distribuciones de Linux
en general. Sin embargo, tiene algunas diferencias claves que son
dignas de señalar:
-
A diferencia de Linux, que en realidad se refiere solo al núcleo,
FreeBSD por su parte es un sistema operativo completo, que
consiste de una biblioteca C, herramientas del espacio del usuario
(userland tools) y mucho más. Este enfoque de desarrollo hace muy
consistente el sistema global.
-
A diferencia de Linux, el desarrollo de FreeBSD no está liderado
por una persona sino que es administrado por un pequeño grupo de
personas llamados el
Equipo Central (Core Team).
Además, FreeBSD también posee algunas diferencias técnicas que lo
distinguen de Linux. Algunas de ellas son muy importantes de conocer,
incluso si no tiene intenciones de unirse al esfuerzo de desarrollo de
Gentoo/FreeBSD:
-
Para obtener las funciones de enlazado dinámico en tiempo de
ejecución como dlopen(), los programas no necesitan estar
enlazados contra libidl como pasa en GNU/Linux. En cambio se
enlazan contra libc.
-
FreeBSD no tiene una herramienta oficial para la compilación del
núcleo, por lo tanto tendrá que solucionar por si mismo las
dependencias de características.
-
FreeBSD usa UFS/UFS-2 como sus sistemas de archivos y no tiene
soporte oficial para, por ejemplo, ReiserFS o XFS. No obstante,
hay proyectos para añadir soporte de solo lectura para esos
sistemas de archivos. Ya es posible acceder a particiones
ext2/ext3 pero no puede instalar su sistema en ellas.
2.
Instalar Gentoo/FreeBSD
Arrancar el CD
Luego de esta breve introducción, finalmente es hora de instalar
Gentoo/FreeBSD. Desafortunadamente carecemos de nuestro propio medio
de instalación, así que debe elegir entre dos métodos alternativos. El
primero sería usar una instalación existente de FreeBSD para
particionar su disco duro y usarla como base para instalar
Gentoo/FreeBSD. Esta guía describirá como usar el LiveCD FreeSBIE como medio de
instalación para Gentoo/FreeBSD.
Nota:
Si tiene intención de usar FreeSBIE para instalar Gentoo/FreeBSD, por
favor asegúrese de utilizar una versión basada en FreeBSD 6.x, como
FreeSBIE 2.0 (o una versión candidata previa al lanzamiento). Se puede
descargar del tracker
Bittorrent de FreeSBIE.
|
Primero, arranque desde el CD para comenzar el proceso de
instalación. Se le presentará una pantalla de login. El nombre de
usuario que debe ingresar es freesbie y no requiere
clave. Luego, ejecute sudo su para convertirse en el usuario
root y opcionalmente cree su clave. Si desea pasar el tiempo durante
la instalación, puede ejecutar startx para entrar en un entorno
gráfico Xfce, apto para navegar en la red, hacer chat con AIM y
demás. A diferencia de Linux, FreeBSD basa el nombre del interfaz en
el nombre del manejador del interfaz. Por ejemplo, el manejador para
el interfaz Intel EtherExpress (fxp) aparece como fxp0 (manejador fxp,
primera tarjeta de red). Para ver cuál es su interfaz, use
ifconfig:
Listado de Código 2.1: Averiguar el interfaz de red con ifconfig |
# ifconfig
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet6 fe80::2d0::b7ff:febc:4fe3%fxp0 prefixlen 64 scopeid 0x1
inet 192.168.0.106 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:d0:b7:bc:4f:e3
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
lo0: flags=8007<LOOPBACK,MULTICAST> mtu 16384
|
Si la petición original de DHCP durante el arranque ha fallado, podrá
usar la orden dhclient para obtener un número IP:
Listado de Código 2.2: Obtener una dirección con DHCP usando dhclient |
# dhclient fxp0
DHCPDISCOVER on fxp0 to 255.255.255.255 port 67 interval 9
DHCPOFFER from 192.168.0.1
DHCPREQUEST on fxp0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
bound to 192.168.0.106 -- renewal in 302400 seconds
|
Nota:
La salida presentada aquí podría ser distinta, basada en su red.
|
Particionar el disco
Ahora que tenemos un punto de montaje, es hora de particionar el disco
duro. Esto se hace con la orden sysinstall:
Listado de Código 2.3: Ejecutar la orden sysinstall para particionar el disco |
# sysinstall diskPartitionEditor diskPartitionWrite
|
Recomendamos usar el patrón por defecto de particiones. Pulse intro en
la caja de diálogo, luego pulse a seguido por q para
aceptar la disposición por defecto. La siguiente pantalla presentará
una opción de gestor de arranque, para la cual escoja la opción
"None", ya que estaremos instalándolo más adelante. Después viene la
definición de los tamaños de las particiones y los puntos de montaje.
El siguiente paso también usa sysinstall, pero con parámetros
diferentes:
Listado de Código 2.4: Usar sysinstall para configurar las particiones y puntos de montaje |
# sysinstall diskLabelEditor diskLabelCommit
|
Aquí no aprovecharemos la disposición automática de particionamiento y
crearemos una gran partición raíz y una de intercambio. Pulse c
para crear una nueva partición. En la caja de diálogo, coloque el
tamaño, usando MB/GB para especificar tamaños o C para especificar
cilindros. Para la partición raíz, escoja FS para el tipo de partición
y configure el punto de montaje como /mnt/. Si no
coloca el punto de montaje, ¡sobreescribirá el entorno de
FreeSBIE! Como /boot no será una partición separada,
deberá desactivar los "soft-updates" o sino ¡el sistema no arrancará!
Para hacer esto use las flechas del teclado para navegar a la
partición recién creada y pulse la tecla s hasta que "Newfs" no
contenga +S. Ahora navegue con las flechas hasta iluminar la
línea "Disk" y pulse la tecla c de nuevo para crear una
partición de intercambio. Generalmente, recomendamos una partición del
doble de la memoria RAM disponible. Escoja SWAP como tipo de partición
y no se preocupe por los "soft-updates", ya que no aplican a este tipo
de partición. Ahora hemos terminado, así que pulse q para
concluir el proceso.
Al escoger un punto de montaje diferente a / para la
partición, sysinstall creará una partición 'd', desde la cual
el gestor de arranque no podrá arrancar. Para arreglar esto, ejecute:
Nota:
Por favor, asegúrese que ad0s1 esté desmontada antes de ejecutar la
siguiente orde, de otra forma no funcionará.
|
Listado de Código 2.5: Arreglar la letra de la partición raíz |
# disklabel ad0s1 | sed 's/^ d:/ a:/' | disklabel -R ad0s1 /dev/stdin
|
Con esto concluye el proceso de particionamiento y formatea el disco
en UFS para ser utilizada por FreeBSD. También montará el disco en el
punto de montaje especificado anteriormente
(/mnt/). Puede verificar que funcionó ejecutando
mount:
Listado de Código 2.6: Verificar el montaje de las particiones con mount |
# mount
...
/dev/ad0s1a on /mnt (ufs, local)
|
Ahora que hemos montado la partición, es hora de comenzar con la
configuración de Gentoo.
Configuración de Gentoo
Primero debemos descargar un archivo stage3 comprimido y desempaquetarlo
en el chroot. Apunte el navegador a
http://distfiles.gentoo.org/experimental/x86/freebsd/stages/,
descargue la imagen más reciente y desempaquétela en el punto de
montaje:
Listado de Código 2.7: Obtener y descomprimir un tarball con stage3 |
# cd /mnt/
# wget http://distfiles.gentoo.org/experimental/x86/freebsd/stages/stage3-x86-freebsd-6.2-r1.tar.bz2
# tar -jxvpf stage3-x86-freebsd-6.2-r1.tar.bz2
# rm stage3-x86-freebsd-6.2-r1.tar.bz2
|
Nota:
Si desea, puede usar el "overlay" transicional con ebuilds
semi-experimentales y parches que todavía no se están en el árbol
principal de Portage, pero que al mismo tiempo, permite mayor amplitud
en lo que respecta paquetes soportados. Por favor, vea la
documentación del overlay Gentoo/ALT. Por favor note que el overlay
no es imprescindible y se puede fácilmente instalar y usar Gentoo/FreeBSD
sin usarlo.
|
Para que la instalación funcione, hará falta montar el sistema de
archivos /dev del sistema anfitrión al punto de montaje
correspondiente en el Gentoo/FreeBSD antes de continuar con el entorno
enjaulado.
Listado de Código 2.8: Montar el sistema de archivos /dev y entrar al chroot |
# mount -t devfs none /mnt/dev/
# cp /etc/resolv.conf /mnt/etc/
# chroot /mnt/ /bin/bash
# env-update && source /etc/profile
|
Después de obtener el overlay Gentoo/FreeBSD es hora de enlazar
/etc/make.profile al perfil correcto y preparar el
/etc/portage/make.conf para Gentoo/FreeBSD.
Ahora debe obtener una copia del árbol principal de Portage de Gentoo,
el cual, dependiendo de su conexión, podría tomar bastante tiempo.
Listado de Código 2.9: Obtener el árbol Portage |
# emerge --sync
# cd /
# wget http://distfiles.gentoo.org/snapshots/portage-latest.tar.bz2
# tar -xjf portage-latest.tar.bz2 -C /usr/
# emerge --metadata
|
Listado de Código 2.10: Configurar el perfil y editar /etc/portage/make.conf |
# ln -sf /usr/portage/profiles/default-bsd/fbsd/6.2/x86/ /etc/make.profile
# nano /etc/portage/make.conf
CHOST="i686-gentoo-freebsd6.2"
FEATURES="collision-protect"
|
Nota:
La palabra clave ~x86-fbsd todavía no cubre completamente el
mismo árbol que ~x86; pero, le pedimos por favor no
coloque ~x86 en ACCEPT_KEYWORDS. Más bien, use
/etc/portage/package.accept_keywords para probar paquetes y
reportar los que funcionen a través del Bugzilla.
|
Si lo desea, ahora puede recompilar los paquetes centrales del
sistema.
Listado de Código 2.11: Recompilar los paquetes centrales de FreeBSD (opcional) |
# emerge -e system
|
3.
Configurar el arranque
Configurar la zona horaria
Primero asegúrese que la fecha y la hora estén correctos, usando
date aaaammddHHMM. Use la hora UTC.
Listado de Código 3.1: Ajustar la fecha y hora UTC |
# date
Mon Mar 6 00:14:13 UTC 2006
# date 200603060016
Mon Mar 6 00:16:00 UTC 2006
|
Luego ajuste su zona horaria usando el listado correcto en
/usr/share/zoneinfo.
Listado de Código 3.2: Ajustar la zona horaria |
# ls /usr/share/zoneinfo
# cp /usr/share/zoneinfo/Europe/Brussels /etc/localtime
# date
Wed Mar 8 00:46:05 CET 2006
|
Edite /etc/timezone para definir la zona horaria utilizada
previamente.
Listado de Código 3.3: Editar /etc/timezone |
# nano -w /etc/timezone
Europe/Brussels
|
Instalación del núcleo
Si ejecutó emerge -e system, las fuentes del núcleo de FreeBSD
se instalaron en el directorio /usr/src/sys. Si saltó
este paso puede obtenerlas así:
Listado de Código 3.4: Obtener las fuentes del núcleo de FreeBSD |
# emerge freebsd-sources
|
El configurar y compilar un núcleo personalizado es bastante diferente
que hacerlo en Linux, así que, si no está familiarizado con el
proceso, lo animamos a que le dé una mirada al
capítulo 8 del manual de FreeBSD.
Importante:
Por favor, note que actualmente ¡solo está soportada la forma
"Tradicional" de compilar el núcleo en Gentoo/FreeBSD!
|
Listado de Código 3.5: Ingresar al directorio de fuentes del núcleo |
# cd /usr/src/sys/
|
Examinando la disposición, podemos ver varias arquitecturas y
subdirectorios para distintas partes del núcleo. Para comenzar la
instalación, nos dirigimos al directorio i386/conf/:
Listado de Código 3.6: El directorio de configuración del núcleo |
# cd i386/conf/
# ls
.cvsignore GENERIC Makefile PAE
DEFAULTS GENERIC.hints NOTES SMP
|
Los principales archivos a notar son GENERIC y
GENERIC.hints. Como será necesitado para la instalación
del núcleo, copie el archivo GENERIC.hints a
/boot/device.hints:
Listado de Código 3.7: Copiar el archivo GENERIC.hints |
# cp GENERIC.hints /boot/device.hints
|
Este archivo es usado por los manejadores del núcleo para obtener
información básica de configuración, como ajustes IRQ. Ahora ha
llegado el momento de configurar el núcleo. FreeBSD usa la orden
config para hacer esto. config usa el archivo dado (en
este caso GENERIC) para copiar todos los archivos requeridos a un
directorio compile en el directorio padre. El archivo
GENERIC es similar al .config para el
núcleo Linux. Ejecute config para producir el directorio de
construcción del núcleo:
Listado de Código 3.8: Configurar la construcción del núcleo |
# config GENERIC
Kernel build directory is ../compile/GENERIC
Don't forget to ''make cleandepend; make depend''
|
config ha creado un directorio para construir un núcleo GENERIC
para nosotros en el directorio padre. Entre con cd y ejecute lo
siguiente para llevar a cabo la construcción:
Listado de Código 3.9: Construir e instalar el núcleo |
# cd ../compile/GENERIC
# make cleandepend && make depend && make && make install
|
Esto producirá un núcleo completo con el cual trabajar. Ahora
necesitamos configurar el gestor de arranque para que el núcleo
arranque. En el siguiente capítulo discutiremos dos métodos de
configurar el gestor de arranque: boot0 y grub.
Configurar el gestor de arranque (boot0)
Importante:
boot0 es el gestor de arranque de FreeBSD. Previamente era el
único soportado, hasta la introducción de grub en el sistema
ports con soporte para particiones UFS. Para instalar y configurar
boot0, ejecute la siguiente orden. Recuerde reemplazar
adXsY con el verdadero número y partición del disco.
|
Listado de Código 3.10: Instalar y configurar boot0 |
# emerge boot0
# exit
# fdisk -B -b /mnt/boot/boot0 /dev/adX
# chroot /mnt/ /bin/bash
# disklabel -B adXsY
|
Si requiere más información acerca de la configuración de boot0,
por favor consulte el
capítulo 12 del manual FreeBSD. Ahora debemos hacer algunas
configuraciones y ajustes básicos.
En la siguiente sección, veremos como usar el gestor de arranque
alternativo, grub.
Configurar el gestor de arranque (grub)
A partir de la versión 0.97-r1 de grub, las particiones UFS pueden ser
leídas por grub. Esto permite que usemos grub como
nuestro gestor de arranque, el cual es el método preferido por los que
vienen desde Linux. Para empezar, hagamos emerge grub y
configuremos la partición como arrancable. Recuerde reemplazar
adXsY con el verdadero número y partición del disco.
Listado de Código 3.11: Instalar grub |
# emerge grub
# disklabel -B adXsY
|
Ahora ejecute grub y obtenga una línea de comandos, para
configurar la partición de la siguiente manera:
Listado de Código 3.12: Configurar grub |
# sysctl kern.geom.debugflags=16
# grub
grub> root (hd0,0,d)
Filesystem type is ufs2, partition type 0xa5
grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/ufs2_stage1_5" exists... yes
Running "embed /boot/grub/ufs2_stage1_5 (hd0)"... 14 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+14 p (hd0,0,d)/boot/grub/stage
2 /boot/grub/menu.lst"... succeeded
Done.
grub> quit
|
Para hacer que el cargador ubique el núcleo en una partición en
específico (por defecto busca la 'a'), agregue una línea con
vfs.root.mountfrom al archivo /boot/loader.conf:
Listado de Código 3.13: Digámosle al cargador dónde buscar el núcleo |
# echo 'vfs.root.mountfrom="ufs:ad0s1d"' >> /boot/loader.conf
|
Al arrancar por primera vez, tal vez no reciba un menú grub. Si es
así, ejecute esto en la línea de comandos:
Listado de Código 3.14: Arrancar el núcleo sin menú |
grub> find /boot/grub/stage1
(hd0,0,d)
grub> kernel (hd0,0,d)/boot/loader
[FreeBSD-a.out, loadaddr=0x200000, text=0x1000, data=0x3a000, bss=0x0, entry=0x200000]
grub> boot
|
Nota:
Para más información acerca de la configuración de grub, por favor
consulte el Manual
Gentoo Linux.
|
Aviso:
Grub no sigue los enlaces simbólicos de UFS, así que asegúrese de
borrar el enlace /boot/grub/menu.lst y usar el archivo
menu.lst para configurar a (no se hace uso de
grub.conf).
|
Configuración del sistema
Primero, vamos a configurar los puntos de montaje de los sistemas de
archivos en /etc/fstab.
Listado de Código 3.15: Editar el sistema de archivos en /etc/fstab |
# nano /etc/fstab
#Device Mountpoint Fstype Options Dump Pass
/dev/adXsYb none swap sw 0 0
/dev/adXsYa / ufs rw 1 1
/dev/adXsYe /usr/home ufs rw 2 2
/dev/adXsYd /tmp ufs rw 2 2
/dev/acdX /cdrom cd9660 ro,noauto 0 0
|
Ahora también sería bueno ajustar la conexión de red antes de
reiniciar. Puede encontrar toda la información necesaria para
configurar la red en el Manual
Gentoo. Para que el interfaz esté activado al arrancar,
agréguelo al nivel de ejecución por defecto:
Listado de Código 3.16: Agregar su tarjeta de red al nivel de ejecución default |
# rc-update add net.fxp0 default
|
El nombre de su computadora puede ser cambiado en
/etc/conf.d/hostname.
Listado de Código 3.17: Ajustar el nombre de la computadora |
# nano /etc/conf.d/hostname
HOSTNAME="tux"
|
También debería configurar su nombre de dominio, lo que se hace en el
archivo /etc/conf.d/domainname:
Listado de Código 3.18: Configurar el nombre de dominio |
# nano /etc/conf.d/domainname
dns_domain_lo="homenetwork"
|
Si tiene un dominio NIS, debe definirlo en el archivo
/etc/conf.d/domainname:
Listado de Código 3.19: Configurar el nombre de dominio NIS |
# nano /etc/conf.d/domainname
nis_domain_lo="my-nisdomain"
|
Nota:
Para más información acerca de nombres de dominios y redes, por favor,
consulte el Manual
Gentoo y por favor lea la documentación en el archivo
/usr/share/doc/openrc-*/net.example.bz2.
|
En caso de que necesite usar otra disposición de teclado para su
idioma, tiene que configurar el valor correcto en
/etc/conf.d/syscons. El siguiente ejemplo usa la
disposición para el idioma castellano, así que tendrá que ajustarlo si
quiere usar otro.
Listado de Código 3.20: Cambiar la disposición del teclado (Opcional) |
# nano /etc/conf.d/syscons
KEYMAP="spanish.iso.acc"
|
Ahora ajuste la clave para el superusuario root y agregue otra
cuenta de usuario para su trabajo diario.
Listado de Código 3.21: Cambiar la clave del superusuario y agregar un nuevo usuario |
# passwd
# adduser
Username: fred
Full Name: Fred Smith
Uid (Leave empty for default):
Login group [fred]:
Login group is fred. Invite fred into other groups? []: wheel portage
Login class [default]:
Shell (sh bash tcsh csh esh ksh zsh sash nologin) [sh] bash
User password-based authentication [yes]
Use an empty password (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password: password goes here
Enter password again: retype it
Lock out the account after creation? [no]:
Username : fred
Password : *****
Full Name : Fred Smith
Uid : 1002
Class :
Groups : fred wheel portage
Home : /home/fred
Shell : /bin/bash
Locked : no
OK? (yes/no): yes
adduser: INFO: Sucessfully added (fred) to the user database
Add another user? (yes/no): no
Goodbye!
#
|
Felicitaciones, ha finalizado su instalación de Gentoo/FreeBSD y que
puede empezar a explorar luego de reiniciar. ¡Que se divierta!
Listado de Código 3.22: Reiniciar el sistema |
# exit
# reboot
|
4.
Desarrollar para Gentoo/FreeBSD
¿Cómo ayudar?
Hay muchas cosas en las que podría ayudar dependiendo de sus
habilidades y tiempo libre:
-
Trabajar en ebuilds vigentes: esto significa trabajar de cerca con
los mantenedores de ebuilds para crear parches o modificar ebuilds
de forma que puedan ser aceptados en el árbol principal.
-
Seguridad: si está involucrado en seguridad, ¡lo necesitamos!
Aunque seguimos y corregimos los anuncios de seguridad del
proyecto FreeBSD, siempre podemos contar con ayuda en esta área.
-
Contactos: necesitamos gente que pueda estar en contacto con
desarrolladores de FreeBSD para poder intercambiar parches y
discutir problemas varios y sus soluciones. Note que esto no
debería involucrar cualquier tipo de correo no solicitado
(spamming) en las listas de correo o canales de IRC.
-
Testing: cuanto más gente esté usando activamente Gentoo/FreeBSD,
mayor será la cantidad de bugs descubiertos, lo que nos ayuda a
mejorar la calidad del proceso de portar. Si es bueno describiendo
bugs o problemas, entonces definitivamente nos gustaría conocerle.
-
Otras áreas donde necesitamos ayuda: ebuilds de sistema, creación
de CDs de instalación, documentación, hacking del núcleo.
Problemas conocidos
En este instante todavía hay bastante problemas conocidos. Se nombran
a continuación los que valen la pena señalar:
-
Algunos guiones de inicio dependen del servicio de reloj (clock)
que no proveemos por ahora. Puede eliminarlo de las dependencias
en el guión y repórtelo en Bugzilla. Por favor,
recuerde usar el producto "Gentoo/Alt" al momento de enviarlo.
5.
Contacto
Se puede encontrar una lista de los desarrolladores de Gentoo/FreeBSD
en la página del
proyecto. Hay otras formas de contactar a los desarrolladores,
entre ellas, el canal de IRC #gentoo-bsd en Freenode
(irc.freenode.net) y también en la lista de correos gentoo-bsd.
El contenido de este documento, a no ser que se especifique
expresamente, está registrado bajo los términos de la licencia
CC-BY-SA-2.5. Se aplican las
Pautas de
Utilización del logotipo y nombre de Gentoo.
|