diff options
Diffstat (limited to 'markup/pod/live-manual/media/text/es/examples.ssi')
-rw-r--r-- | markup/pod/live-manual/media/text/es/examples.ssi | 456 |
1 files changed, 456 insertions, 0 deletions
diff --git a/markup/pod/live-manual/media/text/es/examples.ssi b/markup/pod/live-manual/media/text/es/examples.ssi new file mode 100644 index 0000000..450e5d6 --- /dev/null +++ b/markup/pod/live-manual/media/text/es/examples.ssi @@ -0,0 +1,456 @@ +:B~ Ejemplos + +1~examples Ejemplos + +Este capítulo ofrece ejemplos de creación de imágenes de sistemas en vivo +para casos de uso específicos. Si se es nuevo en la creación de una imagen +en vivo propia, se recomienda leer primero los tres tutoriales en secuencia, +ya que cada uno enseña nuevas técnicas que ayudan a utilizar y entender los +ejemplos restantes. + +2~using-the-examples Uso de los ejemplos + +Para poder seguir estos ejemplos es necesario un sistema donde crearlos que +cumpla con los requisitos enumerados en {Requisitos}#requirements y tener +live-build instalado tal y como se describe en {Instalación de +live-build}#installing-live-build. + +Hay que tener en cuenta que, para abreviar, en estos ejemplos no se +especifica una réplica local para la creación de la imagen. Es posible +acelerar las descargas considerablemente si se utiliza una réplica local. Se +puede especificar las opciones cuando se usa #{lb config}#, tal y como se +describe en {Réplicas de Distribution utilizadas durante la +creación}#distribution-mirrors-build-time, o para más comodidad, establecer +el valor por defecto para la creación del sistema en +#{/etc/live/build.conf}#. Basta con crear este fichero y en el mismo, +establecer las variables #{LB_MIRROR_*}# correspondientes a la réplica +preferida. Todas las demás réplicas usadas en el proceso de creación usarán +estos valores por defecto. Por ejemplo: + +code{ + + LB_MIRROR_BOOTSTRAP="http://mirror/debian/" + LB_MIRROR_CHROOT_SECURITY="http://mirror/debian-security/" + LB_MIRROR_CHROOT_BACKPORTS="http://mirror/debian-updates/" + +}code + +2~tutorial-1 Tutorial 1: Una imagen predeterminada + +*{Caso práctico:}* Crear una primera imagen sencilla, aprendiendo los fundamentos de live-build. + +En este tutorial, vamos a construir una imagen ISO híbrida por defecto que +contenga únicamente los paquetes base (sin Xorg) y algunos paquetes de +soporte, como un primer ejercicio en el uso de live-build. + +No puede ser más fácil que esto: + +code{ + + $ mkdir tutorial1 ; cd tutorial1 ; lb config + +}code + +Si se examina el contenido del directorio #{config/}# se verá almacenada +allí una configuración en esqueleto preparada para ser personalizada o en +este caso para ser usada inmediatamente para construir una imagen por +defecto. + +Ahora, como superusuario, crear la imagen, guardando un log con #{tee}# +mientras se crea. + +code{ + + # lb build 2>&1 | tee build.log + +}code + +Suponiendo que todo va bien, después de un rato, el directorio actual +contendrá #{live-image-i386.hybrid.iso}#. Esta imagen ISO híbrida se puede +arrancar directamente en una máquina virtual como se describe en {Probar una +imagen ISO con Qemu}#testing-iso-with-qemu y en {Probar una imagen ISO con +VirtualBox}#testing-iso-with-virtualbox o bien ser copiada a un medio óptico +como un dispositivo USB tal y como se describe en {Grabar una imagen ISO en +un medio físico}#burning-iso-image y {Copiar una imagen ISO híbrida en un +dispositivo USB}#copying-iso-hybrid-to-usb, respectivamente. + +2~tutorial-2 Tutorial 2: Una utilidad de navegador web + +*{Caso práctico:}* Crear una utilidad de navegador web, aprendiendo a aplicar personalizaciones. + +En este tutorial, se creará una imagen adecuada para su uso como utilidad de +navegador web, esto sirve como introducción a la personalización de las +imágenes de sistemas en vivo. + +code{ + + $ mkdir tutorial2 + $ cd tutorial2 + $ lb config + $ echo "task-lxde-desktop iceweasel" >> config/package-lists/my.list.chroot + +}code + +La elección de LXDE para este ejemplo refleja el deseo de ofrecer un entorno +de escritorio mínimo, ya que el enfoque de la imagen es el uso individual +que se tiene en mente, el navegador web. Se podría ir aún más lejos y +ofrecer una configuración por defecto para el navegador web en +#{config/includes.chroot/etc/iceweasel/profile/}#, o paquetes adicionales de +soporte para la visualización de diversos tipos de contenido web, pero se +deja esto como un ejercicio para el lector. + +Crear la imagen, de nuevo como superusuario, guardando un log como en el +{Tutorial 1}#tutorial-1: + +code{ + + # lb build 2>&1 | tee build.log + +}code + +De nuevo, verificar que la imagen está bien y probarla igual que en el +{Tutorial 1}#tutorial-1. + +2~tutorial-3 Tutorial 3: Una imagen personalizada + +*{Caso práctico:}* Crear un proyecto para conseguir una imagen personalizada, que contenga el software favorito para llevárselo en una memoria USB donde quiera que se vaya, y hacerlo evolucionar en revisiones sucesivas, tal y como vayan cambiando las necesidades y preferencias. + +Como nuestra imagen personalizada irá cambiando durante un número de +revisiones, si se quiere ir siguiendo esos cambios, probar nuevas cosas de +forma experimental y posiblemente volver atrás si no salen bien, se guardará +la configuración en el popular sistema de control de versiones +#{git}#. También se utilizarán las mejores prácticas de configuración +automática a través de scripts #{auto}# como se describe en {Gestionar una +configuración}#managing-a-configuration. + +3~ Primera revisión + +code{ + + $ mkdir -p tutorial3/auto + $ cp /usr/share/doc/live-build/examples/auto/* tutorial3/auto/ + $ cd tutorial3 + +}code + +Editar #{auto/config}# del siguiente modo: + +code{ + + #!/bin/sh + + lb config noauto \ + --architectures i386 \ + --linux-flavours 686-pae \ + "${@}" + +}code + +Ejecutar #{lb config}# para generar el árbol de configuración, utilizando el +script #{auto/config}# que justo se acaba de crear: + +code{ + + $ lb config + +}code + +Completar la lista de paquetes local: + +code{ + + $ echo "task-lxde-desktop iceweasel xchat" >> config/package-lists/my.list.chroot + +}code + +En primer lugar con #{--architectures i386}# se asegura de que en un sistema +de creación #{amd64}# se crea una versión de 32-bits adecuada para ser usada +en la mayoría de máquinas. En segundo lugar, se usa #{--linux-flavours +686-pae}# porque no se espera usar esta imagen en sistemas mucho más +viejos. En tercer lugar se elige el metapaquete /{lxde}/ para proporcionar +un escritorio mínimo. Y, por último, se añaden dos paquetes iniciales +favoritos: /{iceweasel}/ y /{xchat}/. + +Ahora, crear la imagen: + +code{ + + # lb build + +}code + +Tener en cuenta que a diferencia de los dos primeros tutoriales, ya no se +tiene que escribir #{2>&1 | tee build.log}# ya que esto se incluye ahora en +#{auto/build}#. + +Una vez que se ha probado la imagen (como en el {Tutorial 1}#tutorial-1) y +se ha asegurado de que funciona, es el momento de iniciar el repositorio +git, añadiendo sólo los scripts auto que se acaba de crear, y luego hacer el +primer commit: + +code{ + + $ git init + $ cp /usr/share/doc/live-build/examples/gitignore .gitignore + $ git add . + $ git commit -m "Initial import." + +}code + +3~ Segunda revisión + +En esta revisión, vamos a limpiar desde la primera creación, agregar el +paquete /{vlc}/ a nuestra configuración, crear de nuevo, probar y enviar los +cambios al git. + +El comando #{lb clean}# limpiará todos los ficheros generados en las +primeras creaciones a excepción del caché, lo cual ahorra tener que volver a +descargar de nuevo los paquetes. Esto asegura que el siguiente #{lb build}# +vuelva a ejecutar todas las fases para regenerar los ficheros de nuestra +nueva configuración. + +code{ + + # lb clean + +}code + +Añadir ahora el paquete /{vlc}/ a nuestra lista de paquetes local en +#{config/package-lists/my.list.chroot}#: + +code{ + + $ echo vlc >> config/package-lists/my.list.chroot + +}code + +Crear de nuevo: + +code{ + +# lb build + +}code + +Probar, y cuando se esté satisfecho, enviar la próxima revisión al git: + +code{ + + $ git commit -a -m "Adding vlc media player." + +}code + +Por supuesto, es posible hacer cambios más complicados en la configuración, +tal vez añadiendo ficheros en los subdirectorios de #{config/}#. Cuando se +envian nuevas revisiones, hay que tener cuidado de no editar a mano o enviar +los ficheros del nivel superior en #{config}# que contienen variables +#{LB_*}# ya que estos son productos de creación también y son siempre +limpiados por #{lb clean}# y recreados con #{lb config}# a través de sus +respectivos scripts #{auto}#. + +Hemos llegado al final de nuestra serie de tutoriales. Si bien son posibles +muchos más tipos de personalización, aunque sólo sea con las pocas +características explicadas en estos sencillos ejemplos, se puede crear una +variedad casi infinita de imágenes diferentes. Los ejemplos que quedan en +esta sección abarcan varios casos de usos diferentes procedentes de las +experiencias recogidas de los usuarios de sistemas en vivo. + +2~ Un cliente VNC kiosk + +*{Caso Práctico:}* Crear una imagen con live-build para que se conecte directamente a un servidor VNC al arrancar. + +Crear un directorio de construcción y lanzar una configuración de esqueleto +en su interior, desactivando «recommends» para conseguir un sistema +mínimo. Y a continuación, crear dos listas iniciales de paquetes: La primera +generada con un script proporcionado por live-build llamado #{Packages}# +(ver {Generar listas de paquetes}#generated-package-lists), y la segunda +lista una que incluya /{xorg}/, /{gdm3}/, /{metacity}/ y /{xvnc4viewer}/. + +code{ + + $ mkdir vnc-kiosk-client + $ cd vnc-kiosk-client + $ lb config -a i386 -k 686-pae --apt-recommends false + $ echo '! Packages Priority standard' > config/package-lists/standard.list.chroot + $ echo "xorg gdm3 metacity xvnc4viewer" > config/package-lists/my.list.chroot + +}code + +Como se explica en {Ajuste de APT para ahorrar +espacio}#tweaking-apt-to-save-space puede ser necesario volver a agregar +algunos paquetes recomendados para que la imagen funcione correctamente. + +Una manera fácil de conocer todos los «recommends» es utilizar +/{apt-cache}/. Por ejemplo: + +code{ + + $ apt-cache depends live-config live-boot + +}code + +En este ejemplo, descubrimos que teníamos que volver a incluir varios +paquetes recomendados por live-config y live-boot: #{user-setup}# para hacer +funcionar el inicio automático de sesión y #{sudo}# programa esencial para +apagar el sistema. Además, podría ser útil añadir #{live-tools}# para poder +copiar la imagen en la memoria RAM y #{eject}# para finalmente poder +expulsar el medio en vivo. Por eso: + +code{ + + $ echo "live-tools user-setup sudo eject" > config/package-lists/recommends.list.chroot + +}code + +Después, crear el directorio #{/etc/skel}# en #{config/includes.chroot}# y +poner dentro un fichero #{.xsession}# personalizado para el usuario que por +defecto ejecutará /{metacity}/ e iniciará el /{xvncviewer}/, conectándo al +puerto #{5901}# de un servidor en #{192.168.1.2}#: + +code{ + + $ mkdir -p config/includes.chroot/etc/skel + $ cat > config/includes.chroot/etc/skel/.xsession << EOF + #!/bin/sh + + /usr/bin/metacity & + /usr/bin/xvncviewer 192.168.1.2:1 + + exit + EOF + +}code + +Crear la imagen: + +code{ + + # lb build + +}code + +Disfrutarlo. + +2~ Una imagen básica para un pendrive USB de 128MB + +*{Caso Práctico:}* Crear una imagen quitando algunos componentes para que quepa en un pendrive USB de 128MB dejándo un poco de espacio libre para poder usarlo para lo que se quiera. + +Al optimizar una imagen para adaptarla al tamaño de algunos medios de +almacenamiento, es necesario comprender el equilibrio que se está haciendo +entre tamaño y funcionalidad. En este ejemplo, se recorta tanto sólo para +dar cabida a material adicional dentro de un tamaño de 128MB, pero sin hacer +nada para destruir la integridad de los paquetes que contiene, tales como la +depuración de las variantes locales a través del paquete /{localepurge}/ u +otro tipo de optimizaciones «intrusivas». Cabe destacar que se utiliza +#{--debootstrap-options}# para crear un sistema mínimo desde el principio. + +code{ + + $ lb config --apt-indices false --apt-recommends false --debootstrap-options "--variant=minbase" --firmware-chroot false --memtest none + +}code + +Para hacer que la imagen funcione correctamente, tenemos que volver a +añadir, al menos, dos paquetes recomendados, que son excluidos por la opción +#{--apt-recommends false}#. Ver {Ajuste de APT para ahorrar +espacio}#tweaking-apt-to-save-space + +code{ + + $ echo "user-setup sudo" > config/package-lists/recommends.list.chroot + +}code + +Ahora, crear la imagen de forma habitual: + +code{ + + # lb build 2>&1 | tee build.log + +}code + +En el sistema del autor, en el momento de escribir esto, la configuración +anterior produjo una imagen de 110MB. Esto se compara favorablemente en +tamaño con la imagen de 192MB producida por la configuración por defecto en +el {Tutorial 1}#tutorial-1. + +Dejar fuera los índices de APT con #{--apt-indices false}# ahorra una +cantidad importante de espacio, la desventaja es que será necesario hacer un +#{apt-get update}# antes de usar apt en el sistema en vivo. Excluyendo los +paquetes recomendados con #{--apt-recommends false}# se ahorra un poco de +espacio adicional a costa de omitir algunos paquetes que de otro modo podría +esperarse que estuvieran alli. #{--debootstrap-options "--variant=minbase"}# +preinstala un sistema mínimo desde el principio. El hecho de no incluir +automáticamente paquetes de firmware con #{--firmware-chroot false}# también +ahorra un poco de espacio. Y por último, #{--memtest none}# evita la +instalación de un comprobador de memoria. + +*{Nota:}* También se puede conseguir un sistema mínimo utilizando scripts gancho como por ejemplo el script #{stripped.hook.chroot}# que se encuentra en #{/usr/share/doc/live-build/examples/hooks}#, que puede reducir aún más el tamaño de la imagen hasta 91MB. Sin embargo, el script elimina documentación y otros ficheros de los paquetes instalados en el sistema. Esto viola la integridad de los paquetes y como se comenta en el encabezado del script, puede tener consecuencias imprevistas. Es por eso por lo que el uso de /{debootstrap}/ es el método recomendado para conseguir este objetivo. + +2~ Un escritorio GNOME con variante local e instalador + +*{Caso práctico:}* Crear una imagen que contenga el escritorio gráfico GNOME, la variante local Suiza y un instalador. + +Se desea crear una imagen iso-hybrid para la arquitectura i386 con un +escritorio preferido, en este caso el GNOME, que contiene todos los mismos +paquetes que serían instalados por el programa de instalación estándar de +Debian para GNOME. + +El primer problema es descubrir los nombres de las tareas adecuadas. En la +actualidad, live-build no puede ayudar en esto. Aunque podríamos tener +suerte y encontrarlos a base de pruebas, hay una herramienta, +#{grep-dctrl}#, para extraerlos de las descripciones de tareas en +tasksel-data, para proceder, asegurarse de tener ambas cosas: + +code{ + + # apt-get install dctrl-tools tasksel-data + +}code + +Ahora podemos buscar las tareas apropiadas, primero con: + +code{ + + $ grep-dctrl -FTest-lang de /usr/share/tasksel/descs/debian-tasks.desc -sTask + Task: german + +}code + +Con este comando, se descubre que la tarea se llama, sencillamente, +german. Ahora, para encontrar las tareas relacionas: + +code{ + + $ grep-dctrl -FEnhances german /usr/share/tasksel/descs/debian-tasks.desc -sTask + Task: german-desktop + Task: german-kde-desktop + +}code + +En el momento del arranque se va a generar la variante local *{de_CH.UTF-8}* +y seleccionar la distribución del teclado *{ch}*. Ahora vamos a poner las +piezas juntas. Recordando de {Utilizar metapaquetes}#using-metapackages que +los metapaquetes tienen el prefijo #{task-}#, especificamos estos parámetros +del lenguaje en el arranque y a continuación añadimos los paquetes de +prioridad estándar y los metapaquetes que hemos descubierto a la lista de +paquetes de la siguiente manera: + +code{ + + $ mkdir live-gnome-ch + $ cd live-gnome-ch + $ lb config \ + -a i386 \ + --bootappend-live "boot=live components locales=de_CH.UTF-8 keyboard-layouts=ch" \ + --debian-installer live + $ echo '! Packages Priority standard' > config/package-lists/standard.list.chroot + $ echo task-gnome-desktop task-german task-german-desktop >> config/package-lists/desktop.list.chroot + $ echo debian-installer-launcher >> config/package-lists/installer.list.chroot + +}code + +Tener en cuenta que se ha incluido el paquete /{debian-installer-launcher}/ +para lanzar el instalador desde el escritorio en vivo. El kernel #{586}#, +necesario para que el lanzador funcione correctamente, se incluye por +defecto. |