martes, 16 de octubre de 2007

21. Instalando mi primera aplicación en Mandriva 2007 Spring

Voy a proceder a instalar una aplicación en la máquina Mandriva: se trata de Vmware Tools.
Esta aplicación no tiene nada que ver con Linux o la distribución Mandriva, sino con la especial infrestructura montada para esta prueba. Se trata de un conjunto de utilidades que incluyen nuevos drivers de "tarjeta gráfica" y ratón, y me permiten cosas tales como que el puntero sea capturado automáticamente al pasar de la ventana donde corre Mandriva a la máquina "host" Windows y viceversa, sin necesidad de pulsar para ello una combinación de teclas. Adicionalmente, hace posible copiar/pegar texto entre ambas ventanas -lo que me facilitará el proceso de redacción en este blog- así como otras mejoras.
Para los efectos de esta prueba, se trata de una aplicación como otra cualquiera.
Comienzo por "montar" el "CD" que contiene la aplicación, y se abre automáticamente el "Navegador de archivos", mostrándome su contenido:
Sé que la distribución Mandriva soporta el formato de paquetes de instalación .rpm, por lo que pulso con el botón derecho sobre el archivo que representa al paquete, y selecciono "Abrir con Software installer.
Se visualiza una ventana que solicita confirmación. Pulso "Instalar":
...y tras ella, la consabida solicitud de la contraseña de superusuario, que introduzco:
Se visualiza una ventana con una barra que ilustra gráficamente el progreso de la instalación:
...seguida de otra que informa que el proceso ha finalizado:
En una máquina virtual Windows se precisa un reinicio en este punto, pero creo saber que no es así en Linux. Sin embargo, pruebo con el ratón, y advierto enseguida que sigue funcionando de igual modo que antes de comenzar la instalación, así como que las restantes funcionalidades que esperaba no existen en apariencia.
En la prueba de la distribución Open Suse me detuve en este punto, pero esta vez estoy dispuesto, como sea, a hacer funcionar esta aplicación.
Lo primero que hago es verificar si el correspondiente servicio está activado y en funcionamiento.
Para ello, navego por el menú...
...tecleando la contraseña de superusuario cuando se me solicita...
...y desde el "Centro de control de Mandriva"...
...llego finalmente a la ventana "Servicios". Aparece la entrada "vmware-tools" como "parado". El check box "Al iniciar" está en blanco; lo marco. A continuación, pulso "Iniciar".
No sucede nada en apariencia, salvo que ha aparecido una especie de etiqueta amarilla cuyo contenido no puedo leer, porque la mayor parte queda fuera de la ventana; la entrada sigue indicando "parado".
Anoto aquí un hecho, que se repetirá más adelante con otra aplicación: la ventana tiene un tamaño tal, que con la resolución de 800x600 que utilizo, (y que de cambiarla me exigiría trabajar a pantalla completa -cosa que no es factible antes de instalar esta aplicación-, además de que perdería la posibilidad de tomar imágenes del escritorio Mandriva) una parte de esta ventana queda fuera del escritorio.
Pienso que, finalmente, puede que sea preciso reiniciar la máquina, y lo hago. Por no alargar (más aún) este post, omito ilustrar dicho proceso.
Cuando termino, todo sigue como antes con respecto al ratón, y la ventana "Servicios" no ha cambiado su indicación de "parado" en la entrada correspondiente a vmware tools.
Dije muy al principio, en otro post, que tenemos la mala costumbre de recurrir a la ayuda como último recurso, y yo no soy una excepción. Quizá porque mi experiencia me lleva a pensar que rara vez encontramos en ella la solución que necesitamos. Pero también dije más arriba que esta vez no voy a abandonar al primer intento como hice en Open Suse 10.02.
El manual del usuario de Vmware Tools sí me sirve de algo: resulta que la instalación realizada mediante el paquete .rpm, se limita a los drivers y servicios, pero no contiene el procedimiento necesario para instalar la herramienta de configuración, tarea que exige... lo habéis adivinado: ¡comandos introducidos en un terminal!
Pues, para este viaje no necesitábamos alforjas. No puedo comprender, por más que lo piense, cual puede ser la razón de este sinsentido, teniendo en cuenta además que, al contrario que con la "versión" .tar.gz, no hay ningún archivo de texto con instrucciones que lo especifiquen. O sea, que si hubiera comenzado por el otro procedimiento, me habría ahorrado todo esto. Eso sí, compruebo que el archivo de instalación está presente en la carpeta que indica el manual.
Abro una ventana de terminal, e inicio la instalación. Como de costumbre, incluyo la imagen y posteriormente describo y comento los comandos:
    su
    Contraseña:
    cd /usr/bin
    ./vmware-config-tools.pl

    Stopping VMware Tools services in the virtual machine: Guest operating system daemon: [ OK ] Trying to find a suitable vmmemctl module for your running kernel. None of the pre-built vmmemctl modules for VMware Tools is suitable for your running kernel. Do you want this program to try to build the vmmemctl module for your system (you need to have a C compiler installed on your system)? [yes]
    Intro
    Using compiler "/usr/bin/gcc". Use environment variable CC to override. What is the location of the directory of C header files that match your running kernel? [/usr/src/linux/include]
    Intro
    The path "/usr/src/linux/include" is not an existing directory.

¡Lo mismo que en Open Suse 10.02! Pero he dicho que esta vez estoy decidido a hacer que esto funcione, al costo que sea.
Siguieron horas (literalmente) de buscar información sobre el particular en los foros. De todo ello (aparte de la cabeza caliente) saqué una "perla" que me hizo abrir la boca de puro estupor: alguien explicaba cómo, para instalar una aplicación cuyo nombre no recuerdo, debía ¡¡¡compilarla con el kernel!!!
Y entonces recordé que, cuando realicé la misma prueba con Open Suse 10.02, había pensado que no tenía instalado el compilador C al que se refería el procedimiento de instalación, pero que, después de instalarlo (o eso creo, no lo tengo muy seguro) la cosa no había cambiado.
Y únicamente entonces se me ocurrió que, a lo peor, lo que no tenía instalados eran los archivos "fuente" del kernel.
De modo que me fui a "Administración de software", y busqué "kernel".
Múltiples entradas. De entre ellas, dos parecían las adecuadas:
  • kernel-source-stripped-2.6.17.13mdv-1-1mdv2007.1.i586
  • kernel-source-stripped-latest-2.6.17.13mdv-1-1mdv2007.1.i586
No es que los nombres sean demasiado descriptivos, pero en mi ignorancia entendí que "latest" debería ser el último, el más moderno.
La explicación que aparece al hacer click sobre la entrada, me confirmó que, efectivamente, "...These source files are needed to build most C programs, since they depend on the constants defined in the source code...". Inaudito para mí, pero cierto.
De manera que, después de "montar" el DVD de instalación, pulsé "Aplicar". Apareció la ya conocida ventana con una barra que ilustra gráficamente el avance de la tarea...
Pero el resultado no fue el que imaginaba:
Lo intenté entonces con el otro paquete. De nuevo, la barra de avance...
...y...
Y ahora, ¿qué? -me pregunté-. El paquete "latest" es "parte de la lista de omisión" (lo que quiera que sea eso) y el otro, no puede instalarse. Pero esto no parece posible: ¿cómo no van a estar las "fuentes" del kernel en el DVD, cuando empiezo a pensar que son imprescindibles? Y, por cierto ¿por qué no se instalaron "de oficio" con el resto del Sistema?
Harto ya, opté por buscar ahora "source", y marqué para instalar todos y cada uno de los paquetes que aparecieron. (La imagen está capturada al inicio del proceso):
Y pulsé "Aplicar". El resultado me dejó de nuevo boquiabierto:
Lo trascribo, porque no tiene desperdicio:
    Se tienen que quitar los paquetes siguientes para poder actualizar otros:
    gedit-2.180-1mdv2007.1.i586
    mdkonline-2.16-1mdv2007.1.noarch
    rpmdrake-3.615mdv2007.1.i586
    Para satisfacer las dependencias, se instalarán los 2 paquetes siguientes
    kernel-source-stripped-2.6.17.13mdv-1-1mdv2007.1.i586
¿kernel-source-stripped?... (¡¡¡)
    perl-BSD-Resource-1.28.2mdv2007.1.i586 Is it ok to continue?
Antes de explicar lo que siguió, debo repetir algo que he dicho en muchas ocasiones: soy un usuario Windows con un limitado conocimiento de Linux. Y ese conocimiento limitado no me alcanzaba a saber qué cosa era GEDIT o RPMDRAKE. De manera que pulsé "Sí".
La instalación prosiguió, hasta que finalmente la barra de avance llegó a su final, y se volvió a mostrar la lista completa de paquetes. No se había producido ningún otro error, de manera que asumí que se habían instalado finalmente las "fuentes" del kernel, (¿y por qué ahora sí y antes no?) cuya ausencia había sido el origen de todo esto.
De manera que abrí una nueva ventana de terminal:
    su
    Contraseña:
    cd /usr/bin
    ./vmware-config-tools.pl

    Stopping VMware Tools services in the virtual machine: Guest operating system daemon: [ OK ] Trying to find a suitable vmmemctl module for your running kernel. None of the pre-built vmmemctl modules for VMware Tools is suitable for your running kernel. Do you want this program to try to build the vmmemctl module for your system (you need to have a C compiler installed on your system)? [yes]
    Intro
    Using compiler "/usr/bin/gcc". Use environment variable CC to override. What is the location of the directory of C header files that match your running kernel? [/lib/modules/2.6.17-13mdv/build/include]
¡¡¡Ahora parece que sí!!!
    Intro
    Extracting the sources of the vmmemctl module. Building the vmmemctl module. Using 2.6.x kernel build system. make: se ingresa al directorio `/root/tmp/vmware-config0/vmmemctl-only' make -C /lib/modules/2.6.17-13mdv/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules make[1]: se ingresa al directorio `/usr/src/linux-2.6.17-13mdv' WARNING: Symbol version dump /usr/src/linux-2.6.17-13mdv/Module.symvers is missing; modules will have no dependencies and modversions. CC [M] /root/tmp/vmware-config0/vmmemctl-only/os.o SHIPPED /root/tmp/vmware-config0/vmmemctl-only/vmmemctl1.o LD [M] /root/tmp/vmware-config0/vmmemctl-only/vmmemctl.o Building modules, stage 2. MODPOST CC /root/tmp/vmware-config0/vmmemctl-only/vmmemctl.mod.o LD [M] /root/tmp/vmware-config0/vmmemctl-only/vmmemctl.ko make[1]: se sale del directorio `/usr/src/linux-2.6.17-13mdv' cp -f vmmemctl.ko ./../vmmemctl.o make: se sale del directorio `/root/tmp/vmware-config0/vmmemctl-only' The module loads perfectly in the running kernel. Extracting the sources of the vmhgfs module. Building the vmhgfs module. Using 2.6.x kernel build system. make: se ingresa al directorio `/root/tmp/vmware-config0/vmhgfs-only' make -C /lib/modules/2.6.17-13mdv/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules make[1]: se ingresa al directorio `/usr/src/linux-2.6.17-13mdv' WARNING: Symbol version dump /usr/src/linux-2.6.17-13mdv/Module.symvers is missing; modules will have no dependencies and modversions. CC [M] /root/tmp/vmware-config0/vmhgfs-only/backdoor.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/backdoorGcc32.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/bdhandler.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/cpName.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/cpNameLinux.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/cpNameLite.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/dbllnklst.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/dentry.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/dir.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/eventManager.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/file.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/filesystem.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/fsutil.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/hgfsBd.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/hgfsUtil.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/inode.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/kernelStubsLinux.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/link.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/message.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/module.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/page.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/request.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/rpcin.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/rpcout.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/staticEscape.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/stubs.o CC [M] /root/tmp/vmware-config0/vmhgfs-only/super.o LD [M] /root/tmp/vmware-config0/vmhgfs-only/vmhgfs.o Building modules, stage 2. MODPOST CC /root/tmp/vmware-config0/vmhgfs-only/vmhgfs.mod.o LD [M] /root/tmp/vmware-config0/vmhgfs-only/vmhgfs.ko make[1]: se sale del directorio `/usr/src/linux-2.6.17-13mdv' cp -f vmhgfs.ko ./../vmhgfs.o make: se sale del directorio `/root/tmp/vmware-config0/vmhgfs-only' The module loads perfectly in the running kernel. pcnet32 29188 0 Unloading pcnet32 module Extracting the sources of the vmxnet module. Building the vmxnet module. Using 2.6.x kernel build system. make: se ingresa al directorio `/root/tmp/vmware-config0/vmxnet-only' make -C /lib/modules/2.6.17-13mdv/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules make[1]: se ingresa al directorio `/usr/src/linux-2.6.17-13mdv' WARNING: Symbol version dump /usr/src/linux-2.6.17-13mdv/Module.symvers is missing; modules will have no dependencies and modversions. CC [M] /root/tmp/vmware-config0/vmxnet-only/vmxnet.o Building modules, stage 2. MODPOST CC /root/tmp/vmware-config0/vmxnet-only/vmxnet.mod.o LD [M] /root/tmp/vmware-config0/vmxnet-only/vmxnet.ko make[1]: se sale del directorio `/usr/src/linux-2.6.17-13mdv' cp -f vmxnet.ko ./../vmxnet.o make: se sale del directorio `/root/tmp/vmware-config0/vmxnet-only' The module loads perfectly in the running kernel. Extracting the sources of the vmblock module. Building the vmblock module. Using 2.6.x kernel build system. make: se ingresa al directorio `/root/tmp/vmware-config0/vmblock-only' make -C /lib/modules/2.6.17-13mdv/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules make[1]: se ingresa al directorio `/usr/src/linux-2.6.17-13mdv' WARNING: Symbol version dump /usr/src/linux-2.6.17-13mdv/Module.symvers is missing; modules will have no dependencies and modversions. CC [M] /root/tmp/vmware-config0/vmblock-only/linux/block.o CC [M] /root/tmp/vmware-config0/vmblock-only/linux/control.o CC [M] /root/tmp/vmware-config0/vmblock-only/linux/dbllnklst.o CC [M] /root/tmp/vmware-config0/vmblock-only/linux/dentry.o CC [M] /root/tmp/vmware-config0/vmblock-only/linux/file.o CC [M] /root/tmp/vmware-config0/vmblock-only/linux/filesystem.o CC [M] /root/tmp/vmware-config0/vmblock-only/linux/inode.o CC [M] /root/tmp/vmware-config0/vmblock-only/linux/module.o CC [M] /root/tmp/vmware-config0/vmblock-only/linux/stubs.o CC [M] /root/tmp/vmware-config0/vmblock-only/linux/super.o LD [M] /root/tmp/vmware-config0/vmblock-only/vmblock.o Building modules, stage 2. MODPOST CC /root/tmp/vmware-config0/vmblock-only/vmblock.mod.o LD [M] /root/tmp/vmware-config0/vmblock-only/vmblock.ko make[1]: se sale del directorio `/usr/src/linux-2.6.17-13mdv' cp -f vmblock.ko ./../vmblock.o make: se sale del directorio `/root/tmp/vmware-config0/vmblock-only' The module loads perfectly in the running kernel. [EXPERIMENTAL] The Virtual Machine Communication Interface (VMCI) service provides a new communication capability with the Host, primarily for development at the moment. Would you like to enable this feature? [no]
    Intro
    Detected X.org version 7.2. Please choose one of the following display sizes that X will start with (1 - 15): [1] "640x480" [2]< "800x600" [3] "1024x768" [4] "1152x864" [5] "1280x800" [6] "1152x900" [7] "1280x1024" [8] "1376x1032" [9] "1400x900" [10] "1400x1050" [11] "1440x900" [12] "1680x1050" [13] "1600x1200" [14] "1920x1200" [15] "2364x1773" Please enter a number between 1 and 15: [2]
    Intro
    X Window System Version 7.2.0 Release Date: 22 January 2007 X Protocol Version 11, Revision 0, Release 7.2 Build Operating System: UNKNOWN Current Operating System: Linux localhost 2.6.17-13mdv #1 SMP Fri Mar 23 19:03:31 UTC 2007 i686 Build Date: 26 March 2007 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version. Module Loader present Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (++) Log file: "/root/tmp/vmware-config0/XF86ConfigLog.10606", Time: Mon Oct 15 13:44:02 2007 (++) Using config file: "/root/tmp/vmware-config0/XF86Config.10606" X is running fine with the new config file. (EE) AIGLX: DRI module not loaded The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Type "ONE_LEVEL" has 1 levels, but has 2 symbols > Ignoring extra symbols Errors from xkbcomp are not fatal to the X server FreeFontPath: FPE "unix/:-1" refcount is 2, should be 1; fixing. Starting VMware Tools services in the virtual machine: Switching to guest configuration: [ OK ] Guest filesystem driver: [ OK ] Mounting HGFS shares: [FALLÓ ] Guest memory manager: [ OK ] Guest vmxnet fast network device: [ OK ] Blocking file system: [ OK ] DMA setup: [ OK ] Guest operating system daemon: [ OK ] The configuration of VMware Tools 6.0.0 build-45731 for Linux for this running kernel completed successfully. You must restart your X session before any mouse or graphics changes take effect. You can now run VMware Tools by invoking the following command: "/usr/bin/vmware-toolbox" during an X server session. To use the vmxnet driver, restart networking using the following commands: /etc/init.d/network stop rmmod pcnet32 rmmod vmxnet modprobe vmxnet /etc/init.d/network start To make use of the virtual printer, you will need to restart the CUPS service If you wish to configure any experimental features, please run the following command: "vmware-config-tools.pl --experimental". Enjoy, --the VMware team
Hay cosas que siempre me han "encantado" en esto de la informática:
  1. Que se me inunde con información que no voy a leer, entre otras cosas porque entiendo muy poco. Toda esta información, en todo caso, debía escribirse en un archivo "log".
  2. Que me encuentre con indicaciones "WARNING", "FALLÓ" (1 de cada) y que todo parezca que funcione correctamente.
Porque es un hecho que, no solo el procedimiento de instalación finalizó, sino que el ratón actúa como se supone que debe hacerlo, y también es posible copiar/cortar/pegar textos entre la máquina virtual Mandriva y el "host" Windows.
Solo que... cuando quise visualizar por primera vez un archivo de texto, comprendí cabalmente el significado de que se haya desinstalado GEDIT y otros dos paquetes, que ahora debo intentar instalar.
Pero, ¿cómo? Ha desaparecido del menú el lanzador del "Instalador de software", he revisado una por una las opciones de todos los menús y el "Centro de Control" sin encontrarlo.
¿Reinstalar la distribución? No tengo ánimos para enfrentarme nuevamente con esto. Además, no sé dónde leí que Linux, al contrario de Windows, no requería de la realización de continuas reinstalaciones... (¿o sí?)

Añadido posterior:
Finalmente, me decidí a reinstalar la máquina. Posteriormente, instalé las "fuentes" del kernel, así como las Vmware Tools, que en esta ocasión no me causaron ningún problema (por supuesto, utilizando el archivo .tar.gz).
Pero en la reinstalación de Mandriva 2007 Spring hay cosas que han funcionado de forma diferente a como las describí:
  • En el paso de actualización de paquetes, que en la ocasión anterior no se pudo completar, al no poder conectar con el servidor, ahora se realizó la conexión sin problemas.
  • La sorpresa fue que, aunque estoy razonablemente seguro de que elegí el escritorio GNOME... se instaló KDE. ¿Por qué? No tengo la menor idea.
  • Al finalizar la reinstalación de la máquina Mandriva, apareció un aviso de que había actualizaciones disponibles. Como, según he dicho varias veces, la relación de paquetes es para mí un arcano incomprensible, acepté instalar todos los que me presentaba, y que salga el sol por Antequera.
Pero bien, KDE es más vistoso, y me he "hecho" enseguida con los menús (que son prácticamente los mismos de GNOME) aunque con una agradable novedad: me presenta las aplicaciones usadas últimamente.
De manera que, después de tres horas de trabajo no planificadas, me encuentro en disposición de continuar con la prueba de la distribución Mandriva 2007 Spring Free.

No hay comentarios: