dynebolic 2

La versión más actualizada de este manual la puedes descargar en formato PDF

Contenido

1. Los Medios Hacktivos

2. Descubre el sistema

3. Instalar el Laboratorio de Medios

4. Producción de video

5. Producción de Audio

6. Software para Gráficos

7. Software para Texto

8. Software para Comunicaciones

9. Consola de línea de comandos

10. Herramientas de Desarrollo

A1. Conectar aplicaciones de audio

A2.Producción avanzada de audio


Capítulo 1: Los medios hack-activos

dyne:bolic GNU/Linux es una distribución en vivo que trabaja directamente desde el disco compacto sin necesidad de instalar o cambiar nada en tu disco duro. Puede reconocer la mayor parte de tus dispositivos de hardware y ofrece un vasto rango de software para producción de sonido y video, emisión de contenido multimedia, modelado 3D, compartición de archivos punto a punto, mezcla de sonido y video y mas.

Éste sistema operativo se enfoca en proveer funcionalidades multimedia para navegar, emisión, edición, codificación y difusión tanto de sonido como video; también soluciona los problemas usuales de instalación, pues provee una forma fácil de correr desde el disco duro sin necesidad de particionarlo, con sólo copiar un directorio (ver anclar), evitando así cualquier riesgo de pérdida de datos y preservando la integridad de otros sistemas de archivo que ya estés usando.

dyne:bolic está hecho por y para las necesidades de activistas mediáticos y artistas, para estimular la producción creativa y no sólo la simple realización de informaciones digitales y análogas.

Fortalecido (impulsado) por GNU/Linux y por la comunidad vibrante (groovy) del software de código abierto, este sistema operativo nace como un esfuerzo desde abajo para expander el software libre y el espíritu de compartir la informacion y el conocimiento.

La última versión de este documento se hará disponible en línea en la dirección dynebolic.org/manual-es y en formato imprimible en dynebolic.org/dynebolic-manual-es.pdf. Para más información visita la página inicial en dynebolic.org dónde mas documentación está disponible en línea (en inglés). Para contribuir puedes reportar errores (en inglés) y ponerte en contacto con la comunidad de usuarios y desarrolladores uniéndote a las listas de discusión (en inglés) o al canal de charla #dyne en irc.freenode.net.

Cómo usar este manual

Lejos de estar completo en la exploración de las posibilidades de cada pieza de software, encontrarás aquí una introducción e instrucciones básicas sobre como usar, modificar y emplear dynebolic en varias circunstancias.

Cuando necesites información en profundidad sobre como operar un software en particular, deberías consultar las páginas de manual incluidas.

Las páginas de manual describen el uso de un programa, puedes verlas con el comando man desde una terminal X dentro de dyne:bolic :

[d:b] ~ # man hasciicam [Enter] 

Mostrará un texto altamente informativo acerca del uso del programa; la página de manual usualmente coincide con el nombre del mismo programa ejecutable.

Ten siempre en mente que el comando man es tu amigo :) este funciona en todos los sistemas GNU/Linux, proporcionando información acerca de cada comando, y con todos los comando que hay, itienes mucho por descubrir! por ejemplo, dales un vistazo a los manuales de "sox" o "convert", iencontrarás que puedes hacer un montón de cosas desde la línea de comando de una terminal X!

Por último, en caso de que estés usando intensivamente cierto software para tus propósitos, no olvides consultar su propia documentación y unirte a la comunidad de usuarios alrededor de de este: allí podrás descubrir mas acerca de su uso y desarrollo.

Esto es Software Rasta

¡Jah Rastafari Livity bendice nuestra libertad! Esto es software libre, compartelo para el bien de tí mismo y de tu gente. Respeta a los otros y déjalos expresarse, sé libre y deja que otros sean libres. ¡Larga vida y prosperidad en Paz!

Pero no una Paz sin Justicia. Este software está en la Resistencia dentro del mundo de Babylon que intenta controlar mas y mas nuestras formas de comunicar y compartir información y conocimientos. Este software es para todos aquellos quienes no pueden pagar para tener el hardware mas reciente para hablar su palabra de conciencia y buena voluntad. Este software tiene un completo abanico de aplicaciones para la producción y no sólo el simple uso de la información, es un estudio completo de creación multimedia, no tienes que comprar nada para expresar tu voz. Liberar y Compartir el conocimiento son principios sólidos para la evolución y esto es de lo que este software proviene.

Dentro de Babylon, el dinero es el principal requisito para hacer que la voz sea escuchada por los demás. Los gobiernos capitalistas y fundamentalistas alrededor del mundo juegan con los grandes monopolios de TV difundiendo su propaganda, silenciando toda crítica.

Esta es una lucha por la Redención desde los sistemas operativos existentes los cuales siempre requieren nuevo y muy caro hardware para hacer siempre lo mismpo de siempre: regalarnos reproductores gratis pero haciendonos pagar para producir nuestras propias voces. Y como los Arabes dicen, el que te está protegiendo te está robando.

Dyne:bolic es una herramienta para producir y publicar por tí mismo, libremente. Aquí no hay nada que consumir, Aquí tienes todo lo necesario para crear.

Los sistemas operativos comerciales te dan la posibilidad de escuchar --todos los tipos de reproductores de "descarga gratis"-- pero siempre con restricciones y con maneras nada faciles para que cualquiera pueda hablar. El sentido de la comunicación está estructurado siguiendo la jerarquía del poder establecido en el mundo mediatizado de Babylon, y lo peor de todo es que el dinero es el principal requisito para difundir la voz y dejar a otros escucharla.

Más aún, el software propietario expande la dependencia de la población hacia las grandes corporaciones: donde sea que compartimos nuestro conocimiento sobre cómo usar un cierto tipo de software, damos a la gente la necesidad de comprar herramientas de los comerciantes para que puedan expresar su creatividad. Esta es una gran responsabilidad para cada uno de nosotros quienes enseñamos a alguien cómo hacer algo con el software: la necesidad de comprar será la esclavitud a los intereses mercantiles del capitalismo.

Las raíces de la cultura Rasta pueden ser encontradas en la Resistencia a la esclavitud. Este software no es para los negocios. Este software es libre como el habla y es un paso en la lucha por la Redención y la libertad. Este software está dedicado a la memoria de Patrice Lumumba, Marcus Garvey, Marthin Luther King, Steve Biko, Walter Rodney, Malcom X; en solidaridad con Mumia Abu Jamal y todos aquellos quienes continuarán resistiendo a la esclavitud, el racismo y la opresión, para quienes luchan contra el imperialismo y buscan una alternativa a la hegemonía del capitalismo en nuestro mundo.

Hic Sunt Leones. Y muchas bendiciones en Jah Luv para todos aquellos que aún resisten. Selah.

El Proyecto Streamtime

Utilizando dyne:bolic para la libertad de comunicación

Streamtime es un proyecto de Radio Reedflute en colaboración con Rastasoft, y es desarrollado junto con artistas y activistas desde Iraq y desde donde sea. Streamtime es una red cambiante de mediactivistas dedicados al apoyo de redes autónomas. Streamtime usa viejas y nuevas herramientas para la producción de redes y contenidos para los medios de comunicación, las artes, la cultura y el activismo en áreas de conflicto, como Iraq.

Nosotros imaginamos crear improvisados y expresivos dispositivos, como un CD que convierta tu PC en un estudio en línea. Imagina una multitud que logra crear un atascón en el tráfico. Piensa en los religiosos policías de Londres, los chamacos estudiantes confundidos y el dentista celoso en Baghdad, y el blogger encarcelado escribiendo desde El Cairo. Construyendo redes autónomas en condiciones extremas.

Streamtime ofrece un ambiente difuso para desarrollar medios hechos por tí misma. Nos enfocamos en el sentido cultural de encontrar un camino propio en el callejón sin salida que es Iraq y que es su representación ante los medios de comunicación globales. No debemos intentar cambiar la política para fomentar el cambio cultural; debemos apoyar las manifestaciones culturales para entonces forzar los cambios políticos.

Streamtime puede tomar la forma de una campaña, de arte colaborativo, de una corriente de sonidos no escuchados, palabras no dichas e imaginaciones no vistas. Interacciones remotas y diálogos ubicuos, comunicaciones desmaterializadas y participaciones en las calles. El espacio está fragmentado en sus dimensiones territoriales, acústicas y cibernéticas, y se recompone en tiempo real. Hackear códigos tanto morales como digitales, formando nuevos mapas, dibujos mutantes y pieles inestables. La sobrecarga de información puede ser abandonada en favor de la conciencia y las prácticas colaborativas. La Memoria tiene una voz digital, diversa y horizontal.


Capítulo 2: Descubre el sistema

Tabla de contenidos

Con Dyne:bolic no necesitas instalar nada en tu disco duro porque este no es se toca mientras usas el sistema. Más aún, dependiendo de tu forma preferida de uso, puede arrancar desde el disco duro, desde CD, USB o desde la red (se explica en el siguiente capítulo) y puede guardar datos en un sólo archivo que puede ser transportado a través de diferentes medios. El sistema operativo completo cabe en un disco compacto, y para ejecutarse desde el disco duro tan sólo necesitas copiar el directorio DYNE (ver docking), en tanto que en ordenadores ligeros esto se puede hacer por red. Esto hace a dyne:bolic muy fácil de usar y mantener, evitando riesgos por desconfiguración: el sistema se presenta tal como es ofreciendo un gran escritorio repleto de aplicaciones listas para usar.

El manejador de escritorio por defecto es Xfce el cual ofrece múltiples escritorios (presiona ctrl+F2 y otros números) y un menún que puedes desplegar si presionas el botón del lado derecho de tu mouse sobre el fondo de tu escritorio. En la esquina superior derecha encuentras los dispositivos de almacenamiento a los que puedes entrar con tan solo un click.

El menú de software está organizado por tareas, así que fácilmente puedes encontrar la manera de reproducir, grabar, editar y transmitir tanto audio como video, comunicarte y publicar textos, páginas web, animaciones 3d y mucho mas.

Haz click en CONFIGURE en tu menú para ajustar tu sistema.

Para una introducción a las funcionalidades al utilizar varios escritorios puedes visitar la página de Spot y leer el artículo sobre dyne:bolic en OS News.

Capítulo 3: Instalar el laboratorio de medios

Este capítulo describe varias formas de usar el sistema de dyne:bolic de manera avanzada: Cómo agrupar múltiples computadoras para aprovechar sus recursos compartidos, cómo convertir el sistema residente en varias computadoras en un laboratorio de medios y cómo mantener tus datos seguros de invasiones a tu privacidad.

El conocimiento proveído por este capítulo requiere algo de confianza con lo básico de los sistemas GNU/Linux y el uso de la línea de comandos. Te dará poder con la habilidad de instalar de manera flexible laboratorios de medios completamente funcionales aún usando computadoras encontradas, pero necesitas planear bien la arquitectura de tus recursos dependiendo de tu situación específica.

Arrancar desde el disco duro

Con Docking vimos que simplemente el mover un directorio en la raíz de una partición puede dejarnos arrancar desde el CD y usar el sistema desde el disco duro. Esto es una manera muy simple y segura de tener un sistema de arranque doble: con el CD dentro para dyne:bolic, con el CD fuera para cualquier otra cosa. Aún así a mucha gente realmente le gustaría deshacerse del CD, así que aquí se explica cómo:

Mantén en mente que la siguiente operación no es necesaria para correr dyne:bolic desde el disco duro. Si no estás familiarizado con los sectores de arranque y la geometría de partición tal vez necesites la intervención de un experto si algo sale mal. Además, en caso de que cometas un error podrías borrar todos los datos guardados en tu disco duro y/o quedarte sin la posibilidad de arrancar de nuevo en tu viejo sistema operativo.

Para arrancar desde el disco duro necesitas tener un cargador de arranque (Lilo o Grub) instalado. Recomendamos el uso de Grub por su simplicidad y flexibilidad: de hecho es el cargador de arranque preconfigurado que dyne:bolic instalará para ti, pero en caso de que ya tengas Lilo instalado y no quieras cambiarlo, hay una manera de añadir una entrada para dyne:bolic en él.

Las siguientes instrucciones cubrirán varias situaciones: puedes omitir algunas operaciones en caso de que ya estén establecidas en tu computadora.

En caso de que estés instalando una computadora desde cero, sin nada instalado en ella, entonces necesitas particionar tu disco duro y formatearlo. Puedes hacerlo usando el comando cfdisk para crear o modificar las particiones de tu disco duro, luego mke3fs para formatear las particiones (o algún otro comando mk* en caso de que desees usar un sistema de archivos diferente de Ext3). Recuerda que esta operación borrará cualquier dato que haya en el disco.

Una vez que tengas un disco particionado y formateado necesitarás instalar el cargador de arranque. Para hacerlo usa el comando grubconfig y sigue los pasos que se te requieran, al final del proceso deberás de poder arrancar tu computadora directamente en dyne:bolic, sin necesidad de usar un CD.

Para re-configurar tu cargador de arranque (no es necesario si instalaste uno desde cero usando dyne:bolic) busca entre las particiones de tu disco duro, en caso de que tengas un directorio llamado boot/ mira si dentro hay otro directorio llamado grub/, si lo hay encontrarás en él la configuración de tu grub, un simple archivo de texto llamado grub.conf o menu.lst el cuál tendrás que editar a mano, añadiendo algunas líneas al final para integrar dyne:bolic a las opciones del menú de arranque:

title dyne:bolic RASTASOFT Afro Linux
root (hd0,0) # AJUSTA ESTO!
kernel /dyne/2618ck1d.krn root=/dev/ram0 rw load_ramdisk=1 max_loop=64 vga=791
initrd /dyne/initrd.gz

Después de hacer eso necesitarás asignar el disco duro en el que has hecho el dock; donde dice “AJUSTA ESTO” cambia el (hd0,0) si es necesario: hd0,1 para hda2 - hd0,2 para hda3 - hd1,0 para hdb1 etc. Probar con valores equivocados no es peligroso y en caso de que estés confundido hay mucha más documentación sobre este proceso en las páginas de manual de grub.

En caso de que tengas instalado lilo, busca entre las particiones de tu disco duro el directorio etc/ y luego busca dentro el archivo lilo.conf, si lo encuentras añade las siguientes líneas al final:

image = /dyne/2618ck1d.krn
  root = /dev/ram0
  append = "max_loop=64"
  initrd = /dyne/initrd.gz
  label = dyne
  read-write
  vga = 791

Asegúrate de que el directorio /dyne esté dentro de la partición en la que arrancas, lo cual se configura en lilo en la línea boot = /dev/hd* que usualmente se encuentra al principio del archivo grub.conf . Por favor observa que el parámetro “image=” lleva un camino completo al archivo del kernel, que se llama como su versión en una forma condensada, por ejemplo aquí 2618ck1d representa 2.6.18-ck1-dyne. El formato condensado es necesario por una restricción de nombre de archivo 8.3 del sistema de arranque isolinux del CD.

Feliz hackeo ;)

Arrancar desde una Red

Arrancar desde una red es posible en algunas computadoras personales: el sistema PXE fue incluido en algunos BIOS ya desde principios del año 2000 (es una estimación amplia): si no se encuentran discos duros o dispositivos de cd de los que se pueda arrancar, la primera pantalla negra de la computadora buscará un arranque PXE en la red local.

Al arrancar, PXE busca un servidor DHCP en la red local para una dirección asignada. Cuando lo encuentra se conecta via TFTP para recibir el kernel y el ramdisk de ese servidor o algún otro.

Para iniciar un servidor TFTP que distribuya el sistema dyne:bolic actualmente instalado es suficiente con ejecutar este comando en una terminal: [d:b] ~ # tftpd -l -s $DYNE_SYS_MNT [Enter] También puedes configurar un servidor DHCP para que provea la dirección de red a cualquier cliente PXE arrancando. Para hacerlo utiliza el programa gráfico gdhcpd iniciándolo desde una terminal, o el archivo de configuración de muestra en /etc/dhcpd.conf. En man dhcpd encontrarás una referencia de cómo iniciar y operar el daemon de DHCP.

Para más información ve man tftpdn y man dhcpd.

Arrancar desde USB

Las siguientes instrucciones explican cómo hacer un dispositivo de almacenamiento USB (como una memoria USB) arrancable con grub e instalar dyne:bolic en ella de modo que puedas correrlo desde el USB sin necesidad de un disco duro o CD.

Si buscas instrucciones sobre cómo guardar tus datos personales en una memoria USB, este no es el lugar adecuado: mira Nesting. Si quieres copiar todo el sistema a tu disco duro, de nuevo, estás en el lugar equivocado: mira Docking. Esta sección documenta cómo poner todo el sistema en la memoria usb.

Todo el sistema requiere un dispositivo USB más o menos del tamaño del dirctorio /dyne (actualmente ~655MB en la versión 2.4.2) + ~30MB (para las cabeceras del sistema de archivos). Por lo tanto, el sistema entero debería caber dentro de una memoria USB de ~685MB, pero tal vez quieras un poco más de espacio para tus archivos personales. Si tu memoria USB es más pequeña intenta usar Nesting en lugar de esto.

Cómo carga DyneII (técnico): el sistema de arranque consiste en un cargador de arranque, en nuestro caso grub el cargador de arranque carga un kernel, en nuestro caso linux :) el kernel carga un disco RAM, en nuestro caso dyne:II initrd.gz el disco RAM buscará por un dock dyne/ guardamos el kernel y el disco RAM en un dock e instalamos grub

Primero que nada descubre qué dispositivo es tu unidad USB. [d:b] ~ # cat /proc/partitions [Enter] Ignora las entradas que terminen en números, esas son particiones individuales en cada unidad separada. Las que terminan en letras son diferentes unidades: hda es tu disco duro IDE primario, sda (o sdb sdc etc.) generalmente es un dispositivo USB (pero también puede ser un disco duro SCSI o SATA, asegúrate de verificar esto en la configuración de tu sistema específico).

Si estás confundido, busca en la columna de bloques, que muestra el # de bloques de 1KB en el dispositivo. Si no sabes el tamaño se tu USB stick, puedes encontrarlo de esta manera. ~1,000,000 bloques = un dispositivo de 1 gigabyte; ~64,000 bloques = un dispositivo de 64MB. A partir de aquí este tutorial asume que tu dispositivo USB es /dev/sda, si no es /dev/sda, cámbialo según sea necesario.

Ahora preparemos las particiones de la memoria usb: en este ejemplo estamos usando el programa de consola cfdisk, pero también puedes intentar usar Parted que es una herramienta gráfica en MENU->ARCHIVOS->Parted. Ten cuidado de seleccionar el dispositivo correcto para modificar (que puede ser diferente al /dev/sda en los ejemplos de más abajo) porque de ahora en adelante las operaciones descritas borrarán todos los datos en el dispositivo.

Iniciemos la herramienta de particionado: [d:b] ~ # cfdisk /dev/sda [Enter] Ahora, dentro de cfdisk: borra todas las particiones crea una nueva partición primaria del máximo tamaño predeterminado establece el tipo a 83 (Linux) Ejecuta todo y Sal del programa.

Ahora estás listo para formatear tu dispositivo: [d:b] ~ # mke2fs /dev/sda1 [Enter] Puedes cambiar el comando anterior a mke2fs -j si quieres usar EXT3 en lugar de EXT2. Sin embargo probablemente no es aconsejable usar el sistema de archivos con registro por diario (journaling) en un dispositivo flash/USB: el registro por diario escribe en el disco más frecuentemente de lo necesario, lo cual desgasta el dispositivo USB más rápidamente. Usa un sistema de archivos que no use el registro por diario como EXT2 (sólo Linux) o FAT32 (si quieres hacer tu memoria USB legible fuera de Linux). El default (ext2) es una elección segura, sin embargo, tal vez quieras leer más sobre sistemas de archivos con registro por diario vs sistemas de archivos sin registro por diario y hacer una decisión informada en tu caso.

Ahora monta el dispositivo: [d:b] ~ # mount /dev/sda1 /mnt/usb [Enter] E instala el cargador de arranque (grub): [d:b] ~ # grubconfig [Enter] Selecciona el dispositivo usb correcto, generalmente el último en la lista. Nota que si todos los dispositivos en la lista comienzan con hda, la computadora que estás usando actualmente no puede iniciar desde un dispositivo usb y estarías instalando grub en una partición de tu disco duro.

Ahora copia el directorio de dock dyne/ desde tu sistema actual [d:b] ~ # mkdir /mnt/usb/dyne [Enter] [d:b] ~ # rsync --inplace -Pr $DYNE_SYS_MNT/* /mnt/usb/dyne/ [Enter] Rsync es mejor que cp y podemos tener una barra de progreso para esta operación, que tomará algo de tiempo, dependiendo de si tienes una conexión USB 1.0 o 2.0.

Debería de estar todo listo en este punto, así que intenta arrancar tu dispositivo USB en una computadora que lo permita. Si funciona, ¡bien! Si no, abre tu /boot/grub/menu.lst (dentro del dispositivo USB) y cambia la línea root (...) de (hd0,0) a (hd1,0).

Hacer una Granja de computadoras

Desde la versión 2 dyne:bolic cambia su acercamiento a las granjas de computadoras implementando una suite de herramientas “conducida por humanos” que te permite controlar varias aplicaciones corriendo en múltiples computadoras conectadas a tu red.

En situaciones donde tienes muchas computadoras viejas puedes usar una para cada tarea y controlarlas todas desde el mismo teclado y ratón. Los escritorios de tu computadora pueden ser visualizados desde tu propia pantalla o en múltiples pantallas en caso de que tengas monitores conectados a cada una. Poderosas estaciones de trabajo pueden combinarse usando múltiples unidades procesadoras y sus pantallas pueden ser apiladas para formar un único escritorio grande.

Esta forma de operar computadoras dyne:bolic involucra diferentes tipos de aplicaciones ofreciendo una configuración flexible que puedes acomodar a tus necesidades. Esta parte del manual solamente te familiarizará con las herramientas y tu tendrás que consultar sus manuales para descubrir todo su potencial.

Para conectar múltiples computadoras primero deberás asegurarte de que las puedes alcanzar desde la red y que conoces sus direcciones. Una manera simple de hacerlo que funcionará en todos los sistemas GNU/Linux es usando el comando ifconfig en cada computadora para imprimir la dirección de red actualmente configurada: [d:b] ~ # ifconfig | grep inet [Enter] luego edita tu archivo /etc/hosts con la lista completa de direcciones y un nombre para ellas que puedes elegir. Copiar el archivo /etc/hosts en todas las máquinas involucradas las hará conscientes de los “nombres de servidor” de las demás.

Synergy es una herramienta poderosa que deja a tu ratón y teclado controlen diferentes escritorios accesibles simplemente moviendo el mouse fuera de la pantalla actual hacia otra. Un archivo de configuración de ejemplo se encuentra en /etc/synergy.conf y debe ser modificado con los nombres de servidor de tus computadoras (para ser asociados con direcciones numéricas IP en /etc/hosts).

La computadora principal donde el teclado y el ratón están conectados debe ejecutar el comando: [d:b] ~ # synergys -n hostname -c /etc/synergy.conf [Enter] Todas las demás computadoras a conectarse deben ejecutar este comando, asegurándose de que el archivo config las incluya en la configuración: [d:b] ~ # synergyc -n hostname -c /etc/synergy.conf [Enter]

VNC es un cliente de video remoto que te deja controlar el escritorio de otra computadora en tu red como si fuera una ventana dentro de tu escritorio actual. Puede usarse también para interactuar con dos ratones y teclados a la vez.

Para compartir el escritorio de una computadora para una conexión VNC entrante sólo ejecuta: [d:b] ~ # x11vnc [Enter] Para conectarse a una computadora compartiendo el escritorio VCN: [d:b] ~ # vncviewer computer [Enter] Para más información sobre VCN ve man x11vnc y man vncviewer.

La ejecución remota de X te permite ejecutar una aplicación en otra computadora y controlarla desde tu escritorio, como si se estuviera ejecutando localmente.

Para autorizar a otras computadoras abrir aplicaciones en tu escritorio primero debes ejecutar el siguiente comando: [d:b] ~ # xhost +computer [Enter] Luego haz clic en el botón de red en el panel de arriba a la derecha y ejecuta Exex_x11, entra tu cuenta de usuario (el default es usuario:root contraseña:luther) y escribe el comando para iniciar la aplicación.

Mantener tus datos seguros

Dyne:bolic está desarrollado pensando en tu privacidad: como mencionamos antes el NEST puede ser encriptado para hacer tus datos privados inaccesibles a menos que tu contraseña sea proporcionada, ahora procederemos a analizar en profundidad todos los aspectos de esta medida de seguridad.

Cuando se crea un nest encriptado, cada archivo que coloques en tu directorio /home será preservado en una forma codificada usando un algoritmo Rijndael/SHA25: este cifrado puede considerarse muy seguro, tal vez algunas organizaciones militares sean capaces de romperlo, pero de cualquier manera sería muy costoso en términos de recursos empleados.

El mecanismo de encriptación de Dyne:bolic emplea un passfile "dyne.nst.gpg" que contiene el cifrado usado para proteger tus datos: ese archivo contiene la contraseña que, combinada con tu archivo dyne.nst, da acceso a la información que guardas en tu nest. Así que ese archivo es de hecho muy importante para tu privacidad y deberías ser cuidadoso y no estarlo copiando por ahí.

Ya que el passfile es tan delicado, éste también está protegido por una contraseña: la que eliges al principio, y es usada para codificar el passfile a través de un algoritmo CAT5. Ten en mente que este algoritmo de cifrado es débil y eventualmente, en caso de que un intruso tome posesión de tu passfile .gpg, será fácil de crackear.

Ahora en términos prácticos esta estratagema de encriptación significa que puedes mover con seguridad tu archivo dyne.nst separado del passfile dyne.nst.gpg: no habrá intrusión alguna en la información guardada dentro incluso si lo pierdes. También significa que puedes dar tu passfile a un amigo, aún protegido por la contraseña que has memorizado, para que ni tú ni tu amigo puedan acceder al nest hasta que se encuentren de nuevo. Más en general, esta estratagema te permite separar tu información encriptada del passfile, mientras mantienes todo sellado por la contraseña que guardas en tu mente, y mover la información por diferentes lugares seguro de que nadie está accediendo a ella mientras tanto.

Así que podemos decir con seguridad que nuestra protección de la privacidad está muy por encima de las estratagemas usadas en los sistemas operativos más comunes, lo cual mantendrá tu información a salvo y físicamente accesible.

En caso de que estés involucrado en algún tipo de misión o tarea crítica y enfrentes la posibilidad de aprisionamiento y tortura, deberás tener un poco más de cuidado. Una buena práctica sería modificar un poco los scripts de inicio de dyne:bolic para tener una petición de contraseña falsa, el script /lib/dyne/nest.sh es un buen lugar para comezar. Otra manera puede ser tener un nest encriptado para el cual revelarías la contraseña si no hay otra opción, pero luego tener otro archivo encriptado escondido en alguna parte que no pida contraseña en cada arranque.


Capítulo 4: Producción de Video

Reproducir, grabar, editar y transmitir tus videos

Tabla de Contenidos

Hoy en día la plataforma GNU/Linux ofrece un interesante panorama de herramientas para la producción, edición y manipulación de video; puedes reproducir cualquier tipo de archivo de video y DVD, pero también codificarlo para distribuirlo además de cambiar entre formatos. Mas aún, puedes encontrar software para grabar y edición-subtitulación no lineal, además de software para mezclar y hacer stream.

Sin embargo deberías considerar que la mayoría de las herramientas que corren en la plataforma GNU/Linux están en desarrollo: de hecho tu puedes ayudar mucho probando y reportando los errores que encuentres, así es como cualquiera puede ayudar a que el softeare libre crezca mucho mejor, como lo hace.

Ahora vamos a saber cómo configurar un dispositivo de video disponible y luego navegar en el software de video incluido en dyne:bolic, siguiendo una subdivisión en las categorías de tareas.

Configurando tus dispositivos de video

Hay varios dispositivos que pueden ser usados en computadoras personales para obtener entrada de video: Webcams USB y tarjetas de captura, tarjetas PCI para TV, Firewire y hasta puertos paralelos. Todos ellos tienen diferentes Circuitos Integrados Auxiliares (Chipset) y fabricantes. Estos dispositivos necesitan diferentes controladores (drivers) de Linux.

Dyne:bolic es capaz de reconocer automáticamenete la mayoría de tarjetas PCI (internas) y tarjetas de TV al momento de arrancar (WinTV, BTTV), y ahora también reconoce controladores Firewire y USB webcams: todos serán inicializados al cargar el sistema y pueden ser accesados desde los dispositivos de video /dev/video0 o los subsecuentes números (video1, video2..) en caso de que tengas mas de uno.

Si tu dispositivo de video no es reconocido automáticametne (si /dev/video no existe) entonces tu necesitas configurarlo a mano. En el caso de las webcams USB un buen lugar para comenzar una busqueda indirecta es el sitio web de Linux-usb. También la guía elaborada por Spot para el usar tu cámara es un buen lugar a visitar para buscar más información sobre qué hacer.

Si la documentación en línea dice que tu dispositivo está soportado por un controlador de un kernel específico, puedes intentar cargarlo usando el comando 'modprobe modulename' y ver si todo fue bien mirando lo que dicen la últimas líneas del mensaje que devuelve el comando 'dmesg'. Muchos módulos están presentes en dyne:bolic, pero algunos pueden requerir ser compilados usando las fuentes del kernel, lo cual es un complicado proceso que no puede ser explicado aquí: necesitarías encontrar mas instrucciones en línea sobre cómo hacerlo y descargar las fuentes del kernel dyne:II. Para esto es necesario usar dyneSDK (ver el capítulo Desarrollo)

VeeJay

Las aplicaciones VeeJay implementan una aproximación vanguardista a la manipulación de video en tiempo real que toma ventaja del alto poder computacional/informático que las computadoras ofrecen hoy en día. Si eres una persona activa en los campos de artes visuales y medios electrónicos, danza o escenografía, este software puede ser interesante y en ocasiones muy útil en tus investigaciones.

FreeJ es un mezclador de vision: un instrumento para manipulación de video en tiempo real usado en los campos de la danza, el teatro, el veejaying, la visualización médica y en la Televisión.

FreeJ puede ser controlado local o remotamente, y también desde múltiples lugares al mismo tiempo usando su ligera interfaz de consola; puede ser automatizado via javascript y operado via MIDI y un joystick. Especialmente el javascript interpretado hace más fácil aprender el lenguaje para que puedas dar tus primeros pasos en el maravilloso mundo de la programación.

Mas documentación sobre FreeJ se encuentra en /opt/video/share/freej, especialmente la referencia al script. Un amistoso manual de usuario está disponible en línea y más información puede encontrarse en el sitio freej.dyne.org

Otras herramientas incluídas en dyne:bolic son utiles para ser aplicadas al video en tiempo real de diferentes maneras: EffecTV puede aplicar efectos en tiempo real a imágenes, una por una, realizando "espejos de distorsión" y otros posibles usos divertidos; Xaos te permite explorar el psicodélico mundo del caos matemático y los fractales :)

Una pieza de software destacada es Pure Data, que junto con varias extensiones genera una herramienta para conectar varias unidades de procesamiento en una escritura visual al día para generar máquinas sonoras y herramientas interactivas de video. Pure Data, también llamado PD, es tan poderosa como complicada de aprender; ayuda el hecho de que ahora ha sido adoptada por varias escuelas de arte mediático alrededor del mundo como un proyecto libre y de código abierto, para que los estudiantes puedan realizar sus proyectos.

Partiendo de la vasta comunidad de artistas digitales y creadores usandola en todos los tipos de instalaciones interactivas y performances, el equipo Goto10 se unió al desarrollo de dyne:II para implementar el módulo de software pure.dyne el cual te ofrece todo lo que necesitas para comenzar a utilizar directamente Pure Data sin problemas de instalación: visita el sitio web http://puredyne.goto10.org para descargar una copia y agregala a tu sistema dyne:bolic.

Reproducir

Los programas están equipados para reproducir varios formatos de video, como los archivos AVI, MPEG, DIVX y WMV, señales de tarjetas de TV o Quicktime, RTPS y señales de red en vivo tipo HTTP. Hasta el momento, dyne:bolic es compatible con la mayoría de los formatos de video existentes: gracias al software libre Mplayer, Xine y FFMpeg tienes la oportunidad de ver archivos que de otra manera no son soportados por otros sistemas propietarios. Xine es recomendable para ver DVDs, mientras que Xawtv es un completo visor de televisión. Mplayer puede ser usado para ver archivos siempre que hagas doble click en el explorador de archivos (para cerrar mplayer tienes que presionar 'q').

Grabar

La grabación de video tiene soporte para usarse en un amplio número de dispositivos: desde la tarjeta de TV/video y el DVD usando MEncoder hasta una herramienta de línea de comandos que puede ser usada desde una XTerminal, un poco complicada pero muy poderosa, revísalo en el manual. Una interfaz amigable para la captura de DV a través de firewire está disponible con Kino; mientras que XawTV ofrece soporte para todos los otros tipos de dispositivos de video y puede ser muy bueno para checar si el tuyo es reconocido ya que tiene el soporte mas amplio de hardware.

Editar

Dentro de dybe:bolic encontrarás Cinelerra, el cual ofrece un acercamiento a la edición no lineal mediante una agradable interfaz, es veloz y tiene buena respuesta.

Puedes obtener una introducción a Cinelerra con el manual disponible en línea en manual.cinelerra.org o en este tutorial en línea.

También AviDeMux es una herramienta útil para el cortado rápido de video, ofrece soporte a mas formatos de entrada que Cinelerra y puede ser usado para convertir entre algunos formatos y para hacer tareas simples de edición.

Considera que las tareas de edición de video son las más demandantes, así que necesitas una relativamente rápida computadora (desde 2004-2005) para poder lograr una adecuada interactividad y resultados satisfactorios.

Para convertir entre formatos de video, se incluye la poderosa herramienta Transcode, la cual es una aplicación de línea de comandos que puede ser aplicada para convertir un largo número de archivos o fácilmente accesible a través de una interfaz gráfica.

Stream

El Stream de video puede ser fácilmente activado en tres diferentes maneras: usando Mpeg4IP, FreeJ o HasciiCam.

Con Mpeg4IP podrás hacer stream en formato Mpeg4 y para eso necesitas un servidor corriendo el software de transmisión Darwin. La señal que resulte puede ser vista con la mayoría de los reproductores disponibles hoy en día en varias plataformas. Este método ofrece buena calidad y una secuencia de cuadros de imágen lis (sin saltos); se puede grabar mientras se reproduce; usa eficientemente el ancho de banda cuando se utiliza en multicast, y puede transmitir el audio y el video sincronizados. Sus deventajas son que puede ser difícil encontrar o levantar un servidor que transmita, y que las máquinas lentas no pueden ni reproducirlo ni transmitirlo (intensidad de CPU).

Con FreeJ puedes combinar diferentes fuentes de video, aplicar efectos y sobreponer texto, colocar imágenes transparentes y mucho mas; toda la señal puede ser codificada en vivo con el codec libre Theora y enviada a un servidor activo Icecast2, de esta manera cualquiera puede tomar tu señal desde el internet y reproducirla usando por ejemplo el reproductor VideoLan que está disponible para todas las plataformas de computadoras. La capacidad de mezclar y aplicar efectos al video en tiempo real es una característica única de FreeJ, pero una desventaja puede ser que al principio tengas dificultadas para manejar el programa dado que tiene que ser activado con marcas específicas desde una XTerminal para así poder activar las funcionalidades de transmisión. Para saber más sobre esto revisa el capítulo anteriror que habla sobre VeeJaying y revisa también el capítulo de Streaming en la documentación en línea de FreeJ. En /opt/video/share/freej de dyne:bolic encontrarás un script de ejemplo para hacer stream.

Hasciicam es otro software Rasta, el primero que Jaromil publicó (2000) distribuido por dyne.org. Es capaz de transformar un video en texto colocando letras en vez de colores llenando la imágen como una escala de grises. Con esta codificación la imágen es poco detallada pero muy interesante, y su transmisión por internet usa muy poco ancho de banda: Vía ftp, Hascciicam puede subir video a un servidor via ftp y puede ser vista directamente desde cualquier navegador (también los basados en texto), por lo tanto puede funcionar para generar stream de video incluso usando computadoras antiguas agregándole un componente especial: los carácteres ASCII. La desventaja aquí es que tenemos un video formado de carácteres: bueno pero que no ofrece una imágen definida, tan sólo monocromática y que no alcanza a aplanar los cuadros de imágen al movimiento. Para más información de cómo usar mira man hasciicam.


Capítulo 5. Producción de audio

Tabla de contenidos

Reproduce, graba, edita y transmite tu audio.

Esta distribución está llena de software de audio para hacer todo tipo de cosas: música electrónica, procesamiento de sonidos, efectos de voz, entrevistas y más. Y hay una cosa importante que hace a este sistema superior a cualquier otra solución comercial: no hay competencia :)

La mayoría de las aplicaciones de audio en dyne:bolic se pueden conectar entre sí, input con output, para formar una cadena de herramientas procesando sonido: esto se hace gracias a tecnologías como JACK y la Arquitectura de Sonido Avanzada para Linux (ALSA). En lugar de mantener separadas las tareas de cada una de las aplicaciones, ahora es posible aprovechar la gran variedad de enfoques que un sistema GNU/Linux como dyne:bolic tiene para ofrecer.

Este enfoque revolucionario seguramente te recompensará por el esfuerzo de iniciarte en su uso,. Un buen lugar para iniciar es la perspectiva de Spot sobre la tecnología en http://spot.river-styx.com/viewarticle.php?id=14 y http://spot.river-styx.com/viewarticle.php?id=17.

Reproduce

Este sistema operativo provee reproductores para muchos formatos de audio disponibles desde el principio: WAV, MIDI, MP3, OGG / VORBIS, MOD, XM, FLAC, SPEEX y todavía más pueden ser reproducidos o recodificados, cambiando entre formatos.

El reproductor Xmms es un reproductor de audio práctico con un editor de listas de reproducción minimalista e intuitivo, puede reproducir transmisiones de radio en línea y archivos locales y puede cambiar su apariencia y o ser modificado con plugins como gustes.

Amarok es una rocola personal muy completa que maneja la colección de tus archivos de audio y baja automáticamente etiquetas imprimibles y letras de tu música favorita. Déjalo explorar tu colección de audio y te permitirá buscar palabras claves, memorizará tus preferencias y adivinará listas de reproducción de tu música favorita. Hace una perfecta interfaz para una rocola!

Timidity es un sintetizador de MIDI que usa parches GUS para traducir tus archivos MIDI a archivos de audio, así como para permitirte escuchar partituras MIDI.

MikMod es un reproductor de formatos como MOD, XM, S3M etc. Que te permite escuchar producciones de la demo-scene, música de videojuegos y lo que comúnmente se conoce como “chip tunes”.

Toca

Esta sección incluye software para producir música en vivo, interactuar en tiempo real con las aplicaciones que generan sonido a partir de los inputs de micrófono, midi, teclado o mouse. Todos estos programas requieren que Jack funcione adecuadamente, de manera que pueda estar interconectado en una cadena de programas, como un rack virtual de diferentes aplicaciones.

Hydrogen es una cja de ritmos en la que puedes cargar instrumentos de prueba y componer una partitura para que la toquen a un ritmo específico. Su página ofrece una colección de muchos kits de percusiones más que puedes descargar, ve a http://www.hydrogen-music.org.

Jamin es la interfaz de masterización de audio de Jack, puede desempeñar masterización de audio profesional en flujos de inputs de estéreo y ecualizar señales con una interfaz intuitiva y avanzada para dar forma a todas las frecuencias en tiempo real.

Jack Rack es un poderoso rack de efectos que pueden aplicar cadenas de pligins de audio (LADSPA) al sonido actualmente producido por otros programas. Usando Jack puedes interconectarlo con todas las demás herramientas de interpretación y añadir uno de los más de 200 efectos disponibles en dyne:bolic.

FreeWheeling es una aplicación funky que te deja grabar y tocar múltiples muestras en tiempo real, de manera que permanecen en bucle y se pueden añadir una sobre otra: es una herramienta fresca para manipular, sumar y crear sonidos grabados, pero requiere que leas algunas instrucciones antes de empezar a usarlo ya que se controla enteramente desde el teclado (y opcionalmente midi).

Graba y edita

Esta versión de dyne:bolic viene con sofware actualizado para grabar y manipular audio: es generalmente más estable y con más opciones que el anterior, así que con suerte notarás las mejoras al usarlo.

Ardour es el estudio multipista que ofrece la interfaz más avanzada para tu estudio de grabación de música. Combinado con otras aplicaciones cuando sea necesario (también usa Jack) realmente puede solucionar tus necesidades de masterización de audio y producción de música. Revisa la documentación en línea para este valioso software en la página de Ardour: si eres un músico, la paciencia requerida para aprender su uso y sus atajos de teclado definitivamente valdrá la pena.

Audacity es un amigable programa de edición de audio adecuado para manipular tus archivos de audio, entrevistas y grabaciones, para separarlas o mezclarlas, aplicarles efectos y codificarlas en varios formatos. Puede ser usado también para grabar audio directamente desde su intuitiva interfaz, que también se puede encontrar comúnmente en otros sistemas operativos ya que es una aplicación multiplataforma. Una opción perfecta para empezar a maniular audio.

Rezound es un editor de samples muy capaz que te permite manipular tus muestras, grabar, hacer bucles, y aplicar efectos usando una interfaz intuitiva y completa, muy eficiente también en sistemas lentos.

TimeMachine es una simple pero muy útil herramienta para grabar audio, requiere Jack como fuente de sonido. Es sencillamente un gran botón rojo: cuando lo presionas comenzará a grabar comenzando a partir de hace 10 segundos, de manera que puedas grabar lo que te parezca interesante en un input de audio mientras lo escuchas. Cuando lo presionas graba lo que acabas de escuchar sin necesidad de regresar el audio.

Transmite

MuSE es otro software rasta de dyne.org incluido, que te permite transmitir audio en el internet a través de varios servidores (Icecast, Darwin y Shoutcast) en formato MP3 o OGG, así tus escuchas podrán escuchar tu voz y música conectándose con los reproductores más disponibles.

MuSE puede mezclar hasta 6 bitstreams de audio codificados (desde archivos o la red, mp3 u oog) más una señal de input de la tarjeta de sonido, el flujo resultante puede ser reproducido localmente en la tarjeta de sonido y/o codificado a diferentes bitrates, grabado en el disco duro y/o transmitido a la red.

Una muy buena introducción a la transmisión y operación de MuSE está disponible en línea en: http://flossmanuals.net/muse, mientras que más información puede ser encontrada en su página de internet.


Capítulo 6. Software para Gráficos

Manipulación de imágenes y modelaje 3d

La distribución dyne:bolic incluye algunos programas excelentes para la composición de imágenes y el modelaje 3d:

Gimp es una aplicación muy completa que capaz de crear y editar imágenes de mapas de bits y ofrece un entorno perfecto para los gráficos de internet así como una poderosa tecnología para automatizar sus operaciones y hasta generar logotipos estilizados.

Inkscape es un editor de gráficos vectoriales adaptable para el dibujo a mano, caricaturas y comics y demás gráficos generalmente escalables, convirtiéndose en una herramienta ideal para folletos e impresiones de alta resolución y tetracromáticas.

Blender consiste en una poderoso entorno para el modelaje en 3d y el desarrollo de juegos: tiene una interfaz muy bien desarrollada, un motor escrito en Phyton para el trazado y escritura del comportamiento de objetos. Puede producir escenas así como aplicaciones interactivas y animaciones en líneas de tiempo. Actualmente existe una gran comunidad de artistas usándolo, hay tutoriales y ejemplos disponibles en su sitio web, además de que un detallado manual puede ser solicitado en línea. Blender es una de las mejores herramientas en el mundo del software libre y código abierto para producciones multimedia de cualquier tipo. Está siendo adoptado para la producción de varias películas profesionales. Usando la modularidad de dyne:bolic (clustering capability) puedes crear granjas computarizadas o de segmentos (render farms) distribuyendo la carga en varias computadoras en la misma red, checa el tutorial de Spot disponible en línea.

G Qview es un navegador de imágenes fácil de usar con el que incluso puedes construir presentaciones para mostrar interactivamente tus galerías de imágenes.

Image Magick es un paquete de líneas de comandos, iniciando con el convertidor desde la terminal (ver man convert) puedes fácilmente aplicar operaciones sobre múltiples archivos aplicándoles conversión de formatos y filtros a una gran cantidad de imágenes.


Capítulo 7. Software para Texto

Edición de texto y publicación con dyne:bolic

Dyne:bolic incluye software que te permite fácilmente escribir y componer cualquier tipo de documento: hipertextos que pueden ser publicados en internet (HTML), textos formateados para imprimir (RTF, PDF Postscript y hasta el desacreditado formato DOC [1])

El procesador de palabras Abiword esta alcanzando un nivel artistico rapidamente con multiples herramientas utiles para tu trabajo diario, tus necesidades personales o tan solo para divertirte escribiendo al viejo estilo. Es capaz de leer y escribir todos los tipos de documentos industriales standard, como los documentos de Open Office.org, Microsoft Word, Wordperfect, Texto de Formato Enriquecido (RTF), paginas HTML para web y mucho mas.

Scribus es un programa de publicación para componer en formatos vectoriales como PDF y Postscript, resulta útil para paginar texto imprimible de forma profesional. Sirve para producir revistas, folletos y la mayoría de las publicaciones que necesiten mezclar texto e imágen en una página siguiendo plantillas ajustables.

Nedit es un editor de texto plano que ofrece un marcado de sintaxis para un par de lenguajes de código fuente. Es un programa intuitivo y fácil de usar para novatos, pero al mismo tiempo ofrece un poderoso entorno para programadores.

Finalmente, Antiword es una aplicación muy útil para convertir cualquier archivo .doc en un archivo de texto plano utilizando un simple comando, dejando el posicionamiento de líneas intacto. Para un rápido inicio, intenta esto:

[d:b] ~ #antiword malo.doc > bueno.txt [Enter]

como sucede en otros casos, existen páginas de manual que ofrecen mas información del uso de este programa, solo tienes qe teclear man antiword en una terminal.

En caso de que necesites una completa paquetería de oficina para satisfacer tus necesidades, existe el módulo de dyne Open Office 2.0 disponible en línea para descargarlo desde nuestro sitio, puedes colocarlo dentro del directorio de módulos de tu Dock ( dyne/modules/ ) y al próximo reinicio de tu sistema lo encontrarás en el menú de aplicaciones. Con Open Office puedes leer y escribir todos los archivos .DOC, las hojas de cálculo .XLS, las presentaciones .PPT, y mas.


Capítulo 8. Software para Comunicación

Software para comunicación incluido en dyne:bolic

Contenido

Desde su nacimiento, los sistemas UNIX han estado especilamente diseñados para trabajo en red, para manejar eficientemente protocolos de comunicación conectando computadoras a través de la red y por supuesto para Internet. Siendo un sistema GNU/Linux, dynebolic ofrece un amplio margen de posibilidades y aplicaciones, desde el mas simplea hasta el más avanzado software para redes.

Como una herramienta práctica para el hacktivismo mediático, dyne:bolic enfatiza la protección de la privacidad de los usuarios, ofreciendo un proxy para el anonimato, además de herramientas listas para usarse y que sirven para encriptar correos electrónicos.

Los demonios para compartir archivos Samba funcionan por default en dyne:bolic, compartiendo en modo de solo lectura el sistema en función, haciéndolo disponible para intalarlo en una red local. Si quieres compartir otros directorios necesitas cambiar a mano el archivo de configuración que se encuentra en /etc/samba

Software para entrar a la world wide web

Gracias a la variedad de navegadores desarrollados para la plataforma GNU/Linux, en dyne:bolic hay tres maneras diferentes de accesar a páginas WWW.

El primer y mas conocido navegador es Firefox, el cual es desarrollado por el equipo Mozilla para tener una herramienta completamente capaz para entrar a la red. Firefox tiene una interfaz intuitiva, manejo de marcadores y un par de plugins que pueden ser usados para extender sus funcionalidades.

Luego tenemos Links el cual es una alternativa ligera a la anterior: corre mucho mas rápido en computadoras antiguas mientras que mantiene la mayoría de las funcionalidades más importantes. Se destaca por su calidad y velocidad al desplegar páginas web, conviertiéndolo en una gran herramienta para las presentaciones.

Para la edición de páginas web, los diseñadores disponen de Nvu, un programa que contiene un poderoso entorno WYSIWYG plenamente integrado con los estandares para páginas web de Firefox/Mozilla. Esta es una amigable herramienta que también encontrarás disponible para otras plataformas y sistemas operativos, por lo que es poco el esfuerzo que necesitas para aprender a usarlo y tener tu página personal en pocos minutos.

También se incluye una poderosa "araña" para rastrear y descargar sitios web completos: nos referimos a la herramienta de línea de comandos Wget. Puedes descubrir cómo funciona consultando su manual desde una Terminal X, tecleando man wget.

Para mejor privacidad y anonimato cuando navegas, pero también para alejar espantosos anuncios y ventanas emergentes, un proxy puede ser configurado para ejecutarse al iniciar el sistema: Tor puede ser configurado para hacer todas las conecciones a internet completamente anónimas y no rastreables.

Para activar esta funcionalidad mira dentro del archivo dyne.cfg en tu DOCK y agrega "tor" en la lista de demonios que deben iniciar durante el arranque.

Correo electrónico y encriptación

Envía tus cartas de modo seguro

Hoy en día el correo electrónico es la tecnología de comunicación personal más extendida en la red. Sin embargo casi siempre es inseguro para la privacidad y está siendo fácilmente interceptado por toda clase de terceras partes: para reforzar los controles gubernamentales, sondeos mercantiles y espionaje. Si te preocupa tu privacidad entonces probablemente has escuchado acerca de la solución para una comunicación segura por correo electrónico: la encriptación.

La encriptación es una técnica basada en fórmulas matemáticas que hacen tus comunicaciones seguras mediante la utilización de dos llaves: una privada y una pública. Puedes ofrecer la llave pública a tus amigos mientras que mantienes la privada para descifrar los mensajes que recibas -quienes deseen enviarte un mensaje seguro necesitarán usar tu llave pública para encriptarlo y únicamente tu llave privada podrá descifrarlo. Para más información de este uso y su implementación revisa las hojas electrónicas en http://www.gnupg.org

Dyne:bolic viene equipado con el popular programa de correo electrónico Thunderbird con el que se pueden manejar varias cuentas, descargar buzones y crear folders y filtros para organizar los mensajes. Se puede integrar con el sistema de encriptación GnuPG instalando una extensión llamada Enigmail.

También se incluye el Asistente de Privacidad de GNU (GPA) para ayudarte a generar tus llaves encriptadoras y organizar en un llavero local las de tus amigas.


Capítulo 9: Consola de línea de comandos

Tabla de Contenidos

La más rápida y eficiente forma de realizar cambios en la configuración de tu computadora, instalarle software o trabajar en una computadora remota, es la línea de comandos. Mucha gente se espanta de la interfaz de línea de comandos (CLI) porque la costumbre de utilizar la interfaz gráfica (CGI). Si nunca haz utilizado una CLI puede ser un poco desalentador aunque con un poco de práctica puedes encontrarlo mucho mas fácil hasta convertirlo en tu preferido.

La clave está en tomarlo con calma y practicar lo que vas aprendiendo. No intentes recordarlo todo, solo utiliza lo que que sabes y extiende tu conocimiento cuando sea necesario. Todo llega a su tiempo.

Comandos de Texto

La línea de comandos es la manera mas poderosa de interactuar con Linux, pero sino la haz usado tu ruta de aprendizaje puede ser un poco difícil. La mejo estrategia es utilizar únicamente comandos básicos. No intentes de pronto hacer todo tu trabajo desde la línea de comandos. Aprende unos pocos comandos, usalos y aumenta paulatinamente tu entendimiento de lo que pueden hacer para que luego extiendas tu vocabluario de comandos cuando lo necesites. En seguida apuntamos algunos comandos básicos con los que puedes comenzar.

No intentes aprenderlos todos de una sola vez. Elige algunos cuantos y practicalos.

man
ls
cd
mkdir
mv
rm
locate / slocate
ping
cp
pwd
tab

Y algunos otros más que es bueno conocer son:

ldconfig
./configure
make
make install
tar
more
whereis

Ahora vamos a echarle un vistazo a cada uno. Sientete libre de experimentar con estos comandos. Ten un poco de cuidado con lo que haces porque se pueden dañar tus archivos, folders y hasta el sistema operativo. man

man

Este es un buen comando para empezar porque nos permite ver y estudiar las páginas de ayuda de Linux. Man es la abreviación de manual y si lo tecleas seguido de un espacio y luego el nombre de cualquier otro comando obtendrás una páguna de ayuda en la terminal que te mostrará una descripción de ese comando. Por ejemplo teclea esto:

[d:b] ~ # man ls [Enter]

Lo anterior te mostrará en la terminal la información relacionada con el comando ls. Aunque el formato de esta página de ayuda puede parecerte un poco confusa navégala con calma y no te preocupes, lo que necesitas estudiar bien es la descripción del comando, es decir lo que hace. Para ver el resto de la página del manual presiona la barra espaciadora y para salir presiona la tecla q.

Intenta leer las páginas man de los otros comandos que enlistamos antes. Existe otra manera de ayuda en el sistema que funciona de la misma manera: para probarla, en vez de teclear man teclea info y luego el comando como se muestra a continuación:

[d:b] ~ # info ls [Enter]

¡Experimenta!

ls

ls es el comando que puedes usar para listar el contenido del directorio en el que estás. Teclea este comando en una ventana de terminal y mira lo que obtendrás. Una de las características de los comandos de Linux y que es algo muy simple de hacer, es que puedes agregarles varios parámetros para refinar la manera en que utilizas cada comando. Usualmente estos parámetros se agregan al comando colocando un guión intermedio ( - ) directamente después del comando seguido del nombre del parámetro o su abreviación. Por ejemplo si yo tecleo lo siguiente

[d:b] ~ # ls -l [Enter]

estoy pasándole el parámetro l al comando ls. El parámetro l es la abreviación de long list (lista extendida) y se refiere al tipo de formato en que la información que debe desplegar ls, de esta manera es que este parámetro ofrece más detalles que tan solo teclear el comando ls. Intenta estas dos formas y compara las diferencias.

Quizá ahora te preguntarás: ¿cómo sé cuales son los parámetros para cada comando?. La respuesta la puedes encontrar en las páginas man para cada comando tal y como vimos antes.

Para el caso del comando ls, sugiero que te familiarizes con el formato usando solamente ls y también usando ls -al, ls -l, y ls -lh.

cd

cd significa Change Directory y es el comando mas utilizado para navegar en el sistema de archivos de tu computadora. Para probarlo, teclea ls para obtener la lista de todos los archivos y folders del directorio en el que estás ubicada. Luego intenta teclear ls seguido del nombre de uno de los archivos de la lista; por ejemplo si existiera un archivo llamado mio.txt puedo teclear:

[d:b] ~ # cd mio.txt [Enter]

¡Esto nos devuelve un error! ¿Porqué? Porque no puedes cambiarte a un directorio si este es un archivo. Es bueno intentar esto para entender que no puedes causar ningún daño cometiendo algún error con cd.

Para cambiarte o ir a un directorio tecleas cd seguido del nombre del directorio al que quieres navegar. Si existiera un directorio llamado 'src' que apareciera listado cuando intentamos el comando ls, podríamos teclear:

[d:b] ~ # cd src [Enter]

Si esto fue exitoso, entonces la termnial no te mostrará ningún error. Intentalo con un directorio verdadero de tu computadora. Si te falla puede ser debido a que no tienes los permisos para entrar a ese directorio, escribiste mal el nombre del directorio, o que el directorio simplemente no existe.

Ahora unas palabras acerca del sistema de archivos de Linux. Si el sistema fue dispuesto adecuadamente para tí, generalmente estarás trabajando en tu directorio personal (home), el cual está localizado normalmente en un lugar apropiado en Linux. Para encontrar tu directorio personal teclea lo siguiente:

[d:b] ~ # cd / [Enter]

Esto te ubicará en el directorio superior del sistema de archivos de tu computadora.

Como sabes, si tecleamos ls nos mostrará la lista de directorios de la computadora en su nivel más superior del sistema de archivos.

Aquí existen varios directorios importantes de los cuales el comando man hier te ofrecerá una descripción de su significado. Pero ahora tu necesitas estar mas interesado con el que se llama home. Para dirigirte a ese directorio podemos usar el comando cd que aprendimos antes:

[d:b] ~ # cd home [Enter]

Si tecleas ahora ls obtendrás una lista de mas directorios y quizá alguno de estos tenga el mismo nombre de tu nombre de usuario. Este es tu directorio personal o /home/ al cual hemos navegado usando un posicionamiento relativo, es decir, si esto en el directorio superior y tecleo cd home entonces me ubicaré en el directorio donde se guardan todos los directorios personales de todos los usuarios.

Si yo estuviera en cualquiera otro lugar del sistema de archivos y tecleara cd home obtendría un error. Si lo necesitas puedes usar rutas absolutas para dirigirte al directorio que quieras. Por ejemplo, si yo estuviera en alguna esquina oscura de mi sistema de archivos y necesito rápidamente ir al directorio home, debería teclear:

[d:b] ~ # cd /home [Enter]

Si necesito entrar a un directorio ubicado dentro del directorio home (digamos por ejemplo que tengo un directorio llamado juanita), podría teclear:

[d:b] ~ # cd /home/juanita [Enter]

mkdir

Este comando es la abreviación de Make Directory (Hacer Direcotorio) y lo utilizas para crear nuevos directorios. Para hacer eso, simplemente teclea mkdir seguido del nombre del directorio que quieres crear:

[d:b] ~ # mkdir bloop [Enter]

El comando anterior creará un directorio nuevo llamado 'bloop' en el directorio en el que estoy ubicado. Si ya existiera un directorio con este nombre, obtendría un error y la computadora no sustituiría el directorio existente. Experimenta creando algunos directorios.

pwd

Si estas perdida y no sabes en que lugar del sistema de archivos estás, siempre puedes teclear pwd y te dirá donde te encuentras. Este comando te muestra la ruta absoluta hacia donde estás. Por ejemplo, si estoy en mi directorio personal 'juanita', la salida del comando pwd será:

[d:b] ~ # /home/juanita [Enter]

Experimenta cambiando los directorios con cd y luego tecleando pwd para ver donde estás.

mv

Este comando es corto para Move (Mover) y como suena, te permite mover archivos dentro del sistema de archivos. Este comando es como las acciones de cortar y pegar de Mac y Windows. Para usar este comando tecléalo seguido del archivo que quieras mover (en su ruta absoluta o relativa incluyendo el nombre del archivo) y luego coloca el lugar hacia donde quieres mover el archivo (en su ruta absoluta o relativa). Por ejemplo, si quiero mover el archivo 'mio.txt' desde mi directorio actual hacia el directorio '/usr/bin' debería teclear lo siguiente:

[d:b] ~ # mv mio.txt /usr/bin [Enter]

Nota: No tengo que teclear el nombre del archivo en la ruta hacia donde lo voy a mover a menos de que además de moverlo de lugar quiera cambiarle el nombre. Si por ejemplo quiero mover el archivo 'mio.txt' y quiero cambiarle el nombre a 'tuyo.txt' debería teclear:

[d:b] ~ # mv mio.txt /usr/bin/tuyo.txt [Enter]

Si solo quiero renombrar un archivo y no moverlo puedo usar también el comando mv para cambiar el nombre del archivo sin moverlo:

[d:b] ~ # mv mio.txt tuyo.txt [Enter]

Observa que cuando usas el comando mv estás moviendo y no copiando el archivo, por lo tanto el archivo será desplazado y no existirá en el lugar desde donde lo moviste. También tienes que tener cuidado con sustituir archivos accidentalmente: si por ejemplo yo muevo un archivo hacia un directorio que contiene otro con el mismo nombre, entonces el archivo que estoy moviendo sustiuirá o sobre-escribirá este archivo, y quizá podrías estar en problemas... por lo tanto tienes que tener cuidado con lo que tocas.

rm

En la otra mano, tenemos este comando con el que deberías tener mucho cuidado. rm significa Remove (Remover) y sirve precisamente para borrar un archivo o un directorio (y sus contenidos). Se utiliza tecleando 'rm' seguido del nombre del archivo que quieres bien destruir; si quieres remover un directorio puedes usar el mismo comando utilizando el parámentro -R como se indica a continuación:

[d:b] ~ # rm -R nombrededirectorio [Enter]

donde nombrededirectorio es por supuesto el nombre del directorio que deseas remover. Para hacer esto ultimo puedes usar también rmdir (que significa remove directory). Tienes que ser EXTRAMADAMENTE cuidadosa con estos comandos porque usarlos imprudentemente puede provocar el fin de tu sistema operativo.

locate

Este comando te ayuda a encontrar archivos en tu sistema. La ubicación de todos los archivos en tu sistema se almacena en una base de datos que se actualiza periódicamente usando el comando updatedb. Para encontrar un archivo simplemente teclea locate seguido de una parte del nombre del archivo o directoruo que busques. Por ejemplo, si estoy buscando el archivo icecast.conf debería teclear:

[d:b] ~ # locate icecast.conf [Enter]

Si no obtengo ningun resultado significa que el archivo no existe en mi sistema o que existe pero mi base de datos no sabe donde está. En este ultimo escenario podría teclear updatedb y volverlo a intentar.

Con locate no puedes destruir nada así que experimenta tanto como quieras. Algunas veces updatedb puede tomar un poco de tiempo para ejecutarse si no lo has ejecutado recientemente o si tienes una máquina lenta; este comando consume bastante recursos del CPU en máquinas lentas así que nunca lo uses si estás realizando alguna 'misión crítica' en tu máquina.

También te gustaría experimentar con whereis, which y find para buscar y encontrar archivos en tu sistema.

cp

Este es corto para... ¿adivinaste?.. copiar. Se usa como mv con la única diferencia de que crea una copia dejando el archivo original donde estaba.

ping

Normalmente no se incluye en los 10 comandos que mas necesitas conocer pero es muy útil si necesitas saber si estás en línea. ping envía una petición a una computadora de la red y si esta computadora está conectada responderá. Teclea ping seguido de alguna URL que conozcas, por ejemplo sería buena idea intentar los siguiente:

[d:b] ~ # ping www.google.com [Enter]

Si la computadora recibe la petición obtendrás alguna información de regreso en la terminal, la cual se desplegará hasta que detengas el proceso ping tecleando ctrl + c.

Si no obtienes ninguna respuesta de ping entonces probablemente estás desconectada. Sin embargo hay que saber que algunas máquinas no responden a las peticiones ping por seguridad u otras razones, así que asegúrate saber si realmente la máquina a la que estás enviando las peticiones responde a ping.

También es que algunas conexiones a internet no permiten tráfico ping... por ejemplo mientras Jaromil estaba escribiendo esto estaba en un café internet en Riga donde tenían una conexión rápida pero no podía ejecutar ping, esto era debido quizá a que pensaban que solo los hackers malvados usan ping y por lo tanto tenían algunas medidas paranóicas de seguridad que no le permitían hacer todas las cosas utiles en la red...

tab

Tab no es un comando sino mas bien un atajo de teclado... cada teclado tiene una tecla tab y es muy útil en GNU/Linux. Quizá utilizaste alguna vez esta tecla para alinear palabras y aunque en GNU/Linux la podrás seguir utilizando para hacer eso, al utilizar tab en una terminal Linux ahorras tanto tiempo que cuando la domines la usarás todo el tiempo.

Básicamente la tecla tab es algo así como un autocompletador. Si por ejemplo qiero mover hacia algún lado el archivo 'dsjkdshdsdsjhds_ddsjw22.txt' mediante el comando mv puedo teclear cada una de las letras del estúpido nombre de este archivo, o puedo teclear mv (para 'moverlo') seguido de las primeras letras del nombre del archivo y luego presionar la tecla tab que mágicamente completará el resto del nombre del archivo. Si el nombre del archivo no se completa significa que existen varios archivos (o directorios) que empiezan con estas pocas letras que he tecleado, por lo que podría teclear algunas letras mas del nombre del arhchivo y teclear tab nuevamente o ayudarme tecleando dos veces tab y así me mostrará una lista de los archivos que comienzan con estas letras.

Tab es tu amigo, úsalo mucho.

Otros comandos

Al principio de este capítulo dijimos que existen algunos otros comandos que es recomendable conocer, estos son:

ldconfig
./configure
make
make install
tar
more
whereis

Ya hemos hablado de algunos de ellos, nombrándolos *whereis* y *updatedb*. Los demás son útiles cuando estas instalando software.

More se usa si quieres tener un mayor control de la salida en terminal de cualquier comando. Si por ejemplo estoy en un directorio que contiene 1000 archivos y tecleo 'ls' la salida del comando no se ajustará agradablemente a la pequeña ventana de mi terminal que la desplegará tan rápidamente que no me sirve. Para desplegarlo mas lentamente para poder leer la salida incluimos more, de esta manera:

[d:b] ~ # ls | more [Enter]

Si yo uso esto en mi directorio con 1000 archivos obtengo como salida una página a la vez, para ver la página siguiente presiono la barra espaciadora, presionando 'q' termina more. Muy bien, seguramente te estás preguntando qué es esa curiosa linea delgada en el comando anterior... bueno, pues eso es conocido como el comando pipe.

Pipe te permite combinar comandos para controlar el tipo de salida que obtienes, normalmente se utiliza para refinar un comando tal y como lo hacen los parámetros de comando. Por lo tanto cuando obtengas fluidez con estos comandos puedes escribir cosas que parecen ecuaciones pero que realmente son maneras de usar comandos generales... y pipe es fundamental para perfecionar tu eficiciencia.

Estructura de Archivos de Linux

Si abres una terminal y tecleas lo siguiente:

[d:b] ~ # cd / [Enter]

Te ubicarás en el directorio superior del sistema de archivos de Linux. Si luego tecleas:

[d:b] ~ # ls -al [Enter]

Verás algo similar a esto:

total 80
drwxr-xr-x  19 root root  4096 Oct  9 13:57 .
drwxr-xr-x  19 root root  4096 Oct  9 13:57 ..
drwxr-xr-x   2 root root  4096 Oct  5 09:31 bin
drwxr-xr-x   3 root root  4096 Oct  9 21:47 boot
drwxr-xr-x   1 root root     0 Jan  1  1970 dev
drwxr-xr-x  71 root root  4096 Oct 15 11:35 etc
drwxr-xr-x   4 root root  4096 Oct  9 19:21 home
drwxr-xr-x   8 root root  4096 Sep 18 23:29 lib
drwx------   2 root root 16384 Sep 18 20:06 lost+found
drwxr-xr-x   9 root root  4096 Oct  9 16:36 mnt
drwxr-xr-x   9 root root  4096 Oct  8 23:20 opt
dr-xr-xr-x  64 root root     0 Oct 15 11:35 proc
drwx------  75 root root  8192 Oct 15 12:35 root
drwxr-xr-x   2 root root  4096 Sep 23 18:58 sbin
drwxr-xr-x   9 root root     0 Oct 15 11:35 sys
drwxrwxrwt  60 root root  4096 Oct 15 12:36 tmp
drwxr-xr-x  17 root root  4096 Oct  5 09:31 usr
drwxr-xr-x  15 root root  4096 Oct  9 13:57 var

La lista anterior es lo más aproximado a la estructura general del directorio de Linux. Cada nombre en la extrema derecha representa un directorio, y cada directorio contiene archivos y directorios que son específicos a ese directorio. Por ejemplo el directorio 'lib' contiene librerías de software que tu sistema utiliza. Por ahora tu solo tienes que precocuparte por un directorio: el directorio 'home'. Este directorio contiene folders con nombres que corresponden a cada uno de los usuarios de la máquina. Si tu nombre de acceso es 'juana' por ejemplo entonces tu entrada a la máquina será al directorio de 'home' que tiene el mismo nombre de tu usuaria (es decir, 'juana' en este ejemplo).

Una cosa importante de tener en cuenta ahora es precisamente esta estructura de directorios de Linux. Otra cosa importante es que Linux consiste mayoritariamente de archivos de texto y por lo tanto puedes cambiar casi cada parte de Linux -como se ve y como trabaja- tan solo editando el archivo de texto apropiado. En ambientes Windows y Machintosh tu haces este tipo de cambios a traves de pequeñas aplicaciones con una pequeña interfaz gráfica (GUI). En Windows por ejemplo, si quieres cambiar la resolución de tu pantalla usas el panel de control 'display' localizado en el directorio de paneles de control. En Linux puedes hacer esto editando un archivo de texto.

Esto tiene algunas ventajas, como la de ofrecerte mayor control. Pero también tiene algunas desventajas, como que puede ser dificil aprender cuales archivos editar y qué cambios hacer. Algunas veces para facilitar la transición a Linux desde otros sistemas operativos, puedes encontrar algunos softwares de configuración para Linux instalados en tu sistema los cuales utilizan una GUI (Interfaz Gráfica de Usuario) similares a Macintosh y Windows. Pero este no es siempre el caso, así que eventualmente tendrás que encontrar por tí misma cómo hacer esto manualmente con un editor de texto.

Editores de Texto

Si no sabes como usar un editor de texto en Linux no podrás realmente ir muy lejos poque leer los archivos 'REDMEN' e 'INSTALL' será una necesidad muy temprana cuando vas aprendiendo a usar la línea de comandos.

Sobre los editores de texto se ha escrito mucho en varios libros así que nos preguntamo cómo hablar aquí de esto y hacerles justicia... bueno, es algo difícil pero podemos echarle un vistazo. Elegiremos arbitrariamente un par: nano y vim. También revisaremos less que no es un editor pero si un comando que te permite leer archivos de tu sistema.

less

Empezemos con 'less'. Este es un comando que abre archivos de texto únicamente para leerlos. Si por ejemplo, el directorio en el que estoy actualmente trabajando tiene un archivo llamado 'README', entonces intento este comando:

[d:b] ~ # less README [Enter]

Para desplazarte arriba y abajo utiliza las flechas correspondientes y para salir teclea la letra q.

Recuerda que less solo te permite leer archivos. Para editarlos necesitarás un editor de textos o de palabras (a veces no hay mucha diferencia entre ambos).

vim

Vim es un editor de texto comunmente utilizado por programadores para trabajar con código. Para abrir un archivo con vim lo mejor es teclear el nombre del archivo después del comando vim, para que de esta manera vim se abra con el archivo ya cargado. Por ejemplo, si queremos leer el archivo "README" del mismo directorio donde estamos trabajando, tecleamos:

[d:b] ~ # vim README [Enter]

Para desplazarte arriba y abajo del archivo utiliza las flechas correspondientes y para salir de vim teclea la letra q.

Hay mucho que decir acerca de los editores vi y vim que no vamos a decirlo aquí, pero lo que deberías saber es cómo abrir un archivo (indicado arriba) y luego editarlo. Para editar un archivo en vim necesitas primero abrirlo y luego presionar la tecla i.

Ahora, estamos imaginando que vim es muy diferente a cualquier otro editor de texto que haz utilizado antes, por eso es que algunas explicaciones son necesarias. Inicialmente Vim abre el archivo como de solo lectura, lo que significa que cuando tu lo abres no podrás cambiarlo. Para editar un archivo Vim tiene un mundo de comando que puedes usar para trabajar con el archivo y la mayoría de estos comandos se ejecutan con tan solo teclear una simple letra, o están en el formato:

: command

donde 'command' es el nombre del comando que quieras usar. Los comandos están designados por abreviaturas: una i por ejemplo, significa insertar. La siguiente es una tabla de los comandos de vim que deberías conocer:

comando                                           acción
i  (para usarlo en modo de solo lectura)        inserta texto
:w (para usarlo en modo de solo lectura)        escribe los cambios al archivo
u  (para usarlo en modo de solo lectura)        deshace los cambios
:q (para usarlo en modo de solo lectura)        sale de vim

Adicionalmente, presionando la tecla esc podrás decirle a vim que regrese al modo original (solo lectura), de hecho deberías presionar escape antes de ejecutar cualquiera de los comandos. Por ejemplo, si quiero abrir el archivo "README" y luego editar algo de texto, debería de hacer lo siguiente: 1) comenzar tecleando vim README en la terminal, lo que abrirá el archivo "README" como explicamos antes; 2) Si quiero editar el archivo utilizo las teclas de flechas para ubicarme donde quiero insertar o borrar algo de texto, y entonces presiono i para ubicarme en el modo de inserción y de este modo cualquier cosa que yo teclee aparecerá en el mismo documento; 3) Cuando he terminado de hacer los cambios presiono la tecla esc y finalmente para escribir y guardar los cambios en el archivo tecleo :w; 4) Ahora necesito salir de vim y para eso presiono la tecla esc seguido de :q.

Ahora busca un archivo y experimenta. Si no haz utilizado antes algo como vim te llevará algo de tiempo acostumbrarte, así que dedicale algo de tiempo para trabajar con el antes de que realmente lo necesites usar.

Instalando Software desde las fuentes

Instalar software en Linux es un tema amplio porque cada version de Linux tiene su propio sistema de manejo de paquetes, aunque todos los tipos de Linux posibilitan a los usuarios instalar software usando el código fuente. Sin embargo probablemente no querrás batallar con este proceso hasta que no sepas un poco mas cómo usar los comandos y el sistema de archivos de Linux. Si no sabes acerca de estas dos cosas, es mejor que primero leas al respecto y luego regreses por aquí.

Descomprimir

Instalar software desde el código fuente funciona en cualquier sistema Linux y es un buen saber sobre este proceso. Una vez que tengas el paquete fuente, el proceso sigue mas o menos esta ruta:

[d:b] ~ # tar xvfz nombredepaquete.tar.gz [Enter]

En este ejemplo anterior 'nombredepaquete' es el actual nombre del paquete que tu quieras instalar. El comando tar seguido de los parámetros xvfz descomprime un archivo tar.gz y crea un nuevo directorio conteniendo todas las fuentes extraídas. Luego tienes que cambiar tu directorio de trabajo usando el comando 'cd'; normalmente el nuevo directorio llevará el nombre del paquete descomprimido pero sin la terminación '.tar.gz'.

Por ejemplo si mi paquete realmente se llamaba 'paquete.tar.gz.' entonces luego de ejecutarle el comando 'tar xvfz' tendré un nuevo directorio llamado 'nombredepaquete' al cual podría entrar si tecleo 'cd nombredepaquete'. Si no estás segura de cual es el nombre del directorio teclea 'ls'.

Configurar

Muy bien, una vez dentro del nuevo directorio podemos empezar con el proceso de instalación. Para hacer esto, el 99% de las veces necesitarás teclear lo siguiente:

[d:b] ~ # ./configure [Enter]

Bueno, esto no es realmente un comando. Cada paquete de instalación contiene tiene normalmente un script llamado configure. Poniéndole un punto y luego una diagonal después del nombre del script ( ./configure ) le dices a Linux que ejecute (corra) ese script. Luego entonces, el script hace su trabajo verificando qué tipo de máquina tienes, que tienes instalado, que tipo de Linux estás utilizando, etc, etc.

El problema mas común al llegar a este punto es que el script de configuración se detenga y te diga que existen librerías ausentes de las cuales el nuevo software depende. Este puede ser uno de los horrores por los que la gente inventó los sistemas de manejo de paquetes. De cualquier modo si experimentas este error necesitas buscar bien sobre el error que el software está diciendo y encontrar lo que le falta para luego comenzar de nuevo el proceso de instalación con el nuevo paquete. No estamos bromeando cuando decimos que una instalación de sofware nuevo puede tomar días mientras buscas y descargas todos los paquetes que necesitas.

Compilar

Asumiendo que no tienes ningún error mientras ejecutas el script de configuración, deberías agradecerle a cualquiera que sea el angel que te rodea. Luego, el próximo comando a teclear en el proceso de instalación es el siguiente:

[d:b] ~ # make [Enter]

Este comando prácticamente hace (compila) el software para tí, teniendo como resultado final varios archivos compilados que en conjunto forman tu software. El tiempo que 'make' pueda tomar para realizar su proceso depende de la velocidad de tu máquina y del tamaño de las fuentes del paquete que estes instalando, además de que tener abiertas otras aplicaciones también puede volver lento el proceso.

Cuando make se ha detenido, tecleamos lo siguiente:

[d:b] ~ # make install [Enter]

y esto instalará el nuevo software en el lugar correcto de tu sistema. Luego solo necesitas teclear el nombre de la nueva aplicación en tu terminal y debería ejecutarse. Si no lo hace y te devuelve un error, un remedio común es teclear ldcongif e intentarlo de nuevo. ldconfig actualiza el sistema para que tu sistema operativo sepa que hay nuevos archivos de librerias, etc.


Capítulo 10 : Herramientas para el desarrollo

Extiende y personaliza el live CD de Dyne

Tabla de Contenidos

Ampliando y personalizando el live CD de Dyne

Para remasterizar un liveCD incluyendo todas tus modificaciones empaquetando las colecciones adicionales de software, Dyne:II incluye un SDK. De hecho, Dyne:II es un Dyne para producir Dyne. Considerala como una Distribución Nómada anexada a ningún hardware. Puedes llevar contigo tu versión viva de cd/dvd/usb y cargarla en cualquier máquina, hacer tus cosas (desde el punto de vista del usuario Y/O desarrollador), puedes crear un nuevo live CD, limpiar todos tus rastros y luego abandonar el lugar. Solo camina por el mundo con tu CD re-escribible o con tu llavero usb y eso es todo.

Dyne:bolic es un sistema operativo un poco simple y minimalista (la filosofía sobre la que descansa la distribución tiene referencia con Slackware en particular y en general con el principio KISS), todo escrito en shell y sembrado desde cero. Las librerías de funciones junto con los programas auxiliares están todos incluidos en el directorio /lib/dyne, donde el código está cuidadosamente documentado.

En este capítulo encontrarás documentación acerca de cómo crear y publicar nuevos módulos para luego empaquetarlos en un nuevo CD. Para más información y como referencia a la estructura interna de dyne:bolic toma en cuenta que esta distribución está escrita desde cero siguiendo el libro Linux From Scratch (http://www.linuxfromscratch.org), el cual ofrece una extensa explicación de cómo todo fue agrupado.

Se incluyen los compiladores GNU C y C++ junto con varios lenguajes de script y herramientas relativas externas como Python, Perl, Tcl/Tk y Ruby. Además se incluyen 3 diferentes entornos de desarrollo para la programación visual básica: Glade funcionando con GTK y C, Fluid funcionando con Fltk y C++, Gambas (disponible con el módulo externo devel). Además se incluye gtkdialog para que puedas rápidamente realizar diálogos gráficos e interacción con el usuario combinando varios componentes.

Personalizando tu live CD de Dyne

Es posible personalizar y expandir dyne:bolic en varias maneras: creando módulos de software para agregar aplicaciones y distribuirlas a tus amigas, además de cambiar el comportamiento del sistema durante el arranque. Para facilitar la personalización y el desarrollo, se incluye la herramienta dynesdk para automatizar el proceso de empaquetar los cambios en un nuevo live CD.

Para una buena introducción a los potenciales de esta herramienta puedes leer el artículo en línea de Stomfi que habla de la personalización de dyne:bolic http://www.linux.com/articles/54607

Para comenzar con tu propio desarrollo primero tienes que crear SDK en el DOCK de tu disco duro:

[d:b] ~ # dynesdk mksdk [Enter]

Recibirás dos preguntas a las que es mas seguro contestar que no en ambos casos, a menos de que quieras cambiar cosas del core de dyne:II:

* [?] do you want to uncompress the dyne.sys (y/N) ?

* [?] do you want to download the kernel sources (y/N) ?

en caso de que respondas, se tomará NO como respuesta por defecto después de 10 segundos y se continuará.

Este procedimiento creará un directorio SDK dentro de $DYNE_SYS_MNT/dyne, para luego habitarlo con los archivos de desarrollo que son descargados desde el repositorio en línea de subversion, si es que tienes conexión a la red.

Con SDK puedes empaquetar las modificaciones a tu sistema en un nuevo ISO CD el cual es genera los contenidos en SDK/cdrom. Puedes luego agregar y remover módulos desde SDK/cdrom/dyne/modules así como agregar cualquier cosaa dentro del sistema de archivos del CD.

Creando nuevos módulos de software

Una vez que tengas un SDK y un poco de espacio disponible en tu disco duro puedes empezar a crear tus propios módulos de software para agregar aplicaciones a dyne:bolic. Para mas información sobre las características y el uso de los modulos dyne mira la sección "Módulos extra de software" de este manual. Ahora avanzaremos con algunas instrucciones en cómo crearlos.

Antes que nada asegurate que tienes un dock de tu sistema en un disco duro, luego crea un SDK (mira el capítulo anterior). Cuando tengas un directorio SDK en tu directorio puedes ver su localización con tan solo teclear:

[d:b] ~ # echo $DYNE_SYS_MNT/SDK [Enter]

El próximo paso es crear el directorio para los módulos en el SDK y para eso elegiremos un nombre para nuestro módulo: vamos a crear el módulo spaguetti con los comandos:

[d:b] ~ # mkdir -p $DYNE_SYS_MNT/SDK/modules/spaghetti [Enter]

[d:b] ~ # mkdir $DYNE_SYS_MNT/SDK/modules/spaghetti/bin [Enter]

[d:b] ~ # mkdir $DYNE_SYS_MNT/SDK/modules/spaghetti/lib [Enter]

[d:b] ~ # touch $DYNE_SYS_MNT/SDK/modules/spaghetti/VERSION [Enter]

básicamente estamos creando los directorios bin y lib además de archivo VERSION dentro del módulo, lo que puedes hacer con cualquier explorador de archivos o con midnight commander si quieres: vamos, sientete cómoda ;)

El último paso es activar nuestro módulo spaguetti montandolo en /opt/spaguetti ya que todos los módulos son activados en el prefijo /opt. Para hacer esto usamos nuevamente el comando DyneSdk:

[d:b] ~ # dynesdk mount [Enter]

[d:b] ~ # source /boot/dynenv.modules [Enter]

¡Eso es todo! Nuestro nuevo módulo está montado en /opt y tenemos nuestras rutas configuradas correctamente.

Ten en cuenta que antes de comenzar el desarrollo de tu módulo, necesitas montar el dynesdk cada vez que reinicies. Puedes también abrir un módulo existente para trabajar en su desarrollo (por ejemplo tu excelente módulo gnocchi) con el comando:

[d:b] ~ # dynesdk devel gnocchi [Enter]

Te regresará una pregunta, si es que quieres descomprimir el contenido del módulo para su desarrollo, indicándote el espacio que ocupará en tu disco duro.

Ahora puedes compilar el software spaghetti que quieras con

[d:b] ~ # ./configure --prefix=/opt/spaghetti [Enter]

o en algunos casos editar el PREFIX en el Makefile - ¡y no olvides la salsa! :)

Para hacerlo más facil, cuando el software se construye con los usuales "./configure && make && make install", puedes usar el comando dynemodconf (seguido por el nombre del módulo) en vez de llamar directamente a ./configure, esto ajustará el prefijo mas correctamente. Por ejemplo para compilar "aglio-0.5" con el flag "--con-basilico" dentro de tu módulo de spaguetti:

[d:b] ~/aglio-0.5 # dynemodconf spaghetti --con-basilico [Enter]

Una vez que has terminado de cocinar... digo, compilar, entonces puedes juntar todo en un módulo comprimido .dyne con

[d:b] ~/aglio-0.5 # dynesdk squash spaghetti [Enter]

¡y ahi está! tu nuevo módulo se encontrará en $DYNE_SYS_MNT/dyne/SDK/cdrom/dyne/modules/spaghetti.dyne listo para ser incluido en el próximo CD ISO que puedes empaquetar con dynesdk mkiso.

Antes de liberar tu módulo a la comunidad, es una buena idea llenar alguna información acerca de tu creación para que la gente pueda contactarte y visitar las páginas del software. Para esto es el archivo file que contiene un formato muy simple:

name            Spaghetti
desc            spaghetti pizza mandolino e presidente scemo
version         1.0
url             http://tuttifrutti.org/spaghetti
packager        The Crazy Cook http://tuttifrutti.org/~crazycook

Usa tu editor favorito de texto para llenar estos campos, deja un espacio o una tabla entre cada nombre de campo y eso es todo.

Puedes agregar entradas o submenus para que el usuario pueda ejecutar tu software. Para hacer esto crea un archivo applist dentro del directorio etc de tu módulo, por ejemplo opt/spaghetti/etc/applist. El archivo applist contendrá una lista de las aplicaciones binarios, las descripciones y los modos para comenzarlo mediante la utilización de flags.

A continuación se muestra una descripción del formato, que es basicamente una lista separada por un |

# format:
# name | description | command | flags | web url | author

# flags:
# runonce | multi = si debería ejecutarse solo una instancia, o no
# terminal        = si debería ejecutarse en una terminal
# manual          = si es una entrada de manual
# root | user     = si debe ejecutarse como root o como usario

# submenus pueden comenzar o finalizar con
# Begin | MiSubmenu
# End | MiSubmenu

por ejemplo:

Begin | SPAGHETTI

AglioeOlio | aglio olio e peperoncino | pasta --agliolio | | http://tuttifrutti.org | The Crazy Cook
Puttanesca | olive capperi e alici | pasta --puttan | | http://tuttifrutti.org | The Crazy Cook
Pesto | pesto alla genovese | pasta --pesto | | http://tuttifrutti.org | The Crazy Cook

End | SPAGHETTI

Puedes también tener submenus utilizando Begin y End cada vez. Para ver un ejemplo completo mira la lista de $DYNE_SYS_MNT/applist.

En caso de que tu módulo necesita ajustar variables de entorno (como rutas opcionales y ajustes generales para aplicaciones) puedes simplemente declararles en un archivo env dentro del directorio etc. Este archivo puede contener declaraciones variables de entorno, una por línea, las cuales serán exportadas en sistema que se ejecuta, por ejemplo en nuestro módulo spaghetti /opt/spaghetti/etc/env mostrará algo similar a esto:

KITCHEN_PATH=/opt/spaghetti/lib/kitchen

GLOBAL_TASTE=spicy

COOK_PROFILE=big_nose

Puedes incluir tu configuración personal de usuario (home settings) dentro del módulo, para que estos sobrescriban los ajustes de usuario que dyne:II trae predeterminados. Esto es útil cuando quieres cambiar los ajustes predeterminados del manejador de ventanas (con una imágen para el escritorio por ejemplo) o mostrar aplicaciones preconfiguradas (con un archivo .config en tu home).

Para hacer esto simplemente tienes que crear un directorio skel dentro de tu módulo: todos los archivos que sean incluidos en el serán automáticamente copiados a todos los directorios home de todos los usuarios, ajustándolos para que sean adoptados por los usuarios que sean creados en el futuro.

En tus módulos puedes incluir cualquier módulo de kernel correctamente compilado para el kernel de dyne:II. Para hacer eso tienes que crear un directorio kernel dentro de tu módulo: para que estos módulos sean usados en vez del modprobe standard, todos los módulos de kernel contenidos serán buscados y cargados si el comando loadmod los encuentra.

En caso de que el módulo no sea solicitado de manera natural por la configuración de tu hardware (que no sea listado por el comando pcmimodules), construye tu propia detección o forza la carga de tu módulo dentro de un módulo con script de arranque. Puedes hacer un script dentro de tu módulo para que se ejecute cada vez que tu módulo es activado. Para hacer esto tienes que crear un directorio etc dentro de tu módulo: todos los archivos ejecutables incluidos en el comodín rc.* serán lanzados al inicio, siendo el primer argumento $1 parte del nombre del módulo mismo.

Esta es en resumen la estructura del archivo contenida en los módulos:

VERSION archivo requerido     contiene información acerca del módulo y sus fuentes

bin     directorio opcional,  contiene todos los binarios, automáticamente incluido en $PATH

lib     directorio opcional,  contiene todas las librerías, automáticamente incluido en $LD_LIBRARY_PATH

etc     directorio opcional,  contiene scripts de arranque rc.* ejecutados durante la activación

skel    directorio opcional,  contiene todas las configuraciones que serán agregadas a /home/usuaria y /etc/skel

kernel  directorio opcional,  contiene módulos de kernel que pueden ser cargados por loadmod

¡Tienes el poder de crear, ahora inventa algo maravilloso! :)

Compilar un nuevo kernel

Asumiendo que ya aprendiste como compilar un kernel Linux desde las fuentes disponibles en kernel.org, compilar un nuevo kernel para dyne:bolic es relativamente fácil.

Tan solo hay que ir como de costumbre después de desempaquetar el código fuente:

[d:b] ~ # make menuconfig [Enter]

Te regresará la configuración del kernel, la cual tu puedes adaptar como desees. En caso de que quieras tomar como configuración base para comenzar el kernel de dyne:bolic que se está ejecutando, desde el directorio kernel ejecuta:

[d:b] ~ # zcat /proc/config.gz > .config [Enter]

[d:b] ~ # make oldconfig [Enter]

En caso de que compiles una kernel mas reciente, tendrás que responder nuevas preguntas incluidas por esta versión. Después de configurar tu kernel puedes compilarlo usando make:

[d:b] ~ # make bzImage && make modules [Enter]

Cuando termines con la compilación de tu kernel, para empaquetar un kernel dyne:bolic se utiliza un comando que está dentro del directorio de fuentes linux:

[d:b] ~ # dynesdk mkkern [Enter]

La función mkkern de dynesdk empaquetará el kernel y sus módulos dentro de SDK/cdrom/dyne. Un archivo comprimido conteniendo todos los módulos (usualmente con un tamaño menor a 20MB) será nombrado con la versión de linux y tendrá la extensión .kmods. El kernel en sí será nombrado con la versión de linux (reducida a 8.3 caracteres para la compatibilidad con algunos cargadores de arranque) y tendrá la extensión .krn.

La razón para este acomodo es que, teniendo todos los kernels y sus módulos en dos archivos facilmente reconocibles por su extensión, se vuelve muy fácil compartir kernels en un dock: tan solo hay que poner el nuevo archivo dentro del directorio dyne/ y reconfigurar el cargador de arranque adecuadamente. Dado que los archivos .krn y .kmods están comprimidos, la distribución de nuevos kernels dyne:bolic se consigue tal cual, tan solo compartiendo los dos archivos.