ESTE TUTORIAL NO ESTA TERMINADO, DEBIDO A UN BUG DEL PROPIO CATALYST
Introducción
El objetivo de catalyst es proveer de una herramienta multifacética, la cual pueda construir confiablemente, todos los aspectos de una release de Gentoo: stage tarballs, GRP package sets y CDs de instalación.
Catalyst incluye también los siguientes objetivos: Proporcionar las estructuras de alta calidad de Gentoo Linux, una herramienta fácil de usar, personalizable, expandible y mantenible. Catalyst es una herramienta que ante todo fue creada para satisfacer las necesidades de aquellos que desean crear sus propios stages de Gentoo, como también los livecds.
Requerimientos Generales
Lo único que necesitas es Gentoo y Catalyst instalado.
También necesitas estar dentro de una de las arquitecturas soportadas por Catalyst:
alpha --> [alpha ev4 ev45 ev5 ev56 pca56 ev6 ev67]
amd64[amd64]
arm --> [arm]
hppa --> [hppa]
ia64 --> [ia64]
mips --> [mips mips1 mips2 mips3 mips4 mipsel mipsel1 mipsel2 mipsel3 mipsel4 cobalt]
ppc --> [ppc power-ppc g3 g4]
ppc64 --> [ppc64 power3 power4 power5 g5]
s390 --> [s390]
sparc --> [sparc]
sparc64 --> [sparc64]
x86 --> [x86 i386 i486 i586 i686 pentium-mmx athlon athlon-xp athlon-mp pentium3 pentium4]
Catalyst actualmente soporta stages x86 sobre plataformas amd64.
Instalando Catalyst
Para instalar Catalyst, tan solo debemos emergerlo, pero antes agregamos las banderas doc y examples al paquete dev-util/catalyst:
-| Instalando Catalyst |-
echo "dev-util/catalyst doc examples" >> /etc/portage/package.use/system && emerge -av catalyst
Creando un Stage1 tarball
Requerimientos
El stage1 es un toolchain muy mínimo. Es la base requerida para terminar un bootstrap. Debe siempre ser tan genérico como sea posible. Si se construye un stage para una arquitectura que soporte kernels 2.4 y 2.6, se debe construir el stage1 sin NPTL.
Lo único que se necesita es una copia del portage actual (Creando un snapshot de Portage), un archivo con las especificaciones (Generando nuestro propio archivo .spec), y también un stage3 "seed" genérico para iniciar el chroot environment.
Creando un snapshot de Portage
Para crear un snapshot de nuestro Portage actual (/usr/portage), debemos ejecutar el siguiente comando (reemplazando nombreDelSnapshot por el que deseemos):
-| Creando Snapshot de Portage |-
catalyst -sv nombreDelSnapshot
este comando creará un snapshot en el directorio /var/tmp/catalyst/snapshots/.
Lo que debemos hacer ahora es bajarnos una copia del stage3 "seed", de uno de los mirrors que encontraremos en la siguiente web: gentoo-mirrors. Luego lo movemos al directorio /var/tmp/catalyst/builds/, ya que es el que catalyst usa como default (reemplazamos stage3-xxxx-xxxxx.tar.bz2 por nuestro archivo bajado):
-| Moviendo Snapshot |-
mkdir -p /var/tmp/catalyst/builds/ && mv stage3-xxxx-xxxxx.tar.bz2 /var/tmp/catalyst/builds/
Generando nuestro propio archivo .spec
Ahora es momento de crear el archivo de configuración para nuestro stage (nombreDelSnapshot.spec), podemos crearlo en cualquier lado, pero en nuestro caso lo hacemos en /var/tmp/catalyst/. En el caso de stage1, es muy simple:
-| nombreDelSnapshot.spec |-
# La subarquietctura que utilisaremos, en mi caso athlon-xp (fijarse en la tabla de la sección "Requerimientos Generales")
subarch: athlon-xp
# La versión del stage, puede ser cualquier cosa, por lo general se usan fechas
version_stamp: 2007.0
# El tipo de stage que deseamos crear, en nuestro caso stage1 (posibles: stage1, stage2, stage3)
target: stage1
# Define qué clase de build (estructura) estamos haciendo. Esto es simplemente otro identificador, pero es útil para permitir múltiples builds. Por lo general es suficiente con defautl
rel_type: default
# Aquí especificamos el perfil que utilizaremos (ejecutar "emerge --info | grep Portage")
profile: default-linux/x86/2006.1
# Nombre del snapshot a utilizar
snapshot: nombreDelSnapshot
# Dirección del seed stage a utilizar
source_subpath: stage3-xxxx-xxxxx
# Directorio que contiene la configuración de nuestro portage actual
portage_confdir: /etc/portage
# Directorio del overlay de portage, si es que lo tenemos
# portage_overlay:
Existen otro parámetros que podemos agregar, ellos los podemos encontrar en catalyst-reference
Creando el Stage1
Finalmente debemos crear el Stage1, para ello ejecutamos el siguiente comando:
-| Creando Stage1 |-
cd /var/tmp/catalyst/ && catalyst -f nombreDelSnapshot.spec
Esto llevará entre 15 y 30 minutos, pero conviene revisarlo cada tanto, por si saltan errores.