Buscar en este blog

jueves, 23 de febrero de 2012

La Aventura de Linux From Scratch


Linux From Scratch (LFS) es un proyecto en donde teniendo el código fuente de los paquetes básicos de un sistema Linux, uno es capaz de compilarlos utilizando un host con Linux, previamente instalado. Ésto, con la finalidad de aprender la forma en que trabaja un sistema Linux. En la página oficial
http://www.linuxfromscratch.org/
Está toda la información. Lo que nos interesa saber es que existe un manual y un LiveCD que es la alternativa más facil para iniciar.


La versión del liveCD que estoy utilizando es:
lfslivecd-x86-6.3-r2130.iso

Y el manual en español:
Linux From Scratch Versión 6.3
 
Quiero compartir la experiencia de instalar LFS con ustedes y por supuesto, dejar constancia de algunos errores que son errores de novato, pero que a más de alguien pueden ayudar.


Algunos tips antes de empezar:
- Descarguen el livecd que trae todos los archivos fuente, asi no se preocupan nada por eso.
- Si usan una máquina virtual, con 10 GB de disco duro tienen más que suficiente, Con 1GB de RAM y 1 GB de SWAP no van a encontrar problemas. Y si tienen la disponibilidad, asignenle todos los nucleos de su procesador que puedan, asi van a obtener un buen rendimiento y van a compilar los paquetes en menos tiempo.
- TOMEN SNAPSHOTS. Si es posible tomen un snapshot antes de cada paso de la preparación de la máquina y antes de compilar cada paquete. Es un poco más de trabajo, pero vale la pena. Asi no van a tener que reiniciar todo el trabajo cuando haya un error grande.

Empecemos a revisar los errores:

El primer problema que me encontré fue un problema de virtualBox. En con respecto a las versiones actuales (4.1.8 o similar), y es que al asignar más de 1 GB de memoria RAM a la máquina virtual, al momento de utilizarla, salta un error diciendo que el host se está quedando sin memoria RAM, aunque ésto no sea cierto.
Éste error también sucede cuando se intentan correr muchas máquinas virtuales al mismo tiempo.
¿La solución?
Encontrar un punto en donde la memoria asignada a la máquina virtual no haga que se produzca el error. En mi caso fue 1GB.



Después de preparar la máquina (crear las particiones, formatear, asignar la swap, crear el usuario, configurar el environment, etc.). Creé el directorio para la construcción de binutils, me cambié a éste y cuando quise configurarlo para la compilación me encontraba con un error. Decía que no podía encontrar un directorio. ¿Por qué? No había desempaquetado el paquete de binutils xD
¿La solución? El manual de LFS asume que ustedes ya desempaquetaron los archivos fuentes y se encuentran en el directorio actual del paquete.
Ejecutar los comandos:
tar -xjf binutils-2.17.tar.bz2
cd binutils-2.17 

Despues de eso, pueden ejecutar el comando para configurar y todo lo demás.

Recuerden eliminar la carpeta con los archivos fuente y el de la construcción de cada paquete después de haber compilado éste, a menos que se especifique que no lo hagan. Ésto es para evitar errores en los pasos posteriores.

Para desempaquetar un archivo .tar.bz2 utilicen el comando:
tar -xjf nombreDelPaquete.tar.bz2
Para desempaquetar un archivo .tar.gz utilicen el comando:
tar -xzf nombreDelPaquete.tar.gz
Cada uno les va a crear una carpeta con el mismo nombre del paquete, en donde se ubicará todo el contenido de éste.

Para eliminar una carpeta con los archivos fuente, después de su compilación utilicen el comando:
rm -rf nombreDeLaCarpeta
Así, eliminan la carpeta recursivamente (todas las subcarpetas) y no les pide confirmación para eliminar algunos archivos que están protegidos.


Después de binutils, en el punto 5.4. "GCC-4.1.2 - Pass 1", después de desempaquetar, crear directorios y preparar gcc para la compilación, toca el comando
make bootstrap
Pero éste me decia que bootstrap no era un parámetro admitido. Al parecer, cuando se recomienda crear una carpeta aparte para la construcción es necesario seguir éste orden antes de compilar un paquete, o sino no hará bien algunos enlaces:
  1. Desempaquetar el archivo.
  2. Cambiarse a la carpeta en donde desempaquetó.
  3. Desde adentro de la carpeta, crear la carpeta para la construcción.
  4. Cambiarse a la carpeta para la construcción.
Es decir:
  1. tar -xjf nombreDelPaquete.tar.bz2
  2. cd nombreDelPaquete
  3. mkdir -v ../nombreDelPaquete-build
  4. cd ../nombreDelPaquete-build

Al llegar al punto 5.7. "Adjusting the Toolchain" al ingresar el comando
gcc -dumpspecs | sed 's@^/lib/ld-linux.so.2@/tools&@g' \
> `dirname $(gcc -print-libgcc-file-name)`/specs
El error era que no encontraba el archivo specs.
¿Por qué?
En esta parte dice que es recomendable que se haga copy-paste del comando, y ahora entiendo por qué. El caracter ">" que está al inicio de la segunda línea no es el que la consola muestra. Se debe ingresar el comando tal y como está, incluyendo el signo de mayor ">" y podremos proseguir con la instalación.




sábado, 18 de febrero de 2012

Una máquina virtual es un software que emula una computadora, dentro de otra. Es decir, teniendo una computadora física, es posible instalar un monitor de máquinas virtuales que permita crear algunas de éstas y asignarles recursos de la máquina física. Por lo tanto, los recursos de la máquina virtual estarán limitados a los que se le asigna cuando se crea ésta y la máxima capacidad depende del hardware de la máquina en donde esté corriendo.

Existen dos tipos de máquinas virtuales:
  1. De Sistema
  2. De Proceso
Las máquinas virtuales de sistemas son utilizadas, en sistemas de hogar, para probar sistemas operativos diferentes al que está instalado en la máquina, llamada host. Las máquinas virtuales que corren sobre ésta son denominadas guest.

Los monitores de máquinas virtuales de sistema más conocidos son:
VirtualBox

VMware

Microsoft Virtual PC

 El que yo recomiendo es Virtual Box, ya que es gratuito y muy potente.

Las máquinas virtuales de proceso, no se utilizan para correr sistemas operativos. La mayor utilidad de éstas máquinas, es que las aplicaciones que se ejecutan sobre la plataforma, no necesitan conocer las instrucciones de bajo nivel del sistema operativo, sino que la máquina virtual se encarga de traducir los comandos entre las aplicaciones y el sistema operativo.

La máquina virtual de proceso más conocida es la JVM (Java Virtual Machine) que sirve para ejecutar aplicaciones escritas en el lenguaje de Java. Otra muy conocida es la opción de Windows: Common Language Runtime.









Desde Guatemala.
granyatee



jueves, 16 de febrero de 2012

Actividad del jueves 16/0202012

El día de hoy, jueves 16 de febrero del 2012, el grupo 40 de practicas iniciales/intermedias se reunió en el nuevo módulo de la biblioteca de la facultad de ingeniería, después de haber entregado El reporte No. 1, para que el coordinador les diera una introducción, a los estudiantes de practicas iniciales, al tema de máquinas virtuales.

La actividad empezó a las 9:10 am y terminó a las 10:20am.
A continuación la foto para constatar que la actividad se realizó:


Lo integrantes en orden de Izquierda a derecha:
  1. Domingo Celedón                    2011-14794
  2. Luis Chamale                            2011-23878
  3. Cesar Rodríguez                      2008-19476
  4. Ernesto Yat (Coordinador)    2009-15136
  5. Edgar Flores                              2011-14763

jueves, 9 de febrero de 2012

Tutorial Intermedio de LaTeX


En la entrada anterior, se dió una introducción a LaTeX.

Esta vez les comparto algunos comandos como importación de paquetes, inserción de imágenes, formateado y alineado de texto, etc. que nos servirán para realizar documentos más complejos.

En este enlace pueden descargar un documento en pdf, donde se explican los comandos de LaTeX para realizar las tareas mencionadas anteriormente.

Les dejo algunos Links que me fueron de ayuda, para realizar este documento:

Este jueves 9 de febrero del 2012, el grupo 40 de practicas iniciales/intermedias, se reunió enfrente del edificio T3, en el área de columnas, para realizar la Actividad #2, programada para hoy, en donde el coordinador introdujo a los estudiantes de practicas iniciales al uso de LaTeX, mostrando algunas herramientas para editar el código fuente y la generación del documento en pdf.
Todos los integrantes del grupo asistieron puntualmente.


Para hacer constar que se realizó la actividad, se tomó una fotografía: