martes, 8 de febrero de 2011

Cuando decidí instalar VirtualBox desde los fuentes...

  

      Luego de mucho trabajar con debian testing (squeeze), decidí que ya era tiempo de instalar Gentoo GNU/Linux, en la laptop del trabajo una Lenovo G450, así que me di a la tarea el día sábado de instalarlo, luego de 24 horas de compilación de paquetes y correcciones de algunos detalles, tengo un flamante gentoo con kernel 2.6.36, así que empiezo con la paqueteria, primero libreoffice, luego de hacer un emerge --search libreoffice me doy cuenta que se encuentra enmascarado para la arquitectura de 64 bits, lo desenmascaro y lo instalo sin novedades, otra herramienta que generalmente utilizo es el VirtualBox, antes de innotek, luego de sun y ahora de Oracle, pero particularmente luego de instalar la versión 4.0 hace un mes, me gustó mucho así que decidir ver que versión esta en los ports de Gentoo, para mi gran sorpresa todavía tienen la 3.2, investigué y todavía la versión 4.0.x esta en pruebas, así que me fuí por el camino de los hombres, decidí compilar la versión 4 OSE.
    Lo primero que hago es instalar las dependencias:

     emerge -av sys-devel/bin86 sys-devel/dev86 sys-power/iasl libxslt xerces-c xalan-c libXcursor libIDL libsdl hal alsa-lib pulseaudio cdrtools makeself latex-beamer

     Luego descargue los fuentes desde la página de virtualbox:
wget -c http://download.virtualbox.org/virtualbox/4.0.2/VirtualBox-4.0.2.tar.bz2

     Ahora desempaquetamos así:

tar xvfj VirtualBox-4.0.2.tar.gz

     Siguiendo la documentación suministrada por oracle, hago un ./configure --disable-hardening todo sin novedad hasta aquí, ahora me preparo para la compilación, nuevamente sigo lo que dice la documentación ejecutando el comand kmk all, pero llega un momento donde va a probar el java buscando dentro de /usr/lib/jvm/java-sun-6/javac y me daba un error, luego de leer un poco la solución es editar el archivo kmk y substituir la ruta por la que pertenece a gentoo, que es en /usr/bin/javac, así lo realice y volví a compilar, pense que todo iba a estar bien pero ahora el error es:
* javac is not available for sun-jre-bin-1.6 on x86_64
* IMPORTANT: some Java tools are not available on some VMs on some architectures
     Nuevamente le pregunte al sabio google y me respondió que lo que tenia que hacer era lo siguiente:
# eselect java-vm list
Available Java Virtual Machines:
[1]   sun-jre-bin-1.6  system-vm
sun-jre does not contain tools such as javac and jar, so we need to install sun-jdk:
Así que instalamos el sun-jdk
# emerge sun-jdk
Luego nuevamente eselect
# eselect java-vm list
Available Java Virtual Machines:
  [1]   sun-jdk-1.6
  [2]   sun-jre-bin-1.6  system-vm
y escojemos el indicado
eselect java-vm set 1

     Nuevamente a ejecutar el kmk, luego de unos 25 minutos compilando, me dice que hay un error descargando el manual de una página, no le presto mucha atención y prosigo al otro paso de la documentación de VB, entro en el directorio que se crea:
    en esta parte es importante que nos coloquemos como usuario normal, si por casualidad ejecutaste los pasos anteriores como root, le haces un chown usuario.usuario al directorio de los fuentes de VirtualBox (VirtualBox-4.0.2_OSE para este caso)
Sigamos,
nos colocamos en el directorio creado
cd out/linux.amd64/release/bin/src (NOTA: substituir por su arquitectura)
Luego proseguimos como para cualquier compilación de paquetes en linux:
# make
# sudo make install
# cd ..
     Ahora probamos que todo esté bien y cargamos el modulo del kernel:

# modprobe vboxdrv
si no nos da errores verificamos que la pertenencia del archivo /dev/vboxdrv sea del usuario que va a usar VB, en este paso se pueden crear el grupo vboxuser y agregar los usuarios a dicho grupo y cambiarle el grupo a dicho archivo.

     Si todo estuvo sin errores hasta aquí entonces corremos el virtualbox
./VirtualBox en el directorio out/linux.amd64/release/bin/ y nos ejecutará el virtualbox, en mi caso particular me dio un error porque no conseguía una librería para la virtualización, lo corregí copiando el archivo dentro del directorio anterior: 

#cp  /home/abraham/VirtualBox-4.0.2_OSE/out/linux.amd64/release/obj/VBoxDD/VBoxDD.so /home/abraham/VirtualBox-4.0.2_OSE/out/linux.amd64/release/bin/

     y listo, vuelvo a ejecutar el VB y no me presenta ningún error.
 
      Lo que queda pendiente es agregar los binarios al /bin o al /usr/bin para que se pueda ejecutar desde cualquier punto de la terminal y colocarlo en el menu del entorno gráfico de su preferencia (un lanzador)
      Me agrado esta experiencia, debido a que aprendí un poco mas como funciona el VB y también que con paciencia y dedicación se puede lograr casi cualquier cosa en Gentoo, sigo pensando que esta magnifica distro es la que mejor se me da....

No hay comentarios: