martes, 11 de octubre de 2011

Error al instalar PostgreSQL: Un error ocurrió ejecutando el instalador del runtime de Microsoft VC++

Este error se produce al intentar instalar PostgreSQL en Windows, y puede tener muchas causas. La forma en la que lo solucioné:


Googleando el mensaje de error, hallé que está relacionado con Windows Script Host, el cual podría estar deshabilitado. Para verificarlo, basta con abrir una consola de comandos y ejecutar wscript.exe.

  • Si se abre un cuadro de dialogo titulado "Configuración de Windows Script Host", WSH está activado y el problema es otro.
  • Si se abre un cuadro de error que dice "Acceso a Windows Script Host deshabilitado en este equipo. Póngase en contacto con su administrador para obtener detalles." entonces WSH está desactivado.

Resultó estar habilitado, por lo que el problema no era ese.

Como siguiente paso busqué dentro de la carpeta %TEMP% el log de la instalación. El nombre puede ser bitrock_installer (o alguna variante con números al final), o también puede ser install-postgresql. En mi caso fue el primero. Lo que encontré dentro del log fue:

Log started 10/11/11 at 23:45:22
Preferred installation mode : qt
Trying to init installer in mode qt
Mode qt successfully initialized
Could not find registry key HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-8.4 Data Directory. Setting variable iDataDirectory to empty value
Could not find registry key HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-8.4 Base Directory. Setting variable iBaseDirectory to empty value
Could not find registry key HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-8.4 Service ID. Setting variable iServiceName to empty value
Could not find registry key HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-8.4 Service Account. Setting variable iServiceAccount to empty value
Could not find registry key HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-8.4 Super User. Setting variable iSuperuser to empty value
Could not find registry key HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-8.4 Branding. Setting variable iBranding to empty value
Could not find registry key HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-8.4 Version. Setting variable brandingVer to empty value
Could not find registry key HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-8.4 Shortcuts. Setting variable iShortcut to empty value
Could not find registry key HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-8.4 DisableStackBuilder. Setting variable iDisableStackBuilder to empty value
[23:45:31] Existing base directory:
[23:45:31] Existing data directory:
[23:45:31] Using branding: PostgreSQL 8.4
[23:45:31] Using Super User: postgres and Service Account: postgres
[23:45:31] Using Service Name: postgresql-8.4
Executing cscript //NoLogo "C:\Users\Luis\AppData\Local\Temp\postgresql_installer\installruntimes.vbs" "C:\Users\Luis\AppData\Local\Temp\postgresql_installer\vcredist_x86.exe"
Script exit code: 1

Script output:
 Error de entrada: No existe ning£n motor de secuencia de comandos para la extensi¢n de archivo ".vbs".

Script stderr:
 Program ended with an error exit code

Un error ocurrió ejecutando el instalador del runtime de Microsoft VC++
Mirando una de las últimas líneas es posible aislar un poco mejor el problema: No existe ningún motor de secuencia de comandos para la extensión de archivo ".vbs". ¡Nuevo error para Googlear!

La solución: Ir a %WINDIR%/inf y buscar el archivo WSH.INF, click derecho e Instalar. Mediante este proceso se asocia un motor con los archivos .vbsPero como siempre las cosas no vienen en bandeja de plata... Al ir a esa ruta, ¡el archivo no existía!

Así que una última búsqueda me ayudó a dar con el archivo: WSH.INF - 4Shared. Una vez bajado basta con pegarlo en %WINDIR%/inf y luego instalarlo. Y ya queda solucionado el problema!

About this blog!

Hola! Soy Luis Schaab y estudio Ingeniería en Sistemas de Información (ISI) en la Universidad Tecnológica Nacional  Facultad Regional de Santa Fe (UTN FRSF).

También trabajo como programador PHP en uno de los grupos de estudios de la facultad, donde nos encargamos de desarrollar desde simples scripts hasta sistemas bastante complejos.

Y por acá viene la cuestión del blog: como seguramente a cualquier programador, me he topado con diferentes problemas al momento de desarrollar, ya sean particularidades del entorno, del lenguaje de programación o de la base de datos que se este utilizando. Y entonces es cuando se hace uso de la primer herramienta que todo informático debería saber usar: Google.

Pero muchas veces sucede que la respuesta a nuestro problema no es tan sencilla de hallar, o es necesario adaptarla. O incluso está en otro idioma.

Por eso decidí armar este blog, para ir publicando las respuestas a todos esos problemas que a veces me van surgiendo, y que mejor forma que compartiendo estos conocimientos con todos ustedes.