Esta vez te explicaremos paso a paso cómo modificar/personalizar/rehacer una versión de GNU+Linux derivada de Debian.
Tomaremos el caso de Huayra, la distro estatal realizada por el
Programa Conectar Igualdad que pretende ser instalada en las máquinas
que resta repartir (unas cientos de miles) y en las ya repartidas (algo
difícil de lograr si tenemos en cuenta que son más de 3 millones). De
todas formas, este tutorial sirve para casi cualquiera de las cientos de
distribuciones derivadas de Debian (Ubuntu, Mint, Musix, etc.).
Te traemos 11 pasos para crear un sistema operativo libre
Método
* El método elegido es relativamente rápido y cómodo para hacer cambios
«en vivo», sobre todo dentro del sistema previamente a ser terminado,
como si estuviera ya listo para usar. Otro método sería el de usar las
herramientas de Debian Live.
Nivel de conocimientos
* En verdad esto lo puede hacer cualquier persona con algo de tiempo y
ganas, no es necesario que se trate de un usuario avanzado, aunque sí es
ideal que esté familiarizado con la consola de comandos de GNU/Linux.
Pero te aseguro que es como seguir cualquier receta, como hacer canelones en casa.
Materiales
* Computadora personal con GNU+Linux instalado (cualquier netbook del
PCI serviría, ya sea que trajera RxArt, Ubuntu, Mint o Huayra)
En caso de no contar con un sistema libre preinstalado, recomiendo descargar e Instalar Lunar GNU+Linux, que viene con todas las herramientas para remasterizar.
* Espacio en disco rígido: 10 GB aprox.
* Pendrive USB de 2 o 4 GB para grabar la imagen ISO (el sistema operativo comprimido) con unetbootin
O un DVD virgen.
* Una imagen ISO del sistema operativo a modificar: podría ser Lunar o Huayra
mismo… pero si trabajás sobre Huayra quizá querrías invertir un tiempo
en eliminar el software privativo, así que te aconsejamos Lunar, el cual
ha zanjado esa tarea.
* Unetbootin
Pasos
Si en tu sistema no tenés instalado squashfs-tools y genisoimage,
deberás incorporarlos; en este tutorial supondremos que estás utilizando
una distribución Debian o derivada, con lo cual emplearías apt-get para
instalar programas. El comando es:
sudo apt-get install squashfs-tools genisoimage
Desde ahora, abriremos una consola de comandos (konsole, xterm, lxterm, mrxvt, la que
quieras) y será cuestión de ejecutar paso tras paso como si fuera una
receta. Lógicamente no explicaré qué significa cada comando porque el
tutorial sería más largo y aburrido que la Biblia, pero el usuario puede
investigarlo utilizando el comando man (ej: man mkdir)
1) Crear directorios y descomprimir el archivos
mkdir nueva_distro
cd nueva_distro
sudo mount LA_DISTRO_QUE_DESCARGASTE.iso /mnt -o loop
mkdir extract-cd
rsync –exclude=/live/filesystem.squashfs -a /mnt/ extract-cd
sudo unsquashfs /mnt/live/filesystem.squashfs
sudo mv squashfs-root edit
2) Utilizar funcionalidades de nuestro actual sistema operativo
sudo cp /etc/resolv.conf edit/etc/
sudo cp /etc/hosts edit/etc/
sudo mount –bind /dev/ edit/dev
# Este paso es importante: aquí nos metemos dentro del nuevo sistema
sudo chroot edit
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export HOME=/root
export LC_ALL=C
dbus-uuidgen > /var/lib/dbus/machine-id
dpkg-divert –local –rename –add /sbin/initctl
ln -s /bin/true /sbin/initctl
3) Comenzar a instalar o desinstalar programas, modificar estéticas, configuraciones, etc.
apt-get update
Ahora podemos instalar algo, por ejemplo algunas utilidades para redes, copia de archivos y monitoreo de procesos
apt-get install htop nmap slurm rsync
Es sólo un ejemplo, Debian contiene algo así como 30.000 paquetes en
su base de datos, si necesitás una forma cómoda de ver qué hay
disponible, utilizá Synaptic en modo gráfico, luego podés volver al
sistema en proceso de modificación e instalar las aplicaciones con
apt-get
Por no ser tan aburridos, instalemos algunas aplicaciones para músicos:
apt-get install hydrogen solfege rosegarden zynaddsubfx qsynth lmms qjackctl
En fin: insisto en que son sólo ejemplos, vos podés encontrar algo que te interese particularmente.
3b) Escritorio
Algo muy importante a tener en cuenta, es que todo lo relativo al
escritorio se modifica en /etc/skel/Escritorio/ , esa carpeta contiene
un esqueleto de el o los escritorios que serán configurados para cada
usuario del sistema. Es decir que todo lo que hagamos ahí, será copiado
cada vez que se inicie el sistema Live o cuando creemos otro usuario.
Por ejemplo, en Huayra encontramos:
ayuda-mate.desktop huayra-chat.desktop huayra-tda.desktop
huayra-bullets.desktop huayra-flash-install.desktop www-browser.desktop
Son los iconos que lanzan aplicaciones, en mi caso quité
huayra-flash-install.desktop por ser una sugerencia a instalar software
privativo/peligroso.
3c) Configurar GRUB para que no inicie Linux con el generador de números al azar de INTEL y la NSA
No es un paso obligatorio, pero te dará más seguridad al no usar la
instrucción de la agencia de espionaje en tu sistema para cifrar datos.
Es decir: será menos probable que la NSA te espíe. Entonces, como
usuario administrador ejecutamos:
nano /etc/default/grub
Agregamos o modificamos la siguiente línea:
GRUB_CMDLINE_LINUX=”nordrand”
Guardamos con control+o y salimos con control+x.
3d) Personalizar el fondo de escritorio
Podemos hacer 1000 modificaciones a nuestra nueva distro, pero algo
que le dará identidad es el fondo de escritorio, en Huayra o Lunar, esto
se encuentra dentro del directorio:
edit/usr/share/images/huayra-desktop/ y posee los siguientes archivos:
huayra-login.jpg huayra-splash.png huayra-syslinux.png huayra-wallpaper.png
Podrías reemplazarlos con tus propios diseños, sólo tené en cuenta el
formato de cada uno (resolución y extensión .png o .jpg) para que luego
no existan mayores problemas. Un buen programa es GIMP, otro
interesante es Inkscape para diseño vectorial.
3e) Para usuarios avanzados/curiosos: lógicamente
podríamos iniciar una sesión de escritorio dentro el nuevo sistema y
realizar cualquier cambio de modo gráfico como si la distro estuviera ya
terminada y andando. Para eso es prudente copiar nuestra configuración
de Xorg dentro del nuevo sistema, o quitar la existente con el fin de
evitar cuelgues… también es prudente utilizar la misma distro como
sistema host y sistema a modificar, porque de lo contrario es posible
que también se quede congelado el sistema.
Para iniciar una sesión de escritorio, podríamos copiar antes el
/etc/skel a /root/Escritorio (cualquier cosa que de allí nos interese…)
instalar xinit (apt-get install xinit), presionar control+alt +F1,
loguearnos como root y luego ejecutar algo así:
startx — :4 vt12
Si tenemos suerte, estaremos dentro de un entorno de escritorio
predefinido y podremos divertirnos un rato: queda en vos experimentar.
4) SALIR de nuestro nuevo sistema: volver atrás al sistema de siempre para poder recomprimir los archivos y crear la imagen ISO; ejecutamos:
cd /
aptitude clean
rm -rf /tmp/* ~/.bash_history
rm /etc/resolv.conf
rm /var/lib/dbus/machine-id
rm /sbin/initctl
dpkg-divert –rename –remove /sbin/initctl
dpkg -l > packages.txt
umount /proc
umount /sys
umount /dev/pts
exit
6) Prepararse para Remasterizar (finalizar la nueva distribución GNU+Linux)
sudo umount edit/dev
sudo mv edit/packages.txt extract-cd/live/
* dentro del directorio nueva_distro ejecutamos:
sudo touch extract-cd/live/filesystem.manifest
sudo chmod a+w extract-cd/live/filesystem.manifest
sudo chroot edit dpkg-query -W –showformat=’${Package} ${Version}
’ > extract-cd/live/filesystem.manifest
sudo cp extract-cd/live/filesystem.manifest extract-cd/live/filesystem.manifest-desktop
sudo sed -i ‘/ubiquity/d’ extract-cd/live/filesystem.manifest-desktop
sudo sed -i ‘/live/d’ extract-cd/live/filesystem.manifest-desktop
7) Modificar la pantalla de inicio del Live-USB/DVD para que hable de nuestra distro
En el directorio extract-cd/isolinux/ hay varios archivos.cfg, los
podés editar con nano o cualquier otro editor de textos para que
representen la identidad de lo que estás haciendo.
También se encuentra ubicada una imagen llamada
extract-cd/isolinux/splash.png que podría ser fácilmente reemplazada por
un diseño propio, solamente tiene que ser en 640×480 y en formato png.
8) Comprimir el sistema de archivos:
sudo rm extract-cd/live/filesystem.squashfs
sudo mksquashfs edit extract-cd/live/filesystem.squashfs
(esa acción es crucial y tardará un buen tiempo…)
Darle un nombre a la imagen:
nano extract-cd/README.diskdefines
9) Remover el viejo md5sum.txt y hacer uno nuevo:
cd extract-cd
sudo rm md5sum.txt
find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt
* si trabajamos con Huayra, conviene borrar algunas cosas no libres:
rm -f -r pool/contrib/l/linux-wlan-ng/
rm -f -r pool/non-free/*
10) Finalizar y crear la imagen ISO de nuestro nuevo sistema:
sudo genisoimage -D -r -V “Nombre_y_version” -cache-inodes -J -l -b
isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size
4 -boot-info-table -o ../Nombre_y_version.iso .
11) Testear la ISO: en una primera instancia no es mala idea
ahorrarse el quemar un DVD o crear un USB Live de gusto, para eso
podríamos utilizar QEMU, un emulador que nos permite correr el nuevo
sistema dentro de nuestro sistema.
apt-get install qemu
qemu -cdrom nombre_del_archivo.iso
Si todo sale bien, veremos la pantalla de bienvenida y luego se
cargará el sistema… a veces QEMU no es muy confiable, por lo cual si
vemos algún error demasiado raro (el escritorio no se carga, etc.),
convendrá hacer las cosas bien y quemar un DVD (yo uso k3b) con nuestra
imagen ISO o grabar un USB Live mediante Unetbootin.
En fin, eso es todo, se trata de muchos comandos pero les garantizo que funciona y sólo necesitan tener ganas para lograrlo,
¡FELIZ HACKEO!