Como muchos sabrán en latinoamérica esta por celebrarse el Festival Latinoamericano de Instalación de Software Libre (FLISoL), así que para las instalaciones muchos se habrán puesto a preguntarse cosas como «y si en el lugar del evento no tengo internet?», «si hay muchos asistentes y no hay tiempo para instalar software a todos?», etc.
Tal vez la solución sea CREAR UN LIVE-IMAGE (CD, DVD, USB…. en resumen ISO), bien, este post les enseñara a crear un ISO con todos los programas que necesites de una forma muy sencilla y tratando de explicar todos los pasos posibles.
Empecemos por instalar lo necesario:
# dnf install livecd-tools spin-kickstarts
Con el primer paquete tendremos instalado livecd-creator el cual nos compilará el ISO (en resumen es eso lo que hace), y el segundo paquete nos dará acceso a unos archivos de extensión .ks que se encuentran en /usr/share/spin-kickstarts.
Que son los archivos kickstarts?
Bien, en resumen, los archivos kickstart ayudan a crear instalaciones desatendidas, de esta forma por ejemplo podríamos indicar en un kickstart que queremos que el idioma preseleccionado se Español, el teclado Español Latinoamericano, la zona horaria América/Lima, que nuestra partición raiz tenga 30GB, etc etc, se puede especificar todo el proceso de instalación.
Osea, con un archivo kickstart le decimos a Anaconda (la serpiente no, me refiero al instalador de Fedora), todas las configuraciones que queremos, incluido programas que queremos instalados; así, podemos instalar Fedora (o cualquier distro que use Anaconda) en 100 computadoras en paralelo sin que toques una solo botón del instalador.
Bueno, ese es otro tema, esta aclaración solo va al caso por que livecd-creator usa ESE archivo .ks para instalar Fedora en una jaula virtual y luego convierte esa instalación en un ISO, ASÍ DE SIMPLE!!.
Volviendo al tema
Ya hablamos de lo que es un archivo .ks, así que vamos a crear un archivo .ks, pero NO desde cero, en /usr/share/spin-kickstarts hay un montón de archivos .ks los cuales pertenecen a los Spin que ya conocemos de Fedora (Workstation, Server, XFCE, Mate, Cinnamon, etc etc), en este caso usaremos como base Fedora Workstation, así que el .ks elegido será /usr/share/spin-kickstarts/fedora-live-base.ks, entonces abrimos un editor de texto, y creamos el archivo my_live_image.ks con este contenido:
# Parte 1
%include /usr/share/spin-kickstarts/fedora-live-workstation.ks
# Parte 2
lang es_PE.UTF-8
keyboard 'la-latin1'
timezone America/Lima
auth --useshadow --enablemd5
part / --size 20000 --fstype=ext4
services --enabled=NetworkManager,iptables --disabled=network,sshd,firewalld
# Parte 3
repo --name=Fedora --baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
repo --name=Fedora-Updates --baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/$releasever/$basearch/
repo --name=google-chrome-stable --baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
repo --name=google-talk-plugin --baseurl=http://dl.google.com/linux/talkplugin/rpm/stable/$basearch
repo --name=RPMFUSION-FREE --baseurl=http://download1.rpmfusion.org/free/fedora/releases/$releasever/Everything/$basearch/os/
repo --name=RPMFUSION-NONFREE --baseurl=http://download1.rpmfusion.org/nonfree/fedora/releases/$releasever/Everything/$basearch/os/
repo --name=RPMFUSION-FREE-UPDATES --baseurl=http://download1.rpmfusion.org/free/fedora/updates/$releasever/$basearch/
repo --name=RPMFUSION-NONFREE-UPDATES --baseurl=http://download1.rpmfusion.org/nonfree/fedora/updates/$releasever/$basearch/
# Parte 4
%packages
gimp
inkscape
vlc
soundconverter
google-chrome
kdenlive
%end
# Parte 5
%post
cat >> /etc/rc.d/init.d/livesys << EOF # deshabilitar el plugin de actualizaciones cat >> /usr/share/glib-2.0/schemas/org.gnome.settings-daemon.plugins.updates.gschema.override << FOE [org.gnome.settings-daemon.plugins.updates] active=false FOE # No iniciar gnome-initial-setup (el cuadro de Bienvenida que sale luego de instalar) mkdir ~liveuser/.config touch ~liveuser/.config/gnome-initial-setup-done # make the installer show up if [ -f /usr/share/applications/liveinst.desktop ]; then # Show harddisk install in shell dash sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop "" # need to move it to anaconda.desktop to make shell happy mv /usr/share/applications/liveinst.desktop /usr/share/applications/anaconda.desktop cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE [org.gnome.shell] favorite-apps=['firefox.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'libreoffice-writer.desktop', 'nautilus.desktop', 'gnome-documents.desktop', 'anaconda.desktop'] FOE # Make the welcome screen show up if [ -f /usr/share/anaconda/gnome/fedora-welcome.desktop ]; then mkdir -p ~liveuser/.config/autostart cp /usr/share/anaconda/gnome/fedora-welcome.desktop /usr/share/applications/ cp /usr/share/anaconda/gnome/fedora-welcome.desktop ~liveuser/.config/autostart/ fi fi # rebuild schema cache with any overrides we installed glib-compile-schemas /usr/share/glib-2.0/schemas # set up auto-login cat > /etc/gdm/custom.conf << FOE
[daemon]
AutomaticLoginEnable=True
AutomaticLogin=liveuser
FOE
# Turn off PackageKit-command-not-found while uninstalled
if [ -f /etc/PackageKit/CommandNotFound.conf ]; then
sed -i -e 's/^SoftwareSourceSearch=true/SoftwareSourceSearch=false/' /etc/PackageKit/CommandNotFound.conf
fi
# make sure to set the right permissions and selinux contexts
chown -R liveuser:liveuser /home/liveuser/
restorecon -R /home/liveuser/
EOF
%end
Explicación de cada parte:
Parte 1: Con esto estamos incluyendo todo lo que se instala con Fedora Workstation (Gnome, Libre Office, Rhythmbox, Totem, etc etc), ahora solo nos preocupamos de las configuraciones y los paquetes que queremos adicionales.
Parte 2: Pequeñas configuraciones como el idioma en el que ingresará el instalador, el teclado por defecto, la zona horaria, etc, de las cuales la mas importante será «part / –size 20000 –fstype=ext4», lo que hace es determinar el tamaño de partición que se dará A LA JAULA VIRTUAL, así que si vas a instalar muchos programas, tendrás que subir ese tamaño, en lo personal 20000 MB me va de sobra para un live DVD.
Parte 3: Los repos, nada mas, creo que esa parte se explica sola, y sí, podemos tener Google Chrome pre instalado.
Parte 4: Esta es la parte donde especificas el nombre de cada paquete que deseas en tu ISO, esto finaliza en %end, esta es probablemente la unica parte que necesitaras modificar en tu archivo kickstart.
Parte 5: Probablemente ni la toques, allí se especifica lo que se debe de hacer LUEGO de haber instalado todo, hasta %end nuevamente, allí hay algunos ajustes que los comenté en español, como recomendación, si no sabes mucho de BASH no lo toques!!.
Hecho esto, podemos compilar el .ks.
Compilando nuestro .ks
Simplemente necesitamos ejecutar el siguiente comando como super usuario:
# livecd-creator --verbose --config=/home/tnt/fedora-flisol.ks --fslabel=Fedora-DVD --cache=/var/cache/live --nocleanup
Explicación de cada parte:
–verbose: Hace que el comando nos de información detallada de todo lo que hace, eso sirve para saber en donde falla nuestro archivo .ks (si es que falla).
–config: Sirve para especificar nuestro archivo .ks (no podía ser para otra cosa).
–fslabel: Una etiqueta para el sistema de archivos nada mas, puedes poner tu nombre si quieres.
–cache: Ya que se descargarán muchos paquetes para el ISO, es posible que no tengas espacio en tu computadora, asi que puedes especificar donde se descargaran con este parámetro (puedes apuntarlo a un disco externo u otra partición con mas espacio).
–nocleanup: Este parámetro le dice a livecd-creator que NO borre los archivos descargados, así no tendrás que esperar una eternidad por las descargas cada que ejecutas el comando (recomiendo usarlo pues en Perú no tenemos buen ancho de banda de internet).
Eso es todo, al final el comando te generará un archivo .iso en el lugar que lo ejecutes.
Sin mas que especificar, espero que les sirva, Saludos.
NOTA: Este articulo fue hecho al vuelo, es posible que hayan errores, si es que los hay, no dudes en comunicarte conmigo mediante comentario o al correo electrónico tonet666p [at] fedoraproject [dot] org.
Referencias: