¿Cómo crear su propia distribución de GNU/Linux?

|

Como parte de la creación de gNewSense, creamos nuestro Builder, el cual permite la creación de una nueva distribución GNU/Linux basada en Ubuntu Dapper. Desde un simple archivo de configuración se puede escoger el nombre de la distribución, la versión, el tagline y qué paquetes se quieren instalar o remover por defecto. Los Gráficos se generarán automáticamente. Estos scripts están obviamente orientados para producir gNewSense, pero deberían dar una buena base para iniciar a trabajar. Noten que no es necesario seguir estos pasos para usar gNewSense, pueden descargar un iso de alguno de los servidores de réplica.

Necesitarán al menos 35GB libres en el disco, y preferiblemente una conexión a Internet muy rápida (estarán tomando 27GB de datos). También necesitarán cerca de 28GB de espacio en el servidor de respaldo (que puede ser el mismo sistema). Si son inteligentes con sus enlaces duros, deberían ser capaces de evitar un poco de la duplicación. Esto debe ser ejecutado en un sistema Ubuntu Dapper sin actualizaciones (de seguridad o cualquier otra). Los repositorios de los archivos fuente deben estar habilitados. Es posible hacer un downgrade a este estado - vea RemoverPaquetesActualizados.

Si tienen consultas, por favor pasen a nuestro canal IRC. Mucho de esto sigue siendo una versión beta, no he hecho un rebuild desde cero desde hace mucho tiempo y el código ha cambiado bastante.

Paso 1: llave GPG

Las versiones más recientes de apt requieren archivos firmados con GPG en un repositorio para asegurar la integridad de la distribución, así que nuestro primer paso es crear una llave GPG.

 gpg --gen-key

les permitirá hacer esto. Asegúrense que la llave tiene una contraseña en blanco. Tomen nota de la huella digital (fingerprint) de la llave ya que la necesitarán luego para el archivo de configuración.

Finalmente, necesitarán agregar la llave pública al llavero (keyring) del root.

 gpg --export | sudo gpg --import

Paso 2: Debmirror (opcional)

Para evitar tener que volver a descargar archivos, sugiero que creen un servidor de respaldo de Ubuntu main y universe. Esto tomará aproximadamente 29GB adicionales.

 debmirror --nocleanup --verbose --progress --method=http --host=ie.archive.ubuntu.com --arch=i386 \
--source --dist=dapper,dapper-security,dapper-updates,dapper-backports --section=main,main/debian-installer,universe \
--ignore-release-gpg --root=ubuntu /the/target/directory

También necesitarán configurar apache, de forma que puedan llegar al servidor de respaldo vía HTTP. Este paso es opcional, pero es altamente recomendado tener un servidor de respaldo local de Ubuntu (para algún valor de local).

Paso 3: Paquetes

Necesitarán algunos paquetes para que Builder ejecute correctamente.

 apt-get install reprepro imagemagick debmirror build-essential apache2 subversion cdebootstrap kernel-wedge
apt-get install squashfs-tools netpbm syslinux bittornado fakeroot devscripts equivs sharutils debootstrap
apt-get build-dep linux-image-$(uname -r) ubiquity update-manager ubuntu-artwork base-files ubuntu-meta
apt-get build-dep launchpad-integration grub system-tools-backends example-content gnome-panel
apt-get build-dep gnome-app-install kubuntu-meta kubuntu-default-settings firefox usplash hal
svn co http://svn.gnewsense.svnhopper.net/gnewsense/builder/trunk builder
cd builder
chmod +x gen-* do-update fixup-kernel-wedge
sudo ./fixup-kernel-wedge

Sin lugar a dudas hacen falta paquetes, por favor háganmelo saber.

Paso 4: Configuración

Abran el archivo de configuración (config) en un editor de texto. Se deben preocupar por la configuración de MIRROR, RELEASE, DISTRONAME, DOMAIN, BASEDIR, y REPOAPT.

MIRROR es el servidor de réplica que se configuró en el paso 3, o un servidor de réplica de Ubuntu. Este debería contener los paquetes de seguridad. MIRRORDIST es la distribución en el servidor de réplica, usualmente 'dapper'.

DISTRONAME es cómo quieren llamar a su distribución. Debe tener solo letras y números, similarmente RELEASE es el nombre de su versión. Su versión debe ser toda con letras minúsculas, ya que aparecerá en las rutas. LOGOLETTER es la letra que será su logo, mientras que TAGLINE es usado en el bootsplash y en la pantalla de login. SIGNINGKEY es su huella digital GPG del paso 1, esta no debe contener ningún espacio.

DOMAIN es usado para crear el sources.list por defecto mientras se instala. Asumimos una configuración similar a la de Ubuntu en dónde se encuentra su archive.DOMAIN y security.DOMAIN y los subdominios para todos los códigos de país.

BASEDIR es el directorio bajo el cual el repositorio, el livecd y los archivos temporales serán puestos. REPOAPT es de donde los scripts de build tomarán los paquetes, así que deben configurar apache para servir el directorio REPODST ($BASEDIR/(nombre de la distribución con letras minúsculas)).

META_*_{ADD,REMOVE} controla qué paquetes les gustaría agregar y remover del paquete ubuntu-meta cuando sus meta-paquetes están siendo creados.

*_VERSION son los números agregados a las versiones de los paquetes creados. Necesitarán incrementar esto cada vez que se reconstruye un paquete. Probablemente querrán establecer todos en 1 al comenzar.

RSYNC_DEST es donde los repositorio y livecds deben ser resincronizados a un push-repo o push-cd

Paso 5: Generar el repositorio

 ./gen-repo && ./do-update

Esto tomará un tiempo. El repositorio posiblemente estará en un estado inconsistente mientras se está ejecutando, por esto es que solo apilamos los cambios en el servidor de respaldo en el Paso 7. Cada vez que una nueva versión es enviada al servidor (por ejemplo, actualizaciones de seguridad) se debe volver a ejecutar do-update (y debmirror si es necesario).

Si están ejecutando un espacio de aplicación de 32 bits en un kernel de 64 bits, instalen el paquete linux32 y usen

 ./gen-repo && linux32 ./do-update

Paso 6: Generar el LiveCD

 sudo ./gen-livecd

La imagen creada estará en $LIVECDDIR/$NOMBREDISTRO_L-livecd-$LIVECD_VERSION.iso

 ./gen-cdsource
./stage-cd

Preparará un tarball fuente y apilará el iso en $REPODST/cdimage

Paso 7: Apilar su repositorio en un servidor de respaldo y publicitarlo

Pueden publicar los directorios de su repositorio (dists y pool) así como su LiveCD en un servidor de respaldo y publicitar su nueva distribución en el mundo.

 ./push-repo
./push-cd




Texto Extraido de la web oficial de GNewSense

0 comentarios, añade tu otro!: