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!

7 comentarios:

  1. Si no se tiene el archivo entonces hay que descargarlo copiarlo en la carpeta %WINDIR%/inf y luego hacer click derecho en wsh.inf y seleccionar instalar.

    Ahora el instalador de postgres debería funcionar perfectamente.

    Muchas gracias Luis Schaab :)

    ResponderEliminar
  2. Como llego a la carpeta %WINDIR%7inf tengo wind8

    ResponderEliminar
  3. oye, muchas gracisa, me salvaste la vida, de casualidas sabrás como se instala la ultima version de postgrest en Win8, siempre me sale un error de command.line.erro

    ResponderEliminar
  4. Desde que sitio se puede descargar el archivo: WSH.INF? intente descargarlo desde el enlace que figura mas arriba y me lleva a una pagina y no me permite.
    Gracias

    ResponderEliminar
  5. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  6. Podrias subir de nuevo el archivo?? te lo agradecería bastante amigo

    ResponderEliminar